// Um Bilder in den
einzelnen Einträgen einer Combobox anzeigen zu können,
// setzt man zunächst die Combobox und dann eine Imageliste auf die
Form.
// Die Imageliste wird doppelt angeklickt und in dem dadurch
erschienenen
// Dialog über den Button
Hinzufügen
die benötigte Anzahl der Bitmaps und/oder
// Icons geladen. Die Anzeige der Bilder wird im Ereignis
OnDrawItem
realisiert.
// Getestet mit D4 unter WinME
const
abstand = 2; // je nach Bedarf
procedure TForm1.FormCreate(Sender: TObject);
begin
// ---- z.B. -----------------
combobox1.items[0] := 'Zeile 1';
combobox1.items[1] := 'Zeile 2';
combobox1.items[2] := 'Zeile 3';
combobox1.items[3] := 'Zeile 4';
combobox1.items[4] := 'Zeile 5';
// ---------------------------
combobox1.itemindex := 0;
combobox1.Style := csOwnerDrawFixed;
combobox1.ItemHeight := imagelist1.height + abstand;
end;
procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
Combobox1.Canvas.FillRect(Rect);
ImageList1.Draw(Combobox1.Canvas, Rect.left + abstand,
Rect.Top + abstand div 2, index);
Rect.Left := Rect.Left + ImageList1.Width + abstand * 2;
DrawText(Combobox1.Canvas.Handle, PChar(combobox1.items[index]),
length(combobox1.items[index]), Rect,
DT_VCENTER or DT_SINGLELINE);
end;
|