22 Stimmen

Delphi/Lazarus: ListView - PopupMenü nur anzeigen, wenn ein Eintrag ausgewählt ist

Tipp von Delphianer | 19.05.2013 um 21:30

Ausgangspunkt: Wir haben eine ListView mit einem Popup-Menü, das einige Optionen zu den Einträgen in der ListView liefert (zum Beispiel den gewählten Eintrag löschen oder ähnliches). 

Problem: Das Popup-Menü wird auch angezeigt, wenn gar keine Items in der ListView ausgewählt sind. Zum Beispiel, wenn wir auf eine leere Fläche in der ListView klicken. Wir möchten nun erreichen, dass das Popup nur dann angezeigt wird, wenn auch Items in der Liste angewählt wurden.

Lösung: Als Lösung verwenden wir folgenden Code, den wir in das Event OnPopup des Popup-Menüs schreiben:

procedure TForm1.PopupMenu1Popup(Sender: TObject);
var
   item: TListItem;
begin
   item := ListView1.selected;
 
   if item = nil then abort;
end;

Wir setzen die Variable "item" auf den selektierten Eintrag unserer ListView. Wenn kein Eintrag ausgewählt ist, steht "item" auf nil und wir brechen mit "abort" das Anzeigen des Menüs ab. So wird das Popup-Menü nur noch angezeigt, wenn auch ein Eintrag in der ListView gewählt ist.

AntwortenPositivNegativ

Über den Autor

AvatarDer Autor hat keine Kurzbeschreibung seines Profils angegeben.
Profil anzeigen

 

Ähnliche Themen

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.