Hallo!
Ich entwickle gerade eine von TComboBoxEx abgeleitete Klasse, die eine vorbelegte Combobox mit Icons links neben den Einträgen darstellen soll (deswegen TComboBoxEx). Um die ComboBox mit Icons zu versorgen benötigt man eine TImageList-Komponente, die ich beim Erzeugen der Komponente mit erzeuge. Die Bitmaps für die Image-Liste werden aus einer Resource-Datei geladen, was auch hervorragend klappt. Das einzige Problem, das ich jetzt noch habe ist, dass die Hintergrundfarbe der Bitmaps nicht durchsichtig ist. Folgender Code füllt die Combo-Box:
Delphi-Quellcode:
procedure TmyComboBox.DropDown;
var
myBitmap : Graphics.TBitmap;
i : Integer;
begin
inherited DropDown;
if Items.Count = 0 then
begin
Cursor := crHourGlass;
myBitmap := TBitmap.Create;
myBitmap.LoadFromResourceName(HInstance,'MYIMAGE');
// Nächste Zeile bewirkt nichts
myBitmap.Transparent := TRUE;
FPrtImage.Add(myBitmap,nil);
FillComboBox;
Cursor := crDefault;
for i := 0 to ItemsEx.Count-1 do
ItemsEx[i].ImageIndex := 0;
myBitmap.Free;
end;
end;
Wie gesagt, im Prinzip funktioniert der Code, die Hintergrundfarbe der Icons wird aber nicht transparent angezeigt. Ich habe auch schon versucht anstelle einer Ressource vom Typ Bitmap eine Ressource vom Typ Symbol (mit dem selben Namen) zu verwenden. Diese Resource hat Delphi dann aber nicht mehr gefunden. Wahrscheinlich ist das hier ein ganz blöder Fehler, ich komm' momentan einfach nur nicht drauf.
Viele Grüsse und schon mal vielen Dank
Frank