Guten abend,
ich habe dein Code mit dem Thread getestet, aber da bekomme ich noch Probleme.
Mein großes Problem ist das ich Daten von einen ESP32 (micro SD Card auslesen) bekomme, aber viele strings mit #13#10
Ich hatte mal vor langer Zeit einen Thread gebastelt und dieser läuft super.
Ich habe es jetzt so gemacht.
Delphi-Quellcode:
procedure TMyThread.Execute;
var i : integer;
Begin
while bool = true do
begin
if Form1.TCPClient.Connected = true then
begin
if not Form1.TCPClient.IOHandler.InputBufferIsEmpty then
begin
rec_str:= Form1.TCPClient.IOHandler.ReadLn();
Form1.Edit10.Text:= Form1.Edit10.Text +rec_str;
Form1.Memo1.Lines.Add(rec_str);
end;
end;
end;
End;
Wenn ich den Befehl ListDir an den ESP32 sende lösche ich vorher Memo1.clear damit ich meinen String
alleine im Memo Feld habe, danach kopiere ich Empfstr:= Memo1.lines.text; in den Empfstr..
Weil ich den Empfstr in meiner Procedure ListBox zerlege.
aber dieser wird nicht kopiert Empfstr ist leer
Deswegen musste ich Edit10 füllen Form1.Edit10.Text:= Form1.Edit10.Text +rec_str;
Jetzt drücke ich eine taste Button10
Delphi-Quellcode:
procedure TForm1.Button10Click(Sender: TObject);
begin
Empfstr:= memo1.Lines.Text;
Proc_Fat16_Dir_anzeigen;
end;
Und jetzt wird die Listbox verarbeitet wie im Bild gezeigt.
Was passiert da, bin ich zu schnell im Programm ?
Das Memo1 noch gar keine Daten hat wenn ich meine
Proc_Fat16_Dir_anzeigen; aufrufe ?
Aber so bekomme ich meine daten vom ESP32 sehr gut.
mfg