Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by sakura,
2. Jan 2003
Ich gebe zu, das Beispiel war nicht gut, es sollte jedoch folgenden Konstrukten negieren.procedure TAboutBox.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked = True then
begin
ShowMessage('Ein');
end
else if CheckBox1.Checked = False then
begin
ShowMessage('Aus');
end;
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by sakura,
29. Nov 2002
Sorry: True ist gleich 1 :oops:
Der Rest bleibt aber weiter wie beschrieben. Hier mal ein Beispiel:
// der Wert der Konstante True
ShowMessage('TRUE: ' + IntToStr(Integer(True)));
// der Wert der Konstante True
ShowMessage('FALSE: ' + IntToStr(Integer(False)));
// ein Vergleich zweier gleicher Konstanten
ShowMessage('2=2: ' + IntToStr(Integer(Boolean(2 = 2))));
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by sakura,
29. Nov 2002
:!: minus 1 (-1), nicht 1 (alle Bits sind an).
In Pascal und den meisten Programmiersprachen ist das logische True als ungleich Null (0) definiert. Die Konstante ist, in Pascal/Delphi zumindest als -1 ($FFFFFFFF) definiert.
Ausnahme: UNIX Shell Scripting: False ist ungleich Null (0) und True ist als Null (0) definiert. :shock:
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by sakura,
29. Nov 2002
Die Definition von Boolean erlaubt theoretisch nur zwei Werte: True und False.
Der Vergleich mit False klappt immer, da False als Null (0) definiert ist. Ein Vergleich mit True kann fehlschlage. Die Konstante True ist als -1 ($FFFFFF) definiert. In der Logik ist True jedoch als (not False) definiert und kann jeden Wert ungleich Null (0) annehmen. Da Boolean seit der 32bit Variante von Delphi,...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by sakura,
29. Nov 2002
Es ist sauberer, wie folgt zu schreiben, da man Booleanwerte generell nicht mit True/False vergleichen sollte:
procedure TAboutBox.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked then
begin
ShowMessage('Ein');
end
else if not CheckBox1.Checked then
begin
ShowMessage('Aus');