![]() |
Listview Spaltenkopf mit Bild und Sortieranzeiger
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
hab hier im Forum schon viele nützliche Dinge gefunden, aber mein Problem ist das ich in einer Listview (sortieren klappt, Sortieranzeiger in der Column auch) gern über den ImageIndex ein Bild for der Spaltenüberschrift und ein kleines Dreieck (Sortieranzeiger) anzeigen lassen möchte. Es geht immer nur entweder oder, ist es überhaupt möglich beides anzuzeigen? Vielleicht weiß es ja jemand. Einfache Beispiel Code um in Col 1 das kleinen Dreiecke anzuzeigen (vorher zugewiesenes Icon der Column verschwindet immer)
Delphi-Quellcode:
var
Header: THandle; HDItem: THDItem; Buf: array[0..MAX_PATH]of Char; Index: Integer; begin Index := 1; Header := ListView_GetHeader(ListView1.Handle); FillChar(HDItem, SizeOf(HDItem), 0); HDItem.Mask := HDI_BITMAP or HDI_FORMAT or HDI_IMAGE or HDI_ORDER or HDI_TEXT or HDI_WIDTH; HDItem.pszText := Buf; HDItem.cchTextMax := sizeof(Buf); Header_GetItem(Header, Index, HDItem); //entweder mit Dreieck HDItem.fmt := HDItem.fmt or HDF_SORTUP; //oder mit Icon ohne Dreieck //HDItem.fmt := HDItem.fmt or HDF_IMAGE; //beides geht nicht //HDItem.fmt := HDItem.fmt or HDF_SORTUP or HDF_IMAGE; Header_SetItem(Header, Index, HDItem); end; |
Re: Listview Spaltenkopf mit Bild und Sortieranzeiger
Scheint wohl wirklich niemand zu wissen.
|
Re: Listview Spaltenkopf mit Bild und Sortieranzeiger
Zitat:
Mir hilft man auch nicht immer direkt. Ich denke das dein Bild verschwindet weil du es nicht im richtigen Event(Ereignis) eingebunden hast. arbeite zur zeit ja auch an etwas ähnlichen nur halt mit ner ListBox. 1. Die Bilder dem richtigen ereignis zu weisen := DrawItem 2. Könnte das dann so aussehen.
Delphi-Quellcode:
gruss Emil
var
PDis: PDrawItemStruct; Brush: HBrush; bm: TBitmap;} begin // Pointer auf DrawItemStruct PDis := Pointer(LP); // Hintergrund transarent machen SetBkMode(PDis.hDC, TRANSPARENT); Brush := CreateSolidBrush(DeineComponente.Backcolor); // Bitmap erstellen bm := TBitmap.Create; bm.LoadFromFile(Mein.Icon); // Birmap in den definierten Rect kopieren BitBlt(PDis.hDC, PDis.rcItem.Left + 4, PDis.rcItem.Top + 1 , bm.Width, bm.Height, bm.canvas.Handle, 0, 0, SRCCopy); bm.Free; // Hintergrund des Bitmap mit dem HBrush füllen PDis.rcItem.Left := PDis.rcItem.Left + 20; FillRect(PDis.hDC, PDis.rcItem, Brush); // Das hBrush freigeben DeleteObject(Brush);} |
Re: Listview Spaltenkopf mit Bild und Sortieranzeiger
Die Frage ist ja auch ob Windows (Windows 200 oder Windows XP) das überhaupt kann. Wollte nicht alles selber malen.
Aber Danke für den Ansatz. Werde ich mir nochmal anschauen. |
Re: Listview Spaltenkopf mit Bild und Sortieranzeiger
Ich will ja kein eigenes Bild malen sondern wie oben vlt zusehen, die Eigenschaften der Columns nutzen den Sortieranzeiger einzublenden und das Spaltenbild anzuzeigen, falls die Splate solch eines hat (aus der ImageList der ListView).
Entweder das Bild oder der Sortieranzeiger, wieso nicht beides? Ist es unter WindowsXP nicht möglich? |
Re: Listview Spaltenkopf mit Bild und Sortieranzeiger
Schau mal hier
![]() |
AW: Listview Spaltenkopf mit Bild und Sortieranzeiger
Wie und wo muss ich den Code von virus82 anwenden und einfügen, damit das funktioniert? Ich erstelle die Spalten dynamisch.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:45 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