Advertisement
Guest User

Untitled

a guest
May 21st, 2015
305
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 2.17 KB | None | 0 0
  1.   TShowBigDialoxBoxThread=class(TThread)
  2.     private
  3.       FMsg: String;
  4.       FDlgType: TMsgDlgType;
  5.       FButtons: TMsgDlgButtons;
  6.       FHelpContext: Integer;
  7.       FDefaultButton: TMsgDlgBtn;
  8.       FDlgMinWidth: Integer;
  9.       function ThreadNotTerminated: Boolean;
  10.     protected
  11.       EventHandler: TEvent;
  12.       procedure Execute; Override;
  13.       procedure _ShowBigMessageDialog;
  14.     public
  15.       procedure ShowBigMessageDialog(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpContext: Integer;
  16.       DefaultButton: TMsgDlgBtn; DlgMinWidth: Integer);
  17.       constructor Create(CreateSuspended: Boolean = False);
  18.       destructor Destroy;
  19.   end;
  20.  
  21. // ======================================================================================================================
  22. // TShowBigDialoxBoxThread
  23. // ======================================================================================================================
  24.  
  25. constructor TShowBigDialoxBoxThread.Create(CreateSuspended: Boolean);
  26. begin
  27.   inherited Create(CreateSuspended);
  28.   EventHandler:=TEvent.Create;
  29. end;
  30.  
  31. destructor TShowBigDialoxBoxThread.Destroy;
  32. begin
  33.   EventHandler.Free;
  34.   inherited Destroy;
  35. end;
  36.  
  37. function TShowBigDialoxBoxThread.ThreadNotTerminated: Boolean;
  38. begin
  39.   try
  40.     Result:=not(Terminated or Application.Terminated)
  41.   except
  42.     Result:=True;
  43.   end;
  44. end;
  45.  
  46. procedure TShowBigDialoxBoxThread.Execute;
  47. begin
  48.   while ThreadNotTerminated do begin
  49.     EventHandler.WaitFor(INFINITE);
  50.     if not(ThreadNotTerminated) then
  51.       Continue;
  52.     EventHandler.ResetEvent;
  53.     Synchronize(_ShowBigMessageDialog);
  54.   end;
  55. end;
  56.  
  57. procedure TShowBigDialoxBoxThread.ShowBigMessageDialog(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons;
  58.   HelpContext: Integer; DefaultButton: TMsgDlgBtn; DlgMinWidth: Integer);
  59. begin
  60.   FMsg:=Msg;
  61.   FDlgType:=DlgType;
  62.   FButtons:=Buttons;
  63.   FHelpContext:=HelpContext;
  64.   FDefaultButton:=DefaultButton;
  65.   FDlgMinWidth:=DlgMinWidth;
  66.   EventHandler.SetEvent;
  67. end;
  68.  
  69. procedure TShowBigDialoxBoxThread._ShowBigMessageDialog;
  70. begin
  71.   MessageDlgBig(FMsg, FDlgType, FButtons, FHelpContext, FDefaultButton, FDlgMinWidth);
  72. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement