Einzelnen Beitrag anzeigen

Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#12

Re: Einfacher thread der nur ein MessageDlg anzeigt erzeugen

  Alt 4. Jan 2009, 17:14
Zitat von Kostas:
Delphi-Quellcode:
      ThreadMB := TMessageBoxThread.Create(true);
      ThreadMB.Priority := tpLower;
      ThreadMB.Resume;

      ThreadMB := TMessageBoxThread.Create(true);
      ThreadMB.Priority := tpLower;
      ThreadMB.Resume;
Delphi-Quellcode:
unit MessageBoxThread;

interface

uses
  Classes, Dialogs, Forms, Sysutils, Windows;

type
  TMessageBoxThread = class(TThread)
  private
    { Private-Deklarationen }
  protected
    text: string;
    procedure Execute; override;
    procedure StarteThread; virtual; //abstract;
  public
    constructor Create(msg:string);
  end;


implementation

{ TMessageBoxThread }

constructor TMessageBoxThread.Create(msg:String);
begin
  inherited Create(false);
  text := msg;
end;


procedure TMessageBoxThread.Execute;
begin
  {Windows.}MessageBox(nil, 'Hallo Welt', 'Schöner Text', MB_OK);
end;

end.
Mit MSDN-Library durchsuchenMessageBox brauchst du das nicht mehr synchronisieren, da es ja Threadsafe ist

Aber wirklich die Windows-API-Funktion verwenden und nicht die VCL-Version Application.Messagebox()

Du brauchst übrigens keine Variable im Konstruktor des Threads, du kannst einfach true reinschreiben
  Mit Zitat antworten Zitat