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
MessageBox 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