Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi combobox enabled (https://www.delphipraxis.net/40407-combobox-enabled.html)

herrentor 15. Feb 2005 13:14


combobox enabled
 
moin nochmal,

ich möchte bei einem häckchen in einer checkbox, eine combobox auf enabled=false stellen, dies aber erst wenn man in combobox2 eine auswahl trifft. danke im voraus.

so in etwa hatte ich mir das gedacht, aber das geht so natürlich nicht:

Delphi-Quellcode:

if checkbox.checked=true then
schichtbuch.comboboxChange(schichtbuch.combobox2).enabled:=false;

Binärbaum 15. Feb 2005 13:20

Re: combobox enabled
 
Wenn ich dein Problem richtig verstanden habe, dann kann man das im OnClick der CheckBox regeln:
Delphi-Quellcode:
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
 if CheckBox1.Checked then ComboBox1.Enabled:= False;
end;
MfG
Binärbaum

Sharky 15. Feb 2005 13:23

Re: combobox enabled
 
Hai herrntor,

evnentuell so:
Delphi-Quellcode:
procedure TForm1.ComboBox2Change(Sender: TObject);
begin
  ComboBox1.Enabled := not ((ComboBox2.Text <> '') AND (CheckBox1.Checked))
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  ComboBox1.Enabled := not ((ComboBox2.Text <> '') AND (CheckBox1.Checked))
end;

herrentor 15. Feb 2005 13:26

Re: combobox enabled
 
die combobox1 soll nur enabled=false wenn man eine auswahl in combobox2 trifft.

@Sharky: gute idee, werd ich gleich mal versuchen

Neutral General 15. Feb 2005 13:26

Re: combobox enabled
 
Zitat:

Zitat von Sharky
Hai herrntor,

evnentuell so:
Delphi-Quellcode:
procedure TForm1.ComboBox2Change(Sender: TObject);
begin
  ComboBox1.Enabled := not ((ComboBox2.Text <> '') AND (CheckBox1.Checked))
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  ComboBox1.Enabled := not ((ComboBox2.Text <> '') AND (CheckBox1.Checked))
end;

Dazu hätte ich mal eine Frage : Ich habe "not" und "and" bis jetzt eigentlich nur in Abfragen benutzt.
Was bewirken sie denn in diesem Fall ?

herrentor 15. Feb 2005 13:31

Re: combobox enabled
 
aber woher weiß man ob enabled true oder false ist. das muss da doch noch rein, oder nicht?

Binärbaum 15. Feb 2005 13:34

Re: combobox enabled
 
Zitat:

Zitat von Neutral General
...
Dazu hätte ich mal eine Frage : Ich habe "not" und "and" bis jetzt eigentlich nur in Abfragen benutzt.
Was bewirken sie denn in diesem Fall ?

Da Enabled ein Boolean ist, also der selbe Typ wie bei (if-)Abfragen, kann man hier auch die boolschen Operatoren not und and anwenden.
Zur Wirkung:
Delphi-Quellcode:
(ComboBox2.Text <> '') AND (CheckBox1.Checked)
ergibt True, wenn in CheckBox1 ein Haken gesetzt wurde und der Text von ComboBox2 nicht leer ist (d.h. es wurde etwas ausgewählt). Das not sorgt nur noch dafür, das der Wert negiert wird (d.h. True wird zu False und umgekehrt).

MfG
Binärbaum

Sharky 15. Feb 2005 13:34

Re: combobox enabled
 
Zitat:

Zitat von Neutral General
...Dazu hätte ich mal eine Frage ...

[Delphi-Grundlagen = ON] *g*

Das Property .Enabled ist eine Boolvariable. Es kann ihr also True oder False zugewiesen werden.
Der Ausdrug (1=1) wird vom als Boolcheoperation gewertet und gibt True zurück wenn die Bedingung erfüllt ist. Ansonsten False.

Ergo ergibt
Delphi-Quellcode:
((ComboBox2.Text <> '') AND (CheckBox1.Checked))
True wenn in der Combobox2 ein Text steht und die Checkbox1 "gechecked" ist. Da es für diese Anforderung aber umgedreht sein soll wird das Ergebniss der Boolchenoperation mit NOT negiert.

Anderes Beispiel:
Delphi-Quellcode:
var
  a : Integer;
  b : String;
begin
  Irgendwass.Enabled := ((a=1) OR (a=7)) AND (b = 'blubb');
end;
auch hier steht rechts vom := eine einfache Boolcheoperation.

Matze 15. Feb 2005 13:35

Re: combobox enabled
 
@Neutral General:

Delphi-Quellcode:
ComboBox1.Enabled := not ((ComboBox2.Text <> '') AND (CheckBox1.Checked))
Hier wird die Checkbox enabled, wenn Die CheckBox nicht Leer ist und die CheckBox gecheckt ist.

Also wenn die Ereignisse in Klammern nicht beide zutreffen.


Edit: Zu langsam und unausführlich ^^

Neutral General 15. Feb 2005 13:39

Re: combobox enabled
 
@ Sharky : Oh man.. Ich kann doch Delphi :roll: :mrgreen:

Ich hab nur nicht gewusst das man das so schreiben kann :

Delphi-Quellcode:
ComboBox1.Enabled := not ((ComboBox2.Text <> '') AND (CheckBox1.Checked))
Ich hätte geschrieben :

Delphi-Quellcode:
if (ComboBox2.Text <> '') and (Checkbox1.Checked) then
Combobox1.Enabled := false
else
Checkbox1.Enabled := true;
Die Schreibweise war mir nur neu. :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:10 Uhr.
Seite 1 von 3  1 23      

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-2025 by Thomas Breitkreuz