Einzelnen Beitrag anzeigen

HL92

Registriert seit: 7. Jan 2015
8 Beiträge
 
#12

AW: Laufende whileschleife auf Knopfdruck unterbrechen

  Alt 16. Feb 2015, 09:28
Moin zusammen,

vielen Dank für die Antworten.
Ich habe es in dieser Form versucht. Das Problem klärt sich dadurch aber noch nicht:

Delphi-Quellcode:
procedure TForm_WLNConnectionNMEA.IdTCPClient1Connected(Sender: TObject);
  begin
    a:=true;
    PackageProcess.clear(Memo);
    Memo.Lines.Add('connected');
    Button_Disconnect.Enabled := true;

   while a=true do
      begin

        Application.ProcessMessages;
       
        PackageProcess.ReceiveString(IdTCPClient1);
        PackageProcess.selectNMEA ();
        PackageProcess.showmessage(Memo);

        a:=PackageProcess.GetConnectState;

      end
  end;

procedure TForm_WLNConnectionNMEA.Button_DisconnectClick(Sender: TObject);
begin
  PackageProcess.SetConnectStateFalse;
  PackageProcess.DisconnectFromHost(Memo,IdTCPClient1);

end;
Ich kann allerdings auch weiterhin den Disconnectknopf nur dann mit Reaktion drücken wenn die Schleife nicht läuft. Unter untenstehendem Link ist einmal das gezipte Projekt. Entscheidender Part ist CForm_WLNNMEA.

https://www.dropbox.com/s/b09b0wvn82...EA1.3.zip?dl=0

Vielleicht sieht ja jemand meinen Fehler. Als nächstes test ich sonst den OnIdle Vorschlag.

Geändert von HL92 (16. Feb 2015 um 09:40 Uhr)
  Mit Zitat antworten Zitat