如果我把PageControl1改成Form可不可以?

解决方案 »

  1.   

    改成form可以。
    pagecontrol的control[i]是指pagecontrol的单个一页。
      

  2.   

    你界面设计有问题,应该可以,我试过了!按我的代码就可以!procedure TForm1.Button1Click(Sender: TObject);
    var
      I: Integer;begin
      Edit1.Parent:= PageControl1;
      ComboBox1.Parent := PageControl1;  for I := 0 to PageControl1.ControlCount-1  do
      begin
        if PageControl1.Controls[I] Is TEdit then
          TEdit(PageControl1.Controls[I]).ReadOnly := True;
        if PageControl1.Controls[I] Is TComboBox then
          TComboBox(PageControl1.Controls[I]).Enabled := False;
      end;
    end;
      

  3.   

    那样当然不行了,Pagecontrol不是容器控件,他的tablesheet才是的你可以这样:
    (TEdit.parent := PageControl1.TableSheet1  and TComboBox.Parent := PageControl1.TableSheet1  ;)procedure proname(aControl:TwinControl);
    var
      I : Integer;
    begin
      for I := 0 to aControl.ControlCount - 1 do
      begin
        if aControl.Controls[I] Is TEdit then
          TEdit(aControl.Controls[I]).ReadOnly := True
        else if aControl.Controls[I] Is TComboBox then
          TComboBox(aControl.Controls[I]).Enabled := False
        else if aControl is TWinControl then
        begin
           ProName(TWinControl(aControl));
        end;
      end;
    end;
    ProName(Pagecontrol1);//在你需要的地方这样调用
      

  4.   

    Indicates the number of pages in the TPageControl object.property PageCount: Integer;
    PageCount是指明有多少个page页可不是有几个控件
    你下面的那个程序应该好使啊!!
      

  5.   

    你没有发现PageControl1里放的只是TabSheet控件
    Edit.Parent是TabSheet不是PageControl1
    所以要遍历TabSheet容器var
      I, J: Integer;
    begin
    //(*
      for I := 0 to PageControl1.PageCount - 1 do
        for J := 0 to PageControl1.Pages[I].ControlCount - 1 do
        begin
          if PageControl1.Pages[I].Controls[J] is TEdit then
            TEdit(PageControl1.Pages[I].Controls[J]).ReadOnly := True
          else if PageControl1.Pages[I].Controls[J] Is TComboBox then
            TComboBox(PageControl1.Pages[I].Controls[J]).Enabled := False;
        end;
    //*)
    //==============================================================================
    (*
      for I := 0 to ComponentCount - 1 do
      begin
        if (Components[I] is TEdit) and (TEdit(Components[I]).Parent is TTabSheet) then
          TEdit(Components[I]).ReadOnly := True
        else if (Components[I] is TComboBox) and (TComboBox(Components[I]).Parent is TTabSheet) then
          TComboBox(Components[I]).Enabled := False;
      end;
    //*)
    end;
      

  6.   

    to xgto:很高兴,你的代码风格有进步了!开始接近Delphi Source :)
      

  7.   

    应该TabSheet1,不是PageControl1.
    例如:
    with TabSheet1 do
      begin
          for i:=0 to ControlCount-1 do
              begin
                  if Controls[i] is TEdit then
                      tedit(Controls[i]).readonly:=true;
                  if Controls[i] is TComboBox then
                      TComboBox(Controls[i]).Enabled:=false;
              end;
       end;
      end;
      

  8.   

    TO zswang(伴水)(* 嘻嘻 *) 
    呵呵,谢谢您的教导啊;
    还有啊,这个分你要不要啊?
      

  9.   

    如果放在Panel上,如何做呢?
      

  10.   

    with Panel1 do
      begin
          for i:=0 to ControlCount-1 do
              begin
                  if Controls[i] is TEdit then
                      tedit(Controls[i]).readonly:=true;
                  if Controls[i] is TComboBox then
                      TComboBox(Controls[i]).Enabled:=false;
              end;
       end;
      end;