Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi [Erledigt]Totales Brett vorm Kopf: Problem mit 'end' (https://www.delphipraxis.net/63017-%5Berledigt%5Dtotales-brett-vorm-kopf-problem-mit-end.html)

TBx 13. Feb 2006 16:01

Re: [Erledigt]Totales Brett vorm Kopf: Problem mit 'end'
 
Hallo inherited!

Ich denke, die Ergänzung es IF von engine löst Dein Problem noch nicht vollständig.

Wenn ich Deinen Code richtig interpretiere, dann soll Dein TCP_Server auf den Befehl LOGIN hin überprüfen, ob der anzumeldende User (Rest des Loginstrings) sich anmelden darf, im Erfolgsfall soll 'VER:0.1' zurückgegeben werden, andernfalls 'loginnotok'.
Um dies zu realisieren, muß Dein ursprünglicher Code wie folgt geändert werden:


[...]


Delphi-Quellcode:
else if (Command[1]+Command[2]+Command[3]+Command[4]+Command[5]) = 'LOGIN' then
    begin
      OK:=true;
      for i := 0 to ListBox1.Count-1 do if Uppercase(ListBox1.Items[i])=Copy(Command, 6, Length(Command)) then OK:=false;

      if ok then
      begin
        if (Copy(Command, 6, Length(Command)) = 'HAMSTER') or (Copy(Command, 6, Length(Command)) = 'IGEL') then
        begin
          ListBox1.Items.Add(Copy(Command, 6, Length(Command)));
          AThread.Connection.WriteLn('VER:0.1');
          lbProcesses.Items.Insert(0, 'Sending Command: loginok');
        end;
//      end;   [b](1) hier stand die Zeile ursprünglich[/b]
    end
    else
      begin
      AThread.Connection.WriteLn('loginnotok');
    end; // [b](2) und hier muß Zeile (1) hin[/b]
      end
    else if Command[1]+Command[2]+Command[3]+Command[4]+Command[5]+Command[6] = 'LOGOUT' then
[...]

Und dann noch eine Anmerkung zu Deiner Schleife, in der Du den User gegen die Einträge einer Listbox validierst:

[...]

Delphi-Quellcode:
      for i := 0 to ListBox1.Count-1 do if Uppercase(ListBox1.Items[i])=Copy(Command, 6, Length(Command)) then OK:=false;
[...]

Da hier alle Listboxeinträge durchlaufen werden, bekommst Du in OK nur die Info, ob der letzte Eintrag Deiner Listbux dem User entspricht.
Ich vermute, OK soll genau dann FALSE werden, wenn ein beliebiger Eintrag in der Listbox dem USER entspricht.
Das kannst Du folgendermaßen realisieren:

>>>>>>>>>>>>>>>>>>>>>>

Delphi-Quellcode:
      for i := 0 to ListBox1.Count-1 do
        begin
          if Uppercase(ListBox1.Items[i]) = Copy(Command, 6, Length(Command)) then
          begin
            OK := false;
            break;
          end;
        end;
<<<<<<<<<<<<<<<<<<<<<<


hoffe, Dir hilft das noch ein bißchen weiter

MfG

onlinekater

[edit=alcaeus]Delphi-Tags eingefuegt. Mfg, alcaeus[/edit]

FBrust 13. Feb 2006 16:12

Re: [Erledigt]Totales Brett vorm Kopf: Problem mit 'end'
 
Hi,

in den GExperts enthalten sind die "Editor Experts". Diese beinhalten die Funktion "Find Matching Delimiter", damit kannst Du ein "Begin" markieren und der Editor zeigt Dir das dazu passende "end" (oder "end." oder "end;"). Hat mir auch schon geholfen, wenn ich vor lauter Bäumen den Wald nicht mehr gesehen habe.... :shock:

Gruß

Frank

inherited 13. Feb 2006 17:14

Re: [Erledigt]Totales Brett vorm Kopf: Problem mit 'end'
 
danke.
JEtzt noch mal für ALLE:
Das Problem ist Gelöst
Ein end; war vor den ersten else-eintrag gerutscht, hätte aber DAHINTER stehen müssen.
Es ist GELÖST

Aber wenn wir schon dabei sind, wie ihr sicher seht ist das eine tcp/ip server/bzw Client anwendung
Gebt mir doch mal Denkanstöße was ich damit jetzt noch so machen könnte^^

mindforce 13. Feb 2006 17:40

Re: [Erledigt]Totales Brett vorm Kopf: Problem mit 'end'
 
Aber.... bla. Achso gelöst! :angel2:

inherited 13. Feb 2006 20:17

Re: [Erledigt]Totales Brett vorm Kopf: Problem mit 'end'
 
mindforce... dein alter in allen ehren(bin selbst erst 14) aber musst du eigentlich immer das letzte wort haben? :lol: :lol:

grrrr ICH will das letzte wort haben^^
is MEIN thread


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:46 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz