AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Welche CheckBox-Komponente?!?

Ein Thema von Daniel B · begonnen am 29. Nov 2002 · letzter Beitrag vom 3. Jan 2003
Antwort Antwort
Seite 1 von 2  1 2      
Daniel B
(Gast)

n/a Beiträge
 
#1

Welche CheckBox-Komponente?!?

  Alt 29. Nov 2002, 13:41
Hallöchen,

kennt vielleicht jemand eine CB-Kompo, die ein Ereigniss für "un"checken hat? Die normale hat ja sowas nicht oder ich bin einfach nur Blind, wobei ich ungern mit Fremdkomponenten arbeite.

Grüsse, Daniel
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 29. Nov 2002, 13:43
Moin Daniel B,

wie wär's denn mit OnClick?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#3
  Alt 29. Nov 2002, 13:45
Hallo Christian,

?? wird das auch beim unchecken ausgeführt?
Hmm, dann müsste ich ja in der OnCheck noch extra prüfen oder sie jetzt Ein oder Ausgeschaltet wird.

Grüsse, Daniel
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#4
  Alt 29. Nov 2002, 13:49
Tatsächlich, hmm kommt davon wenn man nie damit arbeitet...
So geht es immerhin.
Delphi-Quellcode:
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;
end;
Wobei es schöner wäre, wenn die IFs nicht bräuchte, aber na gut.
Trotzdem Danke, hat mir sehr geholfen.

Grüsse, Daniel
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#5
  Alt 29. Nov 2002, 13:58
Es ist sauberer, wie folgt zu schreiben, da man Booleanwerte generell nicht mit True/False vergleichen sollte:
Delphi-Quellcode:
procedure TAboutBox.CheckBox1Click(Sender: TObject);
begin
  if CheckBox1.Checked then
  begin
    ShowMessage('Ein');
  end
  else if not CheckBox1.Checked then
  begin
    ShowMessage('Aus');
  end;
end;
......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#6
  Alt 29. Nov 2002, 14:02
Zitat von sakura:
Es ist sauberer, wie folgt zu schreiben, da man Booleanwerte generell nicht mit True/False vergleichen sollte:
Wieso denn das
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#7
  Alt 29. Nov 2002, 14:13
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, intern eine 32bit Variable ist, kann es also theoretisch 2^32-1 verschieden True Werte geben - die Konstante True ist jedoch definiert als (-1). Daraus ergeben sich 2^32-2 mögliche True-Werte die im Vergleich mit der Konstante True verloren gehen.

Bestes Beispiel ist VB - die Checkbox dort, kann im Wert Checked weder True noch False sein, wenn man diese genauso vergleicht - und deren State cbGrayed ist. Gleiches kann theoretisch (selten praktisch) auch in Delphi geschehen.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#8
  Alt 29. Nov 2002, 14:46
Das würde also heißen, dass eine boolsche Variable, die auf TRUE steht, ein 32bit-Integer ist mit dem Dezimalwert 1. Wenn man die Variable auf TRUE setzt, wird sie 1, bei FALSE 0.
Wenn man jetzt aber irgendwie einen Integer mit dem Wert 15 als einen Boolean-Wert behandelt, ist dieser weder TRUE noch FALSE. Ist das so richtig?
Ich dachte immer, TRUE wäre keine Konstante in dem Sinne, sondern einfach der Bereich kleiner 0 und größer 0.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#9
  Alt 29. Nov 2002, 14:54
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.
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#10
  Alt 29. Nov 2002, 16:02
Was ist eigentlich der Unterschied zwischen dem logischen TRUE und der TRUE-Konstante?
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:03 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