Listboxitems mit popupmenü "..." am rechten Rand
-
- Beiträge: 216
- Registriert: Mo 3. Jan 2011, 13:34
- OS, Lazarus, FPC: Win11 (L 3.0 FPC 3.2.2)
- CPU-Target: 64Bit
- Wohnort: Nürnberg
Listboxitems mit popupmenü "..." am rechten Rand
Hallo,
ich möchte in meinem Windows 11 Programm eine Listbox einsetzen, wo jeder Listboxeintrag am rechten Rand drei Pünktchen besitzt. Klickt man auf die drei Pünktchen soll sich ein Popupmenü öffnen.
Wie realisiert man das?
ich möchte in meinem Windows 11 Programm eine Listbox einsetzen, wo jeder Listboxeintrag am rechten Rand drei Pünktchen besitzt. Klickt man auf die drei Pünktchen soll sich ein Popupmenü öffnen.
Wie realisiert man das?
-
- Beiträge: 54
- Registriert: Do 25. Jan 2024, 08:33
- OS, Lazarus, FPC: Win/macOS (L trunk FPC trunk)
- CPU-Target: 32+64
Re: Listboxitems mit popupmenü "..." am rechten Rand
Übergeordnet eine TScrollBox. Darin entweder dynamisch zur Laufzeit erzeugte Panels mit Unterkomponenten, oder aber Du erstellst einmal einen Frame, der wie ein Listeneintrag aussieht, und erzeugst davon dann dynamisch für jeden Listeneintrag einen in der TScrollBox.
-
- Beiträge: 216
- Registriert: Mo 3. Jan 2011, 13:34
- OS, Lazarus, FPC: Win11 (L 3.0 FPC 3.2.2)
- CPU-Target: 64Bit
- Wohnort: Nürnberg
Re: Listboxitems mit popupmenü "..." am rechten Rand
ich habe dynamisch erzeugte Frames ausprobiert. Leider scheitert das Vorhaben bei mehr als 550 Frames daran, dass die Top-Koordinate des Frames SmallInt überschreitet.
-
- Beiträge: 6910
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Listboxitems mit popupmenü "..." am rechten Rand
Bei über 500 Einträgen scrollt man sich den Finger wund. Gibt es da keine Alternative mit einem TreeView ?ich habe dynamisch erzeugte Frames ausprobiert. Leider scheitert das Vorhaben bei mehr als 550 Frames daran, dass die Top-Koordinate des Frames SmallInt überschreitet.
Ein bisschen Schleichwerbung. Mit GTK4 siehe Anhang ist sowas mit den Buttons in der Listbox möglich.
Man kann dort beliebige Widgets in eine einzelne Lisbox Zelle setzen.
- Dateianhänge
-
- Bildschirmfoto vom 2024-12-16 17-58-01.png (36.28 KiB) 2426 mal betrachtet
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1639
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Listboxitems mit popupmenü "..." am rechten Rand
Ja, das ist etwas blöd gelöst. Man könnte den Event OnDrawItem verwenden um diese Punkte zu zeichnen.
Der wird allerdings nur dann ausgelöst, wenn die Style Eigenschaft der Listbox <> lbStandard ist.
Wenn das der Fall ist, muss man sich aber vollständig um das zeichnen der Zellen kümmern.
Der wird allerdings nur dann ausgelöst, wenn die Style Eigenschaft der Listbox <> lbStandard ist.
Wenn das der Fall ist, muss man sich aber vollständig um das zeichnen der Zellen kümmern.
Re: Listboxitems mit popupmenü "..." am rechten Rand
Beispiel im Anhang.
Bearbeiten: Popup-Menü anzeigen auf Punktbereich eingegrenzt
Bearbeiten: Popup-Menü anzeigen auf Punktbereich eingegrenzt
- Dateianhänge
-
Project1.zip
- (4.17 KiB) 109-mal heruntergeladen
-
- 2024-12-16 18_46_51-Source Editor.png (24.8 KiB) 2414 mal betrachtet
Grüße / Pozdrawiam
paweld
paweld
-
- Beiträge: 582
- Registriert: Sa 22. Okt 2016, 23:12
- OS, Lazarus, FPC: W10, L 3.8
- CPU-Target: 32+64bit
- Wohnort: Dresden
Re: Listboxitems mit popupmenü "..." am rechten Rand
Hallo paweld,
vielen Dank für dein Beispiel. Leider wirft TLBItem einen leak im Debug Modus.
Grüße Maik
vielen Dank für dein Beispiel. Leider wirft TLBItem einen leak im Debug Modus.
Grüße Maik
LG Maik
Windows 10,
- Lazarus 3.8 (stable) + fpc 3.2.2 (stable)
- Lazarus 4.99 (trunk) + fpc 3.3.1 (main/trunk)
Windows 10,
- Lazarus 3.8 (stable) + fpc 3.2.2 (stable)
- Lazarus 4.99 (trunk) + fpc 3.3.1 (main/trunk)
Re: Listboxitems mit popupmenü "..." am rechten Rand
Das hatte ich tatsächlich vergessen. Eine korrigierte Version ist beigefügt. Denken Sie auch daran, Objekte zuerst freizugeben, wenn Sie ein Element löschen oder die Liste leeren.
- Dateianhänge
-
Project1.zip
- (4.26 KiB) 127-mal heruntergeladen
Grüße / Pozdrawiam
paweld
paweld
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1639
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Listboxitems mit popupmenü "..." am rechten Rand
Das ist wirklich eine schöne Lösung. Wie ich weiter oben schon geschrieben habe, muss man halt die komplette Darstellung selbst machen.
Es wäre schön, wenn man wie beim VirtualTree die Möglichkeit hätte, einen Event wie z.B. OnAfterDrawItem zu nutzen, um eigene zusätzliche Darstellungsoptionen zu realisieren.
Es wäre schön, wenn man wie beim VirtualTree die Möglichkeit hätte, einen Event wie z.B. OnAfterDrawItem zu nutzen, um eigene zusätzliche Darstellungsoptionen zu realisieren.