Deine Erste Methode würde glaube ich nicht viel Bringen da er nur beim ersten mal Prüft ob der AClient zugewisen ist.
Die untere Methode habe ich auch ausprobiert klappt ebenfalls nicht. Habe noch etwas anderes versucht und dann brauch ich dazu mal eine erklärung bitte wie das zustande kommt.
Delphi-Quellcode:
if AClient.Buffer > '' then begin
while (Pos(EOCommand, AClient.Buffer) > 0) do begin
Index := Pos(EOCommand, AClient.Buffer);
DCFrame := Copy(AClient.Buffer, 1, Index + 4); // +4 ersetzten durch Length(EOCommand)
AClient.Buffer := Copy(AClient.Buffer, Index + 5, Length(AClient.Buffer)); // +5 ersetzen
Parse_DCFrame(AClient, DCFrame);
if not Assigned(AClient) then
Exit;
if AClient.Buffer = '' then
Exit;
end;
Bin das mit dem Debugger durchgegangen.
Wenn ich über Assigned(AClient) fahre steht dort -> Nicht verfügbarer Wert
Im Debug-Insprektor jedoch sind noch alle Daten vorhanden.
Versuche ich das ganze mit AClient.Buffer ->
Zitat:
---------------------------
Fehler
---------------------------
Fehler beim Untersuchen von 'AClient.Buffer': Nicht verfügbarer Wert
---------------------------
OK
---------------------------
Lasse ich es weiter durchlaufen springt er wieder in die Schleife und erst dann kommt die
Exception