我在DLL中动态创建了一个按钮,并给把一个在DLL中定义的过程赋给了它的单击事件,简单代码如下:
为什么在单击按钮时报内存错呢???单调后发现sender的值为nil,如何使sender有值呢??请看位兄弟看清题后再回答,不要贴一些在form下动态创建控件加事件的代码,我问的主要是在动态链接库中如何处理!!!谢谢!!!!!
library DCC;
.
procedure BtnClick(sender:Tobject);
begin
showmessage((sender sa TButton).name);//执行这一句报内存错,为什么得不到button1呢???
end;
.
.
//========================下面是自动创建按钮,并加载事件
var
MyMet : TMetmod;
..
..
Begin
.
.
MyButton.Name='Button1';
MyMet.Code := @BtnClick;
MyButton.OnClick := TNotifyEvent(MyMet);
..
End;
为什么在单击按钮时报内存错呢???单调后发现sender的值为nil,如何使sender有值呢??请看位兄弟看清题后再回答,不要贴一些在form下动态创建控件加事件的代码,我问的主要是在动态链接库中如何处理!!!谢谢!!!!!
library DCC;
.
procedure BtnClick(sender:Tobject);
begin
showmessage((sender sa TButton).name);//执行这一句报内存错,为什么得不到button1呢???
end;
.
.
//========================下面是自动创建按钮,并加载事件
var
MyMet : TMetmod;
..
..
Begin
.
.
MyButton.Name='Button1';
MyMet.Code := @BtnClick;
MyButton.OnClick := TNotifyEvent(MyMet);
..
End;
解决方案 »
- 求助:Delphi下调用NIDAQmx的nicaiu.dll中的DAQmxCreateAIVoltageChan返回-200088错误
- shift选择问题!!!
- 请问如何用delete from a.dbf 语句真正清空一个foxpro的数据库???
- 救急: SQL server的数据恢复
- 有哪位知道EXCEL9.OLB如何注册?
- 求求你们了?
- 请问嵌套函数是有什么作用的?
- 请教数据库转换为文本的问题。
- win2000Server的注册表怎样解锁?一访问就显示"被管理员禁止",怎样解禁呢?我就是管理员呀
- 有做过DELPHI直接连接EXCHANGE的例子的么
- 如何用clientsocket处理长信息串?
- delphi中mscomm的问题,请教,急
例如:
TMyButton=class
public
{ Public declarations }
procedure ButtonClick(Sender: TObject);
end;
var
Form1: TForm1;
MyButton:TMyButton;procedure TMyButton.ButtonClick(Sender: TObject);
begin
ShowMessage(Sender.ClassName);
end;procedure TForm1.Button1Click(Sender: TObject);
var b:TButton;
begin
b:=TButton.Create(self);
b.OnClick:=MyButton.ButtonClick;
b.Parent:=self;
b.Name:='aaaaaabbbbb';
end;
button肯定是需要附属于窗口的,
不然它显示在什么地方呀,
在说我的代码在dll中一样可以的,
就是不理解你的没有form的情况是什么意思?