Ich habe eine TListBox mit "Film" -Elementen und eine weitere mit "Schnappschüssen". Ich möchte ein Popup-Menü für beide Listboxen verwenden. Wie kann ich jedoch im onClick-Ereignis für ein Popup-Menüelement auflösen, welches Listenfeld verwendet wurde?Zwei TListBoxes mit demselben TPopup-Menü?
Ich versuchte dies:
void __fastcall TMainForm::DeleteAll1Click(TObject *Sender)
{
TListBox* lb = dynamic_cast<TListBox*>(Sender);
if(lb == mMoviesLB)
{
...
wo DeleteAll1 ein TMenuItem im Popup-Menü. Die lb ist immer NULL, so gibt es hier etwas fehlt ..
In Ihrem Fall 'Sender' nicht das Listenfeld ist, so dass die' dynamic_cast (Sender) 'Rückkehr "NULL". Es ist wahrscheinlich die Speisekarte. Fügen Sie einfach etwas wie 'ShowMessage (Sender-> ClassName());' zum Anfang Ihrer Funktion hinzu, um zu sehen, was es ist. –
Guter Tipp, Sender-> ClassName() .. Ich habe festgestellt, dass der Sender tatsächlich die TMenuItem-Komponente ist .. Frage ist, wie man sich selbst zurück zur ListBox-Komponente arbeitet? –