Einzelnen Beitrag anzeigen

oki

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

Re: Aktuelle Daten der seriellen Schnittstelle anzeigen

  Alt 1. Sep 2007, 18:06
Hi eticket,

eine entsprechende Komponente heißt CPort. Such mal hier im Forum danach oder bei SourceForge. Wenn du deine Oberfläche aus deinem Thread heraus aktualisieren willst, dann kannst du das auch über ein Ereignis machen. Dieses kannst du in deinem Thread deklarieren und wie ein normales Ereignis mit deinem MainWindow zuweisen.

Delphi-Quellcode:
TMyThread = class(TThread)
...
protected
  procedure DoReceiveData;
...
public
  property ReceiveData : TNotifyEvent read FReceiveData write FReceiveData;
end;

TForm1 = class(TForm)
...
public
  procedure OnReceiveData(Sender : TObject);
end;


procedure TMyThread.DoReceiveData;
begin
  IF Assigned(FReceiveData) then FReceiveData(self);
end;

// Aufruf aus dem Thread wenn Daten empfangen
Syncronize(DoReceiveData);



procedure TForm1.OnReceiveData(Sender : TObject);
var MyThread : TMyThread;
begin
  IF not (Sender is TMyThread) then Exit;
  MyThread := TMyThread(Sender);
  // und auf Daten zugreifen
...
end;
Du kannst natürlich auch eine eigene Procedure of Object definieren in der du die Daten gleich hochreichst.
TReceiveDataEvent = procedure (Sender : TMyThread; Data : String) of Object; Wichtig ist, dass du die Methode zum Absetzen des Ereignisses mit Syncronize aus deinem Thread heraus aufrufst.

Gruß oki
42
  Mit Zitat antworten Zitat