Delphi-PRAXiS

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 mehrere onchange ereignisse zusammenfassen (https://www.delphipraxis.net/116318-mehrere-onchange-ereignisse-zusammenfassen.html)

bkgmjo 26. Jun 2008 18:13


mehrere onchange ereignisse zusammenfassen
 
hallo,
ich bastle an einer anwendung in der in zwei spalten comboboxen sind, je nach auswahl in der linken soll die rechte für die benutzereingabe aktiviert/deaktiviert werden und die passenden auswahlmöglichkeiten bekommen.

funktioniert auch soweit nur finde ich es etwas unsinnig, bei jedem onchange ereignis einer combobox dieselbe prozedur nur leicht verändert reinzuschreiben,
Beispiel:

Delphi-Quellcode:
procedure TForm1.Auswahl1Change(Sender: TObject);
begin
  if Auswahl1.Text = xxx
    begin
      Wert1.Enabled;
      Auswahl2.Enabled;
      [zweite auswahlliste je nach auswahl füllen]
    else
     ......
end;

procedure TForm1.Auswahl2Change(Sender: TObject);
begin
  if Auswahl2.Text = xxx
    begin
      Wert2.Enabled;
      Auswahl3.Enabled;
      [zweite auswahlliste je nach auswahl füllen]
    else
     ......
end;
und so weiter für jede einzelne combobox.
es ist doch sicher möglich, das ganze ein einziges mal in einer prozedur auszulagern und das dann in folgender oder ähnlicher form zu lösen:

Delphi-Quellcode:
procedure TForm1.ComboChange(nummer:byte);
begin
  if Auswahl[nummer].Text = xxx
    begin
      Wert[nummer].Enabled;
      Auswahl[nummer+1].Enabled;
      [zweite auswahlliste je nach auswahl füllen]
    else
     ......
end;
wäre für jede hilfe dankbar

mkinzler 26. Jun 2008 18:24

Re: mehrere onchange ereignisse zusammenfassen
 
Einfach über den Parameter Sender

bkgmjo 26. Jun 2008 18:34

Re: mehrere onchange ereignisse zusammenfassen
 
Zitat:

Zitat von mkinzler
Einfach über den Parameter Sender

und nochmal für doofe?

mkinzler 26. Jun 2008 18:40

Re: mehrere onchange ereignisse zusammenfassen
 
Zitat:

procedure TForm1.Auswahl1Change(Sender: TObject);
Der Parameter Sender ist eine Referenz (Zeiger) auf das auslösende Objekt

bkgmjo 26. Jun 2008 18:48

Re: mehrere onchange ereignisse zusammenfassen
 
wie ich rausfinde von woher ein ereignis kommt weiss ich, nur wie spreche ich, nachdem ich das rausgefunden habe, die entsprechenden andern 2 comboboxen(nächste in der liste und das passende gegenstück in der zweiten Reihe) an? dabei hilft mir der sender wenig oder?

mkinzler 26. Jun 2008 18:51

Re: mehrere onchange ereignisse zusammenfassen
 
Man könnte
-einen Array mit den Referenzen aufbauen
-.FindComponent() verwenden
-mit .Tag arbeiten

Nils_13 26. Jun 2008 18:54

Re: mehrere onchange ereignisse zusammenfassen
 
Ich kann nur Tag empfehlen, die Variable ist wirklich sauber und erfordert keinen nennenswerten Rechenaufwand im vergleich zu FindComponent.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:14 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