Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Listview Spaltenkopf mit Bild und Sortieranzeiger (https://www.delphipraxis.net/97439-listview-spaltenkopf-mit-bild-und-sortieranzeiger.html)

virus82 10. Aug 2007 13:41


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;

virus82 1. Feb 2009 12:00

Re: Listview Spaltenkopf mit Bild und Sortieranzeiger
 
Scheint wohl wirklich niemand zu wissen.

EWeiss 1. Feb 2009 12:47

Re: Listview Spaltenkopf mit Bild und Sortieranzeiger
 
Zitat:

Zitat von virus82
Scheint wohl wirklich niemand zu wissen.

ja ja mach mal langsam ;)

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:
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);}
gruss Emil

virus82 21. Okt 2009 07:58

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.

virus82 4. Nov 2009 23:33

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?

webcss 5. Nov 2009 08:19

Re: Listview Spaltenkopf mit Bild und Sortieranzeiger
 
Schau mal hier Bilder u.ä. in Listview Column

Luckie 13. Feb 2011 05:55

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 16:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz