![]() |
Button in ListView
Hi,
ich möchte in eine Spalte einer ListView einen Button einfügen. Wie mache ich das? Des Weiteren möchte ich auf den Klick auf diesen Button reagieren. Aus organistorischen Gründen (ist nicht mein Projekt, erweitere das nur für einen Kollegen), kann ich leider nur die Original ListView verwenden, und nicht diese TDynamicListView (oder wie auch immer das heißt). Chris |
Ich glaub nicht, dass das einfach so geht. Vielleicht setzt du einfach einen Button auf das Listview. Dazu müsstest du nur wissen, wie viele Pixel hoch ein Eintrag is und dann kannst du das ja mit ItemIndex inrgendwie ausrechnen.
Man liest sich. Stanlay 8) |
*lol* Ja, so würde es auch gehen... :mrgreen:
Vielleicht noch zuerwähnen: der Button muss dynamisch erstellt werden. Chris |
Ich bins nochmal... Muss es denn umbedingt ein Button sein? Du könntest ja auch einfach das Icon neben diesem Eintrag ändern oder so...
|
Hi,
öhm? Welches Icon meinst du? Ich nutze ein ListView und keine TreeView! Chris |
Ja und ? Ein ListView hat zwei Eigenschaften wo man ImageLists angeben kann: LargeImages und SmallImages.
|
Achso... Trotzdem brauche ich einen Button...
Also, Erklärung: Ich code gerade einen Movie-Organizer (ich mach das für einen Kollegen; ich brauch keinen anderen Source). Dabei kann man ein Bild einfügen. Dieses Bild soll auf Knopfdruck angezeigt werden. Nun gibt es die Möglichkeit, einen einzigen Button anzuzeigen. Ich würde aber gerne, dass anders machen: wenn ein Bild dafür existiert, dann soll ein Button angezeigt werden... Chris |
Und warum änderst du nicht einfach das Icon, wenn ein Bild existiert :wink: Nö, spaß bei seite: vielleicht könntest du ja dann den einen Button einfach unsichtbar machen, wenn kein Bild vorhanden ist, oder aber ein KontextMenu dafür machen.
|
Und was wäre mit dem CheckListbox-Stil vom Listview? Wenn ein Bild da ist wird ein Haken reingemacht und beim Doppleklick, Shortcut oder über einen Eintrag im Popup-menü vom Listview kann man es sich dann anzeigen lassen.
|
Hi,
ok... so werde ich das machen... :roll: Danke! Chris |
Liste der Anhänge anzeigen (Anzahl: 1)
Hier hast du deine Buttons im Listview.
|
Hätte ich warscheinlich so nicht fertig gebracht. Aber ein Listview hat eine Vielzahl von Ansichtsmöglichkeiten. In Spalten usw. und wenn man die Spaltenbreite ändert, bleibt der Button wo er is.
|
Na gut, man muß dann eben nur irgendwie auf die Änderung der Spaltenbreite reagieren. Aber dazu hatte ich keine Lust mehr. Habe ich ja auch nur so in fünf Minuten in den Editor gekloppt.
|
War ja kein Vorwurf, ich hätte dazu wahrscheinlich 5mal so lang gebraucht.
|
Hi,
danke!!! Werde mir das gleich ansehen... Chris |
Liste der Anhänge anzeigen (Anzahl: 1)
So, damit auch die letzten Nörgler Ruhe geben. Hier die perfekte Version.
(15 Minuten) :wink: |
Damit ich auch noch was gemeckert hab :mrgreen: : Es dauert bei mir an die 5 Sekunden, bis sich die Buttons anpassen. Man müsste irgendwie ein Repaint reinbringen, dann würde das noch schneller gehen. Verstehe aber auch nicht, warum es so lange dauert. Abe rwie gesagt, um auf sowas zu kommen, bräuchte ich ne halbe ewigkeit. Und an 15 Minuten is auch schwer hinzukommen. Man liest sich, Stanlay 8)
|
Du hast XP? Das hat mir auch Daniel gerade berichtet. Unter 2000 läuft alles wunderbar. Die Buttons reagieren sofort auf die Größen- und Positionsänderung der Spalte.
Darum müßte sich also mal jemand kümmern, der XP hat. |
Moin Zusammen,
vielleicht könnte es helfen, wenn man die Schleife in der die Button erzeugt werden in ein
Delphi-Quellcode:
"einrahmt"
ListView1.Items.BeginUpdate;
try // for Schleife finally ListView1.Items.EndUpdate; end; und/oder den Parent erst am Ende der Schleife zuweist. |
Ja ich hab XP (Home).
|
Zitat:
|
Sorry, da kann ich im Moment auch nicht helfen, da ich nur Windoz2000 habe und da läuft es prima.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz