![]() |
System Image List kopieren
Hi Leute,
ich möchte die System Image List in meine eigene ImageList kopieren, damit ich die passenden Icons zu gelisteten Dateien in meinem Listview anzeigen kann. Hierzu habe ich zwei eigene Imagelisten angelegt. Eine für die Icons 32x32 und eine für die Icons 16x16. Zum Kopieren wollte ich die Shell-Funktion Shell_GetImageLists aus Shell32.dll verwenden. Die Definition aus der Hilfe lautet: Zitat:
Zitat:
Delphi-Quellcode:
Ich denke, die Fehlermeldung kommt, weil Handle eine Nur-Lese-Eigenschaft ist.
....
function Shell_GetImageLists(LargeList : PCardinal; SmallList : PCardinal) : Boolean; stdcall; implementation function Shell_GetImageLists; external shell32 name 'Shell_GetImageLists'; .... procedure TOTFListView.CreateWnd; begin inherited; FFileImageList16 := TImageList.Create(self); FFileImageList16.Height := 16; FFileImageList16.Width := 16; self.SmallImages := FFileImageList16; FFileImageList32 := TImageList.Create(self); FFileImageList32.Height := 32; FFileImageList32.Width := 32; self.LargeImages := FFileImageList32; Shell_GetImageLists(@FFileImageList32.Handle, @FFileImageList16.Handle); // Fehler end; Gleichzeitig gehe ich aber davon aus, dass das Handle gar nicht verändert werden soll, sondern nur die Zielliste ist, in die die Icons kopiert werden sollen. Jetzt gibt es zwei Möglichkeiten, jemand weist mir den Richtigen Weg für die Benutzung dieser Funktion oder es gibt einen anderen Weg den ich nicht sehe. Schon mal Dank für die Hilfe, Gruß oki |
Re: System Image List kopieren
Du musst Zeiger auf lokale Variablen übergeben, in die dann Handles geschrieben werden. Dann musst du einen Weg finden, die Listen zu kopieren.
|
Re: System Image List kopieren
Hi,
genau das Kopieren soll die Funktion imho ja ausführen. Hier die Beschreibung aus der Hilfe: Zitat:
|
Re: System Image List kopieren
Eben nicht. Die Funktion macht dir interne Variablen zugänglich, welche in die out-Parameter geschrieben werden. Du hast jetzt das Problem, dass du die Imagelist in die Delphi-TImageList kopieren musst.
Du solltest auch beachten, dass es diese Funktion in Zukunft möglicherweise nicht mehr geben wird. Edit: Zitat:
|
Re: System Image List kopieren
Ähmm,
dann ist das klar. Nur wie kopiere ich dann die Images? Auf die kommt es mir ja eigentlich an. Gruß oki |
Re: System Image List kopieren
Sollte es bei Edits nicht auch einen roten Kasten geben?
|
Re: System Image List kopieren
OK,
jetzt hab ich das gefunden: Zitat:
Gruß oki |
Re: System Image List kopieren
Zitat:
Ich probier das mal aus. Zitat:
Gruß oki |
Re: System Image List kopieren
Lad dir mal meine nonVCL Demos zu den Tutorials runter. Da hat Mathias beim Litview-Demo mit der Systemiconlist gearbeitet.
|
Re: System Image List kopieren
Wie wäre es mit SHGetImageList?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:40 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 by Thomas Breitkreuz