Hai Spieder,
die IF-Anweisung interessiert die Klammern eigentlich überhaupt nicht. Du kannst sie also weglassen. Ha, aber nur wenn dein Ausdruck richtig aufgebaut ist. Je nach dem musst Du klammern setzen.
z.B.: Du hast vier Boolean Variablen. a,b,c,d Die Bedingung soll erfüllt sein wenn a oder b und c oder d True ist.
Wenn du nun schreibst ....
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
a,b,c,d : Boolean;
begin
a := False;
b := False;
c := False;
d := True;
if a or b and c or d then
begin
ShowMessage ('Bedingung ist erfüllt');
end;
end;
... kommst Du nicht zum gewünschten Ergebniss. Warum? Weil es eine Reihenfolge für die Auswertung gibt.
Zitat von
Online Hilfe - Regeln für die Rangfolge von Operatoren -:
Code:
Operator Rangfolge
@, not Erste (höchste)
*, /, div, mod, and, shl, shr, as Zweite
+, -, or, xor Dritte
=, <>, <, >, <=, >=, in, is Vierte (niedrigste)
Darum musst Du Klammern setzen.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
a,b,c,d : Boolean;
begin
a := False;
b := False;
c := False;
d := True;
if (a or b) and (c or d) then
begin
ShowMessage ('Bedingung ist erfüllt');
end;
end;
[EDIT]*grummel* Da schreib ich mir den Wolf bzw. Hai und Robert bringt es in vier Zeilen auf den Punkt [/edit]
Stephan B.
"Lasst den Gänsen ihre Füßchen"