Announcement

Collapse
No announcement yet.

Sortierpfeil in ListViewColumns

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Sortierpfeil in ListViewColumns

    Ein Hallo an alle<BR>
    folgende Kopfschmerzen quälen mich:<BR>
    In meinem Prog werden Tabellen in einer TreeView und zwei ListView<BR>
    ausgelesen. Soweit alles kein Problem. Nun möchte ich aber beim<BR>Sortieren
    in Columns <B> rechts </B> neben der Caption ein Sortierpfeil darstellen<BR>
    (wie in Windows Adressbuch). Da ich aber noch unter D4 arbeite<BR>
    richtet sich das ColumnsImage immer links von der Spaltenüberschrift aus.<BR>
    Ich übersehen bestimmt irgend etwas wieder. Hat jemand eine Idee?<BR>
    Danke Andreas

  • #2
    Hi,

    probier das mal:

    FSortArrows: array[0..1] of TBitmap;

    FSortArrows[1] := CreateBitmap('SORT_ARROW_0');
    FSortArrows[0] := CreateBitmap('SORT_ARROW_1');

    if TColumnKind(Columns[I].Tag) = FSortColumn then
    begin
    FillChar(Item, SizeOf(Item), 0);
    Item.Mask := HDI_FORMAT;
    Header_GetItem(FHeaderHandle, I, Item);
    Item.Mask := HDI_FORMAT or HDI_BITMAP;
    Item.fmt := Item.fmt or HDF_BITMAP or HDF_BITMAP_ON_RIGHT;
    Item.hbm := FSortArrows[Ord(FSortDescent)].Handle; <- Icon wird festgelegt
    Header_SetItem(FHeaderHandle, I, Item);
    end;

    Habe ich allerdings auch nur aus einem Beispiel... ich weiss nicht wie es in delphi 4 aussieht.

    Gruß rab

    Comment


    • #3
      Hallo rabu,<br>
      <br>
      ich habe versucht Dein Beispiel nachzuvollziehen.<br>
      <br>
      Dazu einige Fragen:<br>
      1. in welcher Unit ist CreateBitmap definiert?<br>
      2. in welcher Unit ist TColumnKind definiert?<br>
      3. an wecher Stelle setzt Du den Code ein<br>
      <br>
      Gruß Stefa

      Comment


      • #4
        Hallo rabu, <BR>
        Danke für deinen Tip. Bin leider noch nicht zum ausprobieren <BR>
        gekommen. Gruß A

        Comment


        • #5
          Hallo Stefan!

          zu 1: Die Funktion CreateBitmap deklariert einfach ein Bitmap und speichert es in FSortArrows. FSortArrows ist vom Typ TBitmap und CreateBitmap ist eine eigene Funktion de Unit.

          zu 2: TColumnKind sind nur die Arten der Spalten der ListView, also in diesem Fall wäre es ckTyp, ckGroesse usw.

          zu3: Der Code wird im Constructor eingesetzt. Wenn du willst kannst du es auch in der Überschriebenen Prozedure CreateWnd einsetzen... das dürfte ebenso funktionieren.

          Gruß Rab

          Comment

          Working...
          X