Einzelnen Beitrag anzeigen

Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: IdTCPServer - OnExecution und GUI Zugriffe

  Alt 27. Nov 2008, 15:59
Hallo,

also ich würde die Daten in einen Buffer schreiben (Array[0..X] of String oder so (genug Plätzte für ca. 2 Sekunden) vielleicht mit TCriticalSection oder so) und dann nicht die Methode direkt aufrufen sonder per Postmessage das Fenster informieren und dort den Index des eben eingetragenen Strings übergeben.

Das sollte gehen.

Gruß, Chris

Edit für Praktisch:
Delphi-Quellcode:
procedure TfrMain.IdTCPServer1Execute(AContext: TIdContext);
var
  request :string;
  naechsterIndex: Integer;
begin
  request := acontext.Connection.IOHandler.ReadLn;
  MyCriticalSection.Enter;
  try
    naesterIndex := (letzterInd +1) mod MAXINDEX_BUFF;
    letzterInd := naesterInd;
    MyDatenArr[naesterIndex] := request;
    PostMessage(Form.Handle, WM_DODECODE_COMMANDS, 0, naesterInd);
  finally
    MyCriticalSection.Leave;
  end;
end;
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat