如何向十一个Modal对话框,但是又可以对主窗体进行最大化/最小化等操作?
请使用下面的函数ThrMsgBox即可。
unit Unit2 ;
interface
uses Classes , Windows , Forms ;
function ThrMsbBox ( hWnd : HWND ; Caption , Text : string ; dlgType : integer ): integer ;
implementation
var
RValue : integer ;
type
TMyThread = class ( TThread )
FCaption , FText : string ;
FType : integer ;
FOwn : HWND ;
public
constructor Create ( hWnd : HWND ; Caption , Text : string ; DlgType : integer );
procedure Execute ; override ;
end ;
{ TMyThread }
constructor TMyThread . Create ( hWnd : HWND ; Caption , Text : string ; DlgType : integer );
begin
FCaption := Caption ;
FText := Text ;
FType := DlgType ;
FOwn := hWnd ;
FreeOnTerminate := False ;
inherited Create ( False );
end ;
procedure TMyThread . Execute ;
begin
RValue := MessageBox ( FOwn , pchar ( FText ), pchar ( FCaption ), FType );
Terminate ;
end ;
function ThrMsbBox ( hWnd : HWND ; Caption , Text : string ; dlgType : integer ): integer ;
var
Thr : TMyThread ;
begin
Thr := TMyThread . Create ( hWnd , Caption , Text , dlgType );
repeat
Application . ProcessMessages ;
until Thr . Terminated ;
Thr . Free ;
Result := RValue ;
end ;
end .