Einzelnen Beitrag anzeigen

oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Variable übergreifend übergeben

  Alt 18. Aug 2003, 16:11
Hi Tpercon,

ich hatte mal ähnliches Problem und dies so gelöst:

Delphi-Quellcode:

type TMyCloseEvent = procedure(Sender : TObject; Value : Integer) of Object;
Hierbei kann natürlich für Value jeder beliebige Typ genutzt werden.

Im Thread dann:
Delphi-Quellcode:
type
  TMyThread = class(TThread)
.
.
.
  private
    FMyCloseEvent : TMyCloseEvent;
  public
    property OnMyClose : TMyCloseEvent read FMyCloseEvent write FMyCloseEvent;
end;

// im Code MyThread

  If Assigned(FMyCloseEvent) then FMyCloseEvent(self, Wert);

Im Hauptprogramm:

Delphi-Quellcode:
   // Ereignisse
  procedure OnThreadClose(Sender : TObject; Value : Integer);

// zum Zeitpunkt Thread-Create

  MyThread := TMyThread.Create(LastClose);
  MyThread.OnMyClose := OnThreadClose;
Im Code für die procedure OnThreadClose des Hauptprogramms kann dann in geeigneter Form der Wert Value weiterverarbeitet werden. Durch den Sender bekommt man automatisch auch mit, welcher Thread diesen liefert. Das ist vorallem interessant, wenn man mehrere dieser Threads startet.

Nach diesem Schema hab ich das schon verarbeitet und es funzt super.

Gruß oki
  Mit Zitat antworten Zitat