自定义的类里面,MessageBox中Handle参数的问题 ( 积分: 15 )

  • 主题发起人 主题发起人 ReStart
  • 开始时间 开始时间
R

ReStart

Unregistered / Unconfirmed
GUEST, unregistred user!
我自定义的类里面,想用MessageBox,有这么一句:
改ShowMessage MessageBox(Handle,'','提示',MB_OK+MB_ICONINFORMATION);
然后编译无法通过,提示Handle是未定义参数,怎么解决呢?
在其他窗体就没有问题
 
我自定义的类里面,想用MessageBox,有这么一句:
改ShowMessage MessageBox(Handle,'','提示',MB_OK+MB_ICONINFORMATION);
然后编译无法通过,提示Handle是未定义参数,怎么解决呢?
在其他窗体就没有问题
 
因为 TForm 有一个 Handle 属性。
您可以直接给该参数传入 0(桌面句柄)。
 
TMyClass = class(TObject)
public
procedure MyProcedure(MyHandle : HWND);
end;
//你可以传入任何窗体句柄 Handle;例如:主窗体 MyProcedure(MainForm.Handle);
procedure TMyClass.MyProcedure(MyHandle : HWND);
begin
MessageBox(MyHandle,'','提示',MB_OK+MB_ICONINFORMATION);
end;
 
从Twincontrol继承下来的类应该都有handle。你新建一个类并不是从这里继承下来的,所以无句柄。如果要引用可以这样:

MessageBox(form1.Handle,'','提示',MB_OK+MB_ICONINFORMATION);
 
你可以用Application.Handle啊
 
注意,uses forms
 
后退
顶部