读书人

delphi 怎么在界面创建之后再对控件进

发布时间: 2013-08-23 15:57:36 作者: rapoo

delphi 如何在界面创建之后再对控件进行监听监听
本帖最后由 a137993530 于 2013-08-11 14:20:03 编辑 对窗体上的一个dbedit 控件的 Onchange 进行监听。

首先,这个dbEdit关联着一个数据库字段。而连接这个数据库的数据模块,要在 formCreate()之后才进行创建(这是公司的要求)

dbedit 控件的 Onchange 的内容是对数据库进行一个操作

于是产生的问题就是:如果直接将代码加载在dbedit.Onchange 中的话,窗体还没有绘制出来,此时,数据模块还没有被创建,但是默认的它就已经执行了一次 Onchange 操作,从而提示我相关的数据库为空的错误

比如
procedure TForm1.DBEdit1Change(Sender: TObject);
begin
label1.Caption := dbedit1.Text;
end;

窗体一出来,标签的caption 自动就变成了数据库中的某个信息

那么怎么才能规避掉这个最开始的一次监听呢?我希望是在执行了 formCreate 之后,这个监听才能有效。

有没有类似于 dbedit.Onchange() := xxx自定义方法 这样的可以把一个自定义方法赋值给Onchange 监听的的办法?
那样我就可以在 formCreate() 中创建监听,从而规避掉创建前的那一次监听了。

类似于
procedure TForm1.FormCreate(Sender: TObject);
begin
ededit1.onchange := LabelChangeName();
end;
Delphi 界面 控件 数据库
[解决办法]
你这个可以先判别数据模块是否建立。
procedure TForm1.DBEdit1Change(Sender: TObject);
begin
if not Assigend(MyDataModule) then exit; //数据模块没有建立,什么也不做,退出事件处理。
label1.Caption := dbedit1.Text;
end;


[解决办法]
procedure LabelChangeName(Sender: TObject);

读书人网 >.NET

热点推荐