Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   if....or....then Problem (https://www.delphipraxis.net/193875-if-then-problem.html)

Jinchuuriki 18. Sep 2017 15:28

if....or....then Problem
 
Moinsen,

ich kriege bei dem Code einen Fehler angezeigt

Delphi-Quellcode:
if rz3.Caption = rz1.Caption OR rz3.Caption = rz2.Caption then
    begin
      rz3.Caption := IntToStr(Random(49)+1);
    end;
E2015 Operator ist auf diesen Operandentyp nicht anwendbar,

wird mir angezeigt. Gemeint wird das zweite "="-zeichen.

Aviator 18. Sep 2017 15:29

AW: if....or....then Problem
 
Mach das mal so:

Delphi-Quellcode:
   if (rz3.Caption = rz1.Caption) OR (rz3.Caption = rz2.Caption) then
    begin
      rz3.Caption := IntToStr(Random(49)+1);
    end;
Mir OR verknüpfte Vergleiche müssen bei Delphi geklammert werden.

Glados 18. Sep 2017 15:35

AW: if....or....then Problem
 
Bei Delphi muss man das in diesem Fall alles umklammern.

Die J(V)CL-Ersteller haben da einen recht guten Code-Style-Guideline in dem sie im Prinzip sagen: immer und überall umklammern.

Das ist genau wie mit dem Setzen von begin und end.
Delphi-Quellcode:
if a = b then
 c;
Wenn sich zu c in Zukunft noch etwas dazugesellt und man das begin end vergisst, steht man schnell vor Ärger.
Daher immer sofort alles mit begin/end schreiben und auch Klammern immer und überall nutzen.

Der schöne Günther 18. Sep 2017 15:39

AW: if....or....then Problem
 
Siehe "Rangfolge von Operatoren":
http://docwiki.embarcadero.com/RADSt...von_Operatoren

Das OR bindet stärker als das =

Jinchuuriki 18. Sep 2017 15:40

AW: if....or....then Problem
 
Vielen Dank!


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:22 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