Hallo zusammen,
ich bin gerade dabei ein Drive-Combobox zu schreiben. Im Prinzip kein Problem, es werden auch alle gewünschten Laufwerke angezeigt, wenn ich den DropDown mache (Anhang 1). Wenn ich dann aus der Liste jedoch einen Wert auswähle, wird der nicht angezeigt, sondern das ganze Feld ist blau (Anhang 2).
Vielleicht hat jemand von Euch sowas schon mal gehabt.
Der DrawItem-Teil sieht übrigens so aus.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| procedure TDrvCombo.DrawItem(Index: Integer; Rect: TRect; State: TOwnerDrawState); var ico: TIcon; txt,dr: String; fi: SHFILEINFO; vi: VolInfo; py: Integer; begin vi := VolInfo(Self.Items.Objects[Index]); dr := vi.Drive + ':\'; SHGetFileInfo(PWideChar(dr), 0, fi, SizeOf(fi), SHGFI_ICON or SHGFI_SMALLICON); ico := TIcon.Create; ico.Handle := fi.hIcon; py := Index * ItemHeight; with Self.Canvas do begin FillRect(Rect); Draw(1,py,ico); txt := '[' + vi.Drive + '] - ' + vi.Namen; TextOut(20,py,txt); end; ico.Free; end; |
Habe gerade gemerkt, dass es bei der Auswahl des ersten Elements etwas anders aussieht(Anhang 3).