// Um bei ViewStyle=vsReport einem Columnheader ein Bild zuzuweisen
// und beim Anklicken zu wechseln
(z.B. beim Sortieren) erstellt man
// zwei Bitmaps in der Größe 16x16 und geht dann folgendermaßen vor:


// Getestet mit D4 unter WinME

var il: TImagelist;  
const welcheSpalte: integer = 1; 
 
procedure TForm1.FormCreate(Sender: TObject);  
var bm: TBitmap; 
begin 
  if listview1.columns.count - 1 >= welcheSpalte then begin 
    il := TImagelist.create(nil); 
    bm := TBitmap.create; 
    bm.loadfromfile('c:\pfeil_runter.bmp'); 
    il.width := bm.width; 
    il.height := bm.height; 
    il.AddMasked(bm, clwhite); // oder welche Farbe transparent sein soll 
    bm.loadfromfile('c:\pfeil_hoch.bmp'); 
    il.AddMasked(bm, clwhite); 
    bm.free; 
    listview1.smallimages := il; 
    listview1.column[welcheSpalte].imageindex := 0; 
  end; 
end; 
 
procedure TForm1.FormDestroy(Sender: TObject); 
begin 
il.free; 
end; 
 
procedure TForm1.ListView1ColumnClick(Sender: TObject;  
  Column: TListColumn);  
begin  
  if listview1.columns.count - 1 >= welcheSpalte then  
    if column = listview1.column[welcheSpalte] then  
      column.imageindex := column.imageindex xor 1;  
end; 

// Natürlich muss man keine Imageliste erzeugen, falls man bereits eine benutzt,
// dann werden dieser eben nur die Bilder für die Pfeile zugefügt.
// Siehe auch:
farbige Columnheader erzeugen


Zugriffe seit 6.9.2001 auf Delphi-Ecke