Tja, das ist mit der Delphi-Version blöde ... bei den neueren Versionen macht man das ganz charmant über Anonyme Methoden.
Aber so sollte es auch charmant gehen:
Delphi-Quellcode:
type
TInstError = procedure(const Content: String) of object;
TMyOwnThread = class(TThread)
private
FInstError: TInstError;
// procedure SyncError; @DeddyH: logisch muss die hier raus :o)
CallError( const Content : string );
public
property InstError: TInstError read FInstError write FInstError;
end;
implementation
procedure TMyOwnThread.CallError( const Content : string );
procedure SyncError;
begin
if Assigned( FInstError )
then FInstError( Content );
end;
begin
Synchronize( SyncError );
end;
procedure TMyOwnThread.Execute;
begin
...
// Error 1
CallError( 'Fehler 1' );
...
// Error 2
CallError( 'Fehler 2' );
...
// Error 3
CallError( 'Fehler 3' );
usw.
end;
procedure Form1.InstError(const Content: String);
begin
RichEditError.Lines.Add(Content);
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)