Markierte ListBox-Einträge 2er ListBoxen sollen Synchron bleiben...
-
Was ich brauche ist ein Ereignis, das AUTOMATISCH auslöst, wenn ein anderer Eintrag selektiert wird, ne Methode wie SetItemIndex brauche ich nicht...
-
Hat niemand ne Ahnung?
-
Probier mal:
void __fastcall TForm1::ListBox1Click(TObject *Sender) { for (int i=0;i<ListBox1->Items->Count;i++) { ListBox2->Selected[i]=ListBox1->Selected[i]; } }
Beide ListBox->MultiSelect=true!!!
Anzahl der Eintraege muss stimmen.PS: Nimm besser 1x ListView!!!
-
@aaaabyx: Das Ereignis wird automatisch ausgelöst! Du musst ihm das nur sagen! Und das machst du in SetItemIndex!
-
@Eßer:
OK aber wie denn???
-
- Neue Kompo von TListBox ableiten
- unter private: TNotifyEvent FOnChange;
- unter protected: virtual void __fastcall SetItemIndex(const int value);
- unter __published: TNotifyEvent OnChange = {read = FOnChange; write = FOnChange};
- Im Konstruktor: OnChange = NULL;
- In der SetItemIndex:
virtual void __fastcall TMyListBox::SetItemIndex(const int value) { inherited::SetItemIndex(value); if(OnChange) OnChange(this); }
[ Dieser Beitrag wurde am 18.05.2003 um 21:19 Uhr von Eßer editiert. ]
-
warum nicht im OnClick die indizes gleich setzen?
-
Original erstellt von Sunday:
warum nicht im OnClick die indizes gleich setzen?Weil man die Auswahl auch per Tastatur oder per Code ändern kann?
-
@Eßer: Danke, aber ich bekomme da genze 5 Compilerfehler...
Und ich weiß nicht genau, wie du dir das gedacht hast, könntest du bitte mal kurz schildern, was genau da dann ablaufen soll?
Danke...
-
bei mir wird OnClick sowohl für maus als auch tastatur ausgelöst. nur net für explizites setzen im code, aber da hilft folgendes. ist doch viel einfacher, als ne extra-komponente zu erstellen...
//--------------------------------------------------------------------------- // wird beim klicken mit der maus in der listbox auf ein item ausgelöst // und beim ändern des indizes über die tastatur //--------------------------------------------------------------------------- void __fastcall TForm1::ListBox1Click(TObject *Sender) { ListBox2->ItemIndex = ListBox1->ItemIndex; } //--------------------------------------------------------------------------- // beim klick auf nen button soll der index geändert werden // änderung erzwingen //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { ListBox1->ItemIndex = 2; ListBox1Click(Sender); } //---------------------------------------------------------------------------
-
Danke SUnday, das funzt prima!