Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Zwei Combobox (https://www.delphipraxis.net/29226-zwei-combobox.html)

superstar025 6. Sep 2004 09:34


Zwei Combobox
 
Hallo ich möchte das wenn ich zwei Combobox geändert habe button2.enabled=:true setzen.
wie mach ich das??

:shock:

mfg matthias

Wuaegner 6. Sep 2004 09:45

Re: Zwei Combobox
 
Hallo!
Wenn es bei nur zwei Comboboxen bleibt, könntest du zwei Variablen global deklarieren:
CB1Geändert: boolean; CB2Geändert: boolean;
Dann bei den OnChangeEreignissen der Boxen CB1Geändert bzw. CB2Geändert auf true setzen und dahinter schreiben(Im OnchangeEreignis von ComboBox1):
Delphi-Quellcode:
if CB2Geändert= true then Button1.enabled:= true;
Vielleicht keine schöne Variante, müsste aber funktionieren! :wink:

Gruß Flo

superstar025 6. Sep 2004 10:08

Re: Zwei Combobox
 
versteh ich nicht ganz alles was du meinst

kannst du das verfeinert bzw im quelltext deutlich machen?

danke im vorraus
matthias

:pale:

idontwantaname 6. Sep 2004 10:18

Re: Zwei Combobox
 
Hier ein Beispiel. Wenn Checkbox1 geändert wird, dann wird cb1 auf True gesetzt, genau das selbe bei Checkbox2. Noch dazu wird gefragt, ob schon beide geändert wurden.

Delphi-Quellcode:
var
  Form1: TForm1;
  cb1: Boolean = False;
  cb2: Boolean = False;

implementation

{$R *.dfm}

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
   cb1 := True;
   if (cb1) and (cb2) then Button1.Enabled := True;
end;

procedure TForm1.CheckBox2Click(Sender: TObject);
begin
   cb2 := True;
   if (cb1) and (cb2) then Button1.Enabled := True;
end;

Sharky 6. Sep 2004 10:21

Re: Zwei Combobox
 
Hai,

und um die IF-Abfrage zu vermeiden kannst Du es auch so schreiben:

Delphi-Quellcode:
var
  Form1: TForm1;
  cb1: Boolean = False;
  cb2: Boolean = False;

implementation

{$R *.dfm}

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
   cb1 := True;
   Button1.Enabled := (cb1) and (cb2);
end;

procedure TForm1.CheckBox2Click(Sender: TObject);
begin
   cb2 := True;
   Button1.Enabled := (cb1) and (cb2);
end;

DP-Maintenance 6. Sep 2004 10:22

DP-Maintenance
 
Dieses Thema wurde von "Sharky" von "Datenbanken" nach "VCL-Komponenten und Controls" verschoben.
Auch dies ist keine Datenbankfrage.
Bitte auf die richtige Sparte achten! Danke.

Matze 6. Sep 2004 10:23

Re: Zwei Combobox
 
:hi:

Wuaegner meint, du sollt 2 Variablen global deklarieren:
Delphi-Quellcode:
var
  Form1: TForm1;
  CB1Geaendert, CB2Gaeändert: boolean;

implementation
im OnCnage der beiden ComboBoxen stellst du sie auf true:
Delphi-Quellcode:
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  CB1Geaendert := true;
end;

procedure TForm1.ComboBox2Change(Sender: TObject);
begin
  CB2Geaendert := true;
end;
Dann fragst du evtl in den OnChanges npch das ab:
Delphi-Quellcode:
if CB1Geaendert and CB2Geaendert then
  Button1.Enabled := false;
also dann so:
Delphi-Quellcode:
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  CB1Geaendert := true;
  if CB1Geaendert and CB2Geaendert then
    Button1.Enabled := false;
end;

procedure TForm1.ComboBox2Change(Sender: TObject);
begin
  CB2Geaendert := true;
  if CB1Geaendert and CB2Geaendert then
    Button1.Enabled := false;
end;
Ausfühlicher geht's glaub kaum mehr. :mrgreen: ;)


Edit: Mist, ich schreib nie mehr sowas langes :stupid:

superstar025 6. Sep 2004 10:25

Re: Zwei Combobox
 
Danke für die Schnelle und ausführliche Hilfe

:cheers:
:coder:

Stevie 6. Sep 2004 10:26

Re: Zwei Combobox
 
Zitat:

Zitat von Sharky
Hai,

und um die IF-Abfrage zu vermeiden kannst Du es auch so schreiben:

Delphi-Quellcode:
var
  Form1: TForm1;
  cb1: Boolean = False;
  cb2: Boolean = False;

implementation

{$R *.dfm}

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
   cb1 := True;
   Button1.Enabled := (cb1) and (cb2);
end;

procedure TForm1.CheckBox2Click(Sender: TObject);
begin
   cb2 := True;
   Button1.Enabled := (cb1) and (cb2);
end;

Oder:
Delphi-Quellcode:
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
   cb1 := True;
   Button1.Enabled := cb2;
end;

procedure TForm1.CheckBox2Click(Sender: TObject);
begin
   cb2 := True;
   Button1.Enabled := cb1;
end;
Warum auf Werte überprüfen, die schon bekannt sind??? :P

Sharky 6. Sep 2004 10:28

Re: Zwei Combobox
 
Zitat:

Zitat von Stevie
...Warum auf Werte überprüfen, die schon bekannt sind??? :P

Hai Stevie,
das habe ich gemacht um den Fall zu berücksichtigen das an anderer Stelle eine der Variablen wieder auf False gesetzt wird ;-)
Aber im Kontext der Frage hast Du mit deinem Code natürlich recht :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:53 Uhr.
Seite 1 von 2  1 2      

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