Einzelnen Beitrag anzeigen

choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#8

Re: Fragen zu ComboBox und Items

  Alt 6. Nov 2003, 17:12
Hallo Dibelius,

schön, dass Du Dich mit Delphi beschäftigen möchtest.

Du kannst in Delphi (visuellen) Komponenten so mit Methoden verknüpfen, dass sie beim Eintreten eines bestimmten Ereignisses ausgelöst werden. Wenn Du zB im Formdesigner einen Doppelklick auf einen Button1 machst, wird automatisch eine Methode .Button1Click generiert und mit dem Ereignis Button1.OnClick verknpüft.

In Deinem Fall möchtest Du, wenn ich Dich richtig verstanden habe, eine Handlung durchführen, wenn ein Eintrag aus einer Combobox, sagen wir Combobox1, ausgewählt wird. Das ist das Ereignis Combobox1.OnChange. Wenn Du die entsprechende Methode mithilfe des Objektinspektors erzeugst und zuweist, wird sie immer ausgeführt, wenn ein Eintrag der Combobox1 ausgewählt wird. Es gibt kein zweites, drittes oder viertes Ereignis für alle denkbaren Anzahlen von Elementen, die Auswahl eines beliebigen Elements hat das Eregnis OnChange zur Folge.
Damit Du unterscheiden kannst, welcher Eintrag ausgewählt wurde, nutze die Eigenschaft ItemIndex (Nutze die ausführliche OH!).

Du kannst auch alle OnChange-Ereignisse der Comboboxen mit der selben Methode verknüpfen, musst dann allerdings entscheiden, welche Combobox das Ereigniss ausgelöst hat.
Zwar könntest Du mit
Delphi-Quellcode:
if Sender=Combobox1 then Foo else
if Sender=Combobox2 then Bar else
  FooBar;
jede Komponente abfragen, dies bietet sich idR aber nicht an.
Nutze stattdessen den Parameter Sender der Ereignisbehandlungsroutine, sie ist eine Referenz auf das ereignisauslösende Objekt und caste es zu dem Typen, von dem Du ausgehst.
Delphi-Quellcode:
var
  myCombobox: TCombobox;
begin
  myCombobox:= Sender as TCombobox;
  //Ab hier mit myCombobox arbeiten, statt mit Combobox1, etc.
  //also zB case myCombobox.ItemIndex of...
Du solltest vorher jedoch überprüfen, ob es sich bei Sender wirklich um einen adequaten Typ handelt (sieh hierzu in die OH unter "is" und "as" nach).

EDIT: Mist, zu langsam getippt
gruß, choose
  Mit Zitat antworten Zitat