Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Neuen Beitrag zur Code-Library hinzufügen (https://www.delphipraxis.net/33-neuen-beitrag-zur-code-library-hinzufuegen/)
-   -   while and "funktioniert nicht" (https://www.delphipraxis.net/197781-while-funktioniert-nicht.html)

Versus 3. Sep 2018 21:10


while and "funktioniert nicht"
 
Delphi-Quellcode:
label4.Caption:=edit1.Text;
label6.Caption:=edit2.Text;
Spieler1:=edit1.Text;
Spieler2:=edit2.Text;
while Spieler1 and Spieler2 ='' do
showmessage('Spieler1 und Spieler2 wollen einen Namen D:') ;
Ich möchte folgendens; Wenn Spieler 1 und/oder Spieler 2 leer sind dann soll er eine showmessage anzeigen. Momentan sagt er Der operator ist auf diesen Operantentypen nicht anwendbar. Also 1 möchte ich wissen was ich falsch mache und wie ich Delphi und/oder sagen kann z.B. while Spieler1 and/or Spieler2 ='' do ..... :thumb:

Danke schonmal im Voraus!

Daniel 3. Sep 2018 21:21

AW: while and "funktioniert nicht"
 
Delphi-Quellcode:
while (spieler1 = ´´) and (spieler2 = ´´) do ...

mkinzler 3. Sep 2018 21:25

AW: while and "funktioniert nicht"
 
Delphi-Quellcode:
Spieler1
ist auch keine vollständige Bedingung müsste dann
Delphi-Quellcode:
Spieler1 = ''
heissen.

So wie Du es implementiert hast, ist es zudem eine Endlosschleife (wenn Bedingung erfüllt)
Wenn die Namen leer sind, muss die Möglichkeit besteheh, etws einzugeben. Ich würde die Abfrage (ohne Schleife) im Exit-Event des Edits durchführen und wenn alles OK ist einen OK-Button freigeben ( enablen).

Jasocul 4. Sep 2018 06:05

AW: while and "funktioniert nicht"
 
Du hattest den gleichen logischen Fehler hier schonmal.
Bitte nicht einfach nur die Lösung in dein Programm kopieren, sondern auch aus (so grundlegenden) Fehlern lernen. :wink:

Versus 4. Sep 2018 15:40

AW: while and "funktioniert nicht"
 
Erstmal Danke für die ganzen hilfreichen Antworten ich würde gerne noch wissen wie man per befehl einen button auslöst. Also z.B

Delphi-Quellcode:
If Zahl=0 then Button3 start
oder so ? bzw gibt es alternativen

Neutral General 4. Sep 2018 15:44

AW: while and "funktioniert nicht"
 
Was funktioniert:

Button3.Click;

Aber!
Es ist deutlich schöner die Funktionalität die im OnClick des Buttons steht in eine separate Methode auszulagern und diese dann von mehreren Stellen aufzurufen.
Von daher tu dir den Gefallen und versuch es lieber so, statt mit der obigen Lösung.

mkinzler 4. Sep 2018 15:45

AW: while and "funktioniert nicht"
 
Delphi-Quellcode:
Button.Click;
Aber ich frage mich, wie das in diesem Fll Helfen soll.

mkinzler 4. Sep 2018 15:52

AW: while and "funktioniert nicht"
 
Ich würde es wie schon mal geschrieben über die Aktivierung des Buttons machen.

Delphi-Quellcode:
Button.Enabled := False;
Delphi-Quellcode:
procedure TFormDings.EditExit(Sender: TObject);
begin
    Button.Enabled := ( edti1.Text <> '' ) and (edit2.Text <> '');
end;
Diese Methode bei den Edits mit dem Exit-Event verbinden (onExit).

Wenn beide Edits nicht mehr leer sind, wird der Button anklickbar.

Jasocul 5. Sep 2018 07:35

AW: while and "funktioniert nicht"
 
Zitat:

Zitat von mkinzler (Beitrag 1412443)
Wenn beide Edits nicht mehr leer sind, wird der Button anklickbar.

Im OnExit?
Mal ganz davon abgesehen, dass OnExit nicht immer ausgelöst wird, hier ein kleines Beispiel, was auch dagegen spricht:
Edit1 enthält Text. In Edit2 wird gerade was eingegeben. Der Button ist dann immer noch disabled.

Wenn man es brauchbar machen will, empfehle ich die Nutzung von TActionList. Bei den Actions kann man dann im OnUpdate den Enabled-Status des Button vernünftig steuern. Aber ich weiß nicht, ob der TE damit vielleicht derzeit noch überfordert ist.

Hobbycoder 5. Sep 2018 09:51

AW: while and "funktioniert nicht"
 
Und wenn schon, dann würde ich das eher im OnChange der Buttons unterbringen.
Denn wer verlässt ein Edit bevor er auf einen Button klickt?


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:24 Uhr.
Seite 1 von 2  1 2      

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