procedure TF_FY.other_ena;
var i:integer;
begin
  for i:=0 to panel5.ControlCount -1 do
    begin
      if (panel5.Controls[i] is TEdit) or (panel5.Controls[i] is Tcombobox) then
        Tedit(panel5.Controls[i]).Color:=clActiveBorder;
        Tedit(panel5.Controls[i]).Enabled:=false;
        TComboBox(panel5.Controls[i]).Color:=clActiveBorder;
    end;
end;
如果像上面那样做,panel中的所有控件都不可用,但我只想让edit和combobox控件不可用,请各位指点?

解决方案 »

  1.   

    肯定不可用了     for i:=0 to ComponentCount-1 do
           begin
             if Components[i] is TEdit then
             begin
               ((Components[i]) as TEdit).Enabled := false;
             end
             else if Components[i] is TMemo then
             begin
               ((Components[i]) as TMemo).Enabled :=False;
             end
             else if Components[i] is TComboBox then
             begin
               ((Components[i]) as TComboBox).Enabled :=False;
             end;
           end;
      

  2.   

    注意 begin end 使用    for i := 0 to panel5.ControlCount - 1 do
        begin
          if (panel5.Controls[i] is TComboBox) then
          begin 
            TComboBox(panel5.Controls[i]).Color := clActiveBorder;
            TComboBox(panel5.Controls[i]).Enabled := False;
          end
          else if (panel5.Controls[i] is TEdit) then
          begin
            TEdit(panel5.Controls[i]).Color := clActiveBorder;
            TEdit(panel5.Controls[i]).Enabled := False;
          end;
        end;
      

  3.   

    Tedit(panel5.Controls[i]).Enabled:=false;改成((panel5.Controls[i]) as  TEdit).enabled := false;其他的一样。
    用as
      

  4.   

    procedure TF_FY.other_ena;
    var i:integer;
    begin
      for i:=0 to panel5.ControlCount -1 do
        begin
          if (panel5.Controls[i] is TEdit) or (panel5.Controls[i] is Tcombobox) then
          begin
            Tedit(panel5.Controls[i]).Color:=clActiveBorder;
            Tedit(panel5.Controls[i]).Enabled:=false;
            TComboBox(panel5.Controls[i]).Color:=clActiveBorder;
          end;
        end;
    end;
      

  5.   

    我窗体中有三个panel,我只想让其中一个panel中的控件不可用,该如何实现?
      

  6.   

    感谢大家,经测试lijianchuang0702的方法是对的!
      

  7.   

    Tpanel.tag  属性 标记为不同的值,然后在遍历的时候检测该值看是否为需要检测的panel
      

  8.   

    最经看了好几个缺begin end的问题了。