Einzelnen Beitrag anzeigen

Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.060 Beiträge
 
Delphi 10 Seattle Enterprise
 
#19

Re: Einfacher thread der nur ein MessageDlg anzeigt erzeugen

  Alt 4. Jan 2009, 22:50
Zitat von jfheins:
Das tut er doch bereits
Delphi-Quellcode:
constructor TMessageBoxThread.Create(msg:String);
begin
  inherited Create(false);
  text := msg;
  Priority := tpLower;
end;
Nur darfst du dann keine Properties mehr setzten nachdem du den kOnstruktor aufgerufen hast ...

Zu dem Char-Array-Pronblem: Schonmal versucht, den String einfach nach PChar zu casten?
oh je, natürlich funkt es, ich dachte ich muss Resume immer aufrufen.
Das mit PChar war das erste was ich probiert hatte. Zu dem Zeitpunkt hat es jedoch
Fehlermeldungen geregnet, allerding nicht wegen cast auf PChar wie ich soeben gemerkt
habe. Auch das geht also. So gefehlt mir das.

Tausend Dank Julius Du warst mir eine große Hilfe.

Gruß Kostas

Delphi-Quellcode:
unit MessageBoxThread;

interface

uses
  Classes, Dialogs, Forms, Sysutils, Windows;

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


implementation

{ TMessageBoxThread }

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


procedure TMessageBoxThread.Execute;
begin
  windows.MessageBox(handle, Pchar(text), 'Fingerabdruck gefunden!', MB_OK);
end;


end.
Aus dem Aufruf ist jetzt nur noch das übrichgeblieben.
ThreadMB := TMessageBoxThread.Create(s);
  Mit Zitat antworten Zitat