Entwickler-Ecke

Internet / Netzwerk - Problem beim Ausführen eines Befehls über LAN


klemme - So 03.12.06 13:16
Titel: Problem beim Ausführen eines Befehls über LAN
Hi ich habe folgendes Problem das ich nich verstehe:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
procedure TForm1.Server1Execute(AThread: TIdPeerThread);
 var SEin: string;
begin
 with athread.connection do begin
 sein := readln;
 if SEin <> '' then    begin
 if SEin = '$55"Ende*#22' then
 Application.terminate; // AN DIESER STELLE MACHT ER NICHTS!!!
 else
 if SEin = '$55"Test*#22' then begin
 if checkbox1.Checked = false then begin
 writeln('$55"Bestätigt*#22');

 end;
 end else begin
 listbox1.lines.Add(SEin);
 if application.Active = FALSE then
  mmsystem.PlaySound('Tada',1,1);
 tt.ShowMainForm;
 form1.BringToFront;
 application.BringToFront;
 end;
 sein := '';
 end;
 end;
end;


An die Stelle wo Application.terminate steht, kommt er zwar wenn die bedingung erfüllt ist, er schließt die Anwendung aber nicht.
Vielleicht kann mir ja jemand weiterhelfen


Narses - Do 11.01.07 15:12

Moin!

user profile iconklemme hat folgendes geschrieben:
An die Stelle wo Application.terminate steht, kommt er zwar wenn die bedingung erfüllt ist, er schließt die Anwendung aber nicht.

Mit Application.Terminate setzt du quasi nur ein Flag, dass in der nächsten Nachrichtenbearbeitung erst verarbeitet wird.

Probier das mal so:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
//...
 if SEin = '$55"Ende*#22' then begin
 Application.terminate; // AN DIESER STELLE MACHT ER NICHTS!!!
 Exit; // Prozedur abbrechen
 end
 else
//...

Abgesehen davon: schonmal was von "Einrückung" gehört? :?

cu
Narses