Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Prob. mit if-Anweisung (https://www.delphipraxis.net/105589-prob-mit-if-anweisung.html)

cosypanther 25. Dez 2007 14:36


Prob. mit if-Anweisung
 
Hallo,

Ich habe ein Problem mit einer if-Anweisung.
Wenn ich z.B. das hier eingebe:

Delphi-Quellcode:
if
 strtofloat(feld1.Text)=0 or
 strtofloat(feld2.Text)=1 or
 strtofloat(feld3.Text)=2

then begin
 ...
end;
Dann bekomme ich immer eine Fehlermeldung hinter strtofloat(feld3.Text)=2.

Woran liegt das? Kann man immer nur zwei Werte vergleichen?


mfG cosypanther

Dunkel 25. Dez 2007 14:39

Re: Prob. mit if-Anweisung
 
Hallo!

Du musst die einzelnen Bedingungen in Klammern einschließen, dann klappt es auch mit der if-Anweisung.

Delphi-Quellcode:
if
 (strtofloat(feld1.Text)=0) or
 (strtofloat(feld2.Text)=1) or
 (strtofloat(feld3.Text)=2)

then begin
 ...
end;

cosypanther 25. Dez 2007 16:37

Re: Prob. mit if-Anweisung
 
Würde das gehen, wenn "..." passieren soll
und entweder das eine richtig ist oder die anderen beiden?:

Delphi-Quellcode:
if
(strtofloat(feld1.Text)=0) or
  (
(strtofloat(feld2.Text)=1) and
(strtofloat(feld3.Text)=2)
  )

then begin
...
end;
cosypanther

fLaSh11 25. Dez 2007 16:41

Re: Prob. mit if-Anweisung
 
Die zusätzlichen Klammern um die and-Anweisung brauchst du nicht!

dominikkv 25. Dez 2007 17:39

Re: Prob. mit if-Anweisung
 
Zitat:

Zitat von fLaSh11
Die zusätzlichen Klammern um die and-Anweisung brauchst du nicht!

ich würd sie der Übersicht wegen trotzdem machen!

mimi 25. Dez 2007 18:11

Re: Prob. mit if-Anweisung
 
ich finde sie wirken ehrer im gegenteil. Sie stören der Übersicht. und sind nur sinvol bei solchen sachen:
Delphi-Quellcode:
if ((test1=1) and (testa = test1)) or ((test1=2) and (testb = 'ÖLll')) then
.....
sonst sind sie nur stören.... aber das ist Geschmack sache.

dominikkv 25. Dez 2007 18:17

Re: Prob. mit if-Anweisung
 
wenn wir mal davon absehen das bei dir eine klammer fehlt ist es doch fast das gleiche wie cosypanther geschrieben hat :gruebel:

mimi 25. Dez 2007 18:22

Re: Prob. mit if-Anweisung
 
Aber nur fast ! es gibt halt viele Wege ein Problem zu lösen ...

Stimmt da fehlt eine behebe ich sofort !

dominikkv 25. Dez 2007 18:38

Re: Prob. mit if-Anweisung
 
Ich glaube hier geht es nicht darum ob man jetzt eine ganze Zeile für eine Klammer ofpert (was ich übrigens auch nicht machen würde) sondern ob die Klammern da hingehören!

Sind diese 2 Zeilen das gleiche?
Delphi-Quellcode:
if A or B and C then ...
if A or (B and C) then ...
Mit den Klammern weiß mann immer genau was mir dieser Code sagen will!

pilic 25. Dez 2007 19:15

Re: Prob. mit if-Anweisung
 
Zitat:

Würde das gehen, wenn "..." passieren soll
und entweder das eine richtig ist oder die anderen beiden?:
xor würde ich meinen

cosypanther 25. Dez 2007 21:57

Re: Prob. mit if-Anweisung
 
Danke für die vielen Antworten!!! :thumb:

cosypanther

mimi 26. Dez 2007 12:23

Re: Prob. mit if-Anweisung
 
@dominikkv
Die zeilen unterscheiden sich:
Delphi-Quellcode:
if A or B and C then ...
if A or (B and C) then ...
Bei der ersten würde das Programm entweder A nehmen oder das zweite wenn B = C ist
Ich sehe gerade bei der Zweiten Zeile würde das Programm das auch machen.
Also sind beide Zeilen im Prinzip gleich. Ob der ASM Code sich unterscheidet weiß ich nicht.

Es ist nur übersichtlicher denke ich einfach und wenn A und B und C Booleane Variablen sind müssen die Klammern meine ich nicht sein, nur wenn es Interger oder Strings oder sowas ist.
und wenn die Lang From verwendet wird wie z.b. A = True
Dann müssen Klammern gesetzt werden, also in 80% Der Fälle müssen die Klammern her.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:31 Uhr.

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