Einzelnen Beitrag anzeigen

Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#1

Problem: ComboBox, DrawItem, Canvas

  Alt 11. Mai 2006, 21:13
Hi Leute,

ich hab mal wieder ein Problem.

Ich habe mir eine ComboBox auf die Form gelegt und den Style auf 'csOwnerDrawFixed' gesetzt (damit ich per Canvas auf die Items zeichnen kann).

Bei OnDrawItem habe ich folgende Prozedur:
Delphi-Quellcode:
procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
  Rect.Right := Rect.Left + 16;
  ComboBox1.Canvas.TextOut(Rect.Right+2, Rect.Top+2, IntToStr(Index));
  if Index mod 2 = 0 then
    ComboBox1.Canvas.Brush.Color := clBlue
  else
    ComboBox1.Canvas.Brush.Color := clRed;
  ComboBox1.Canvas.FillRect(Rect);
end;
Es soll also, in Abhängigkeit vom Index, eine bestimmte Farbe verwendet werden und dahinter die Nummer des Index stehen.

So sollte es aussehen: Bild1.
Wenn ich mich mit der Mouse über die Items bewege, kommt allerding das bei raus: Bild2.
Das sollte natürlich nicht so sein.

Wer weiß Rat?
Miniaturansicht angehängter Grafiken
bild2_168.gif   bild1_441.gif  
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat