Einzelnen Beitrag anzeigen

David Martens

Registriert seit: 29. Sep 2003
205 Beiträge
 
Delphi XE Enterprise
 
#15

AW: Listbox.OnDrawItem: wenn Dateiendung wechselt, andere Farbe

  Alt 11. Jun 2010, 14:02
Also ich weis nicht was du falsch machst? Hier mein kleiner Test:

ListBox1.Style := lbOwnerDrawVariable; // im OI

Delphi-Quellcode:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
  if Index > 0 then
  begin
    if LowerCase(ExtractFileExt(ListBox1.Items[Index - 1])) = LowerCase(ExtractFileExt(ListBox1.Items[Index])) then
    begin
      // Farbe für gleich setzten
      ListBox1.Canvas.Brush.color := clWhite;
    end
    else
    begin
      // Farbe für ungleich setzten
      ListBox1.Canvas.Brush.color := clAqua;
    end;
  end
  else
  begin
    if Index = 0 then
    begin
      // Farbe für erstes Element setzten
      ListBox1.Canvas.Brush.color := clRed;
    end;
  end;

  ListBox1.Canvas.FillRect(Rect);
  ListBox1.Canvas.Font.Color := clBlack;
  ListBox1.Canvas.TextOut(Rect.Left, Rect.Top, ListBox1.Items[Index]);
end;
Und das Ergebnis sieht so aus:
Miniaturansicht angehängter Grafiken
bild.png  
  Mit Zitat antworten Zitat