在窗体建立事件中加入组件获得焦点为什么会出错?(10分)

  • 主题发起人 主题发起人 hksoobe
  • 开始时间 开始时间
H

hksoobe

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.FormCreate(Sender: TObject);
begin
edit1.SetFocus;
end;
我这么写为什么会出错?????
 
报什么错?看看你的form及edit的属性,如Enable、Visible属性等
 
那扔在OnFormShow事件里呢?
 
在FormShow事件里可以
写在FormCreate事件里他会出现调试对放框内容为:
Project Project1.exe raised exception class EInvalidOperation with message 'connot focus a dissabled or invisible window'.Process stopped .Use Step or RUN to continue
 
FormCreate 是窗体创建时执行的命令,,,
而你的edit 此时并没有创建,所以会提示错误
 
窗体创建后没没有SHOW出来所以会报错吧。改到FORMSHOW事件中吧
 
你的窗体的visible属性为False吧?改成True试试
 
这个edit是属于form的,formcreate的时候,edit使正在被创建,到formshow的时候,整个窗体已经创建完毕,这个时候才可以聚焦
 
上面说的都不全,formcreate中也可以设置setfocus,关键在于edit,及edit的所有parent,从twincontrol继承下来的,必须是visible := true,且edit本身disabled := false,看看setfocus是怎么实现就知道了
 
谢谢szhcracker,hanpengshan_00小弟分不多请见谅!
 
后退
顶部