![]() |
Abhängigkeit 2er DBCheckboxen
Hallo,
ich möchte 2 DBCheckboxen voneinander abhängig anzeigen und die Werte anpassen. Grundvorraussetung ist dass wenn cb1.Checked true ist, dann darf die 2. DBCheckBox cb2 nicht sichtbar sein.
Delphi-Quellcode:
Jetzt möchte ich noch, dass wenn man auf cb1 klickt, nicht nur die cb2 nicht angezeigt wird, sondern dass dann auch
procedure TFORM1.cb1Click(Sender: TObject);
begin if cb1.Checked = true then cb2.Visible = true else cb2.Visible = false; end; cb2 auf unchecked gesetzt wird. Bitte um Hilfe. |
Re: Abhängigkeit 2er DBCheckboxen
Delphi-Quellcode:
procedure TFORM1.cb1Click(Sender: TObject);
begin cb2.Visible := not cb1.Checked; cb2.checked := false; end; |
Re: Abhängigkeit 2er DBCheckboxen
Sorry hab das falsch interpretiert.
Grundvorraussetung ist dass wenn cb1.Checked false ist, dann darf die 2. DBCheckBox cb2 nicht sichtbar sein. Also muss ich doch schreiben:
Delphi-Quellcode:
Wenn dann bei beiden Checked = true ist, und dann das nächste mal draufklicke ist nur cb1.checked false.
procedure TFORM1.cb1Click(Sender: TObject);
begin cb2.Visible := cb1.Checked; cb2.checked := false; end; Es sollen dann aber beide Checkboxen false sein ! |
Re: Abhängigkeit 2er DBCheckboxen
Moin :-)
[quote="needatip"] Grundvorraussetung ist dass wenn cb1.Checked false ist, dann darf die 2. DBCheckBox cb2 nicht sichtbar sein. [/qoute] Zitat:
Zitat:
Delphi-Quellcode:
procedure TFORM1.cb1Click(Sender: TObject);
begin cb2.Visible := not cb1.Checked; cb2.Checked := cb1.Checked; end; |
Re: Abhängigkeit 2er DBCheckboxen
Vielleicht hab ich vergessen zu erwähnen:
wenn cb1.checked = false ist dann soll cb2.visible = false und cb2.checked = false sein. |
Re: Abhängigkeit 2er DBCheckboxen
Hai,
nur eine kleine Anmerkung: Wenn Du für eine CheckBox eine "OnClick"-Ereigniss hast wird dieses auch dann aufgerufen wenn die Eigenschaft Checked geändert wird und nicht nur wenn man mit der Maus auf die CB klickt. Dieser Code hier erzeugt also eine schöne Rekursion:
Delphi-Quellcode:
procedure TForm1.CheckBox1Click(Sender: TObject);
begin CheckBox1.Checked := not(CheckBox1.Checked) end; |
Re: Abhängigkeit 2er DBCheckboxen
Ok hab ich verstanden.
Wie hol ich nun die Kuh vom Eis? Meine Aufgabe ist folgende: ich habe zwei DBCheckboxen, eine für das Feld Export und eine für das Feld Drittland. Wenn nun beim Feld Export ein Häkchen gesetzt wird soll die Checkbox Drittland sichtbar werden. Jetzt kann man auch für DBCheckbox Drittland ein Häkchen setzen oder eben nicht. Wenn aber später das Häkchen bei Export herausgenommen wird, soll auch das Häkchen bei Drittland herausgenommen werden und eben die Checkbox Drittland unsichtbar werden. Sorry, ich hoffe mich nun etwas klarer ausgedrückt zu haben. |
Re: Abhängigkeit 2er DBCheckboxen
Zitat:
Delphi-Quellcode:
procedure cb1Click(Sender: TObject);
begin cb2.Visible := cb1.checked; cb2.checked := (cb1.checked and not cb2.Visible); //--bzw vereinfacht: cb2.Checked := false; end; |
Re: Abhängigkeit 2er DBCheckboxen
Hallo needatip,
auch GUI-Design kennt gewisse Best Practices. Dazu gehört, dass man die zweite CheckBox nicht unsichtbar macht, sondern lediglich disabled. Unsichtbar macht nur dann Sinn, wenn der vom Control eingenommene Raum anderweitig genutzt werden kann. Und wenn du datensensitive Controls (DBCheckBox) einsetzt, dann manipuliert der Benutzer diese Controls, dein Code aber manipuliert die Feldwerte des Datensatzes direkt.
Delphi-Quellcode:
Freundliche Grüße
procedure TDemoForm.CBExportClicked(Sender: TObject);
begin with Table do if (State = dsEdit) or (State = dsInsert) then begin FieldByName('DRITTLAND').AsBoolean := False; CBDrittLand.Enabled := CBExport.Checked; end; end; procedure TDemoForm.DataSourceDataChange(Sender: TObject; Field: TField); begin if not Assigned(Field) then CBDrittLand.Enabled := CBExport.Checked; end; |
Re: Abhängigkeit 2er DBCheckboxen
Bin für jeden Ratschlag dankbar. - Alles super !
Beste Grüsse. :cheers: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz