回 帖 发 新 帖 刷新版面

主题:请问这段代码 有撒什么问题

procedure TForm1.FormShow(Sender: TObject);
var
m,n: integer;
begin
for m:= 1 to 6 do

combobox[m].Enabled:=false;
for n:=1 to 4 do
edit[n].enabled:-false;
end;

end.

我的意思是想用FOR 语句 把这些组件都不能用 但是 提示combobox 和EDIT错误   

我知道这样写不对, 但是不知道怎么写。。。郁闷

回复列表 (共10个回复)

沙发

for i:=0 to Form1.controlCount-1 do
if Form1.Controls[i] is Tedit then
TEdit(Form1.Controls[i]).Enabled:=false

板凳

代码的意思是这样 可是我放进去 效果没有达到   我专门开了一个窗口给他用也没用  。。

3 楼


可以了  谢谢指教  我刚才弄错了  我的EDIT 是放在PANEL1 上的。。  不好意思。。。

4 楼

在为一个问题   如果把controls 换成COMPONENT 意思不是一样啊??这个有区别吗?

5 楼


我想让COMBOBOX 组件 从1 到9 不能用 好象上面那段代码就不行了

6 楼

上面的只是针对TEDIT的,你自己改成COMBOBOX不就了?要多想

7 楼


就是改了不行啊。。。

8 楼


哎 还是我上面的组件太多了 IMAGE 又是PANEL 又是GROUPBOX  现在改来改去终于可以了    
刚才是PANEL1。GROUPBOX1。COMBOBOX1  去掉PANEL1 就可以了  我是把GROUPBOX1 放在PANEL1 上的  我以为要写上PANEL1。。

9 楼

for  i:=0  to controlcount-1 do
  if (Controls[i] is TEDIT) or (Controls[i] is TCOMBOBOX) then
    Controls[i].Enabled:=FALSE;

10 楼

放在panel上就把form改成panel就可以了 只要是容器组件都有controls属性

我来回复

您尚未登录,请登录后再回复。点此登录或注册