AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Zeilen in einer Listbox färben

Ein Thema von Chrissi91 · begonnen am 14. Apr 2006 · letzter Beitrag vom 15. Apr 2006
 
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.259 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Zeilen in einer Listbox färben

  Alt 14. Apr 2006, 08:05
Hai Chrissi,

da ich nicht genau weiss wo das Problem liegt hier mal ein anderes Beispiel für den Code:

Delphi-Quellcode:
var
  newItemPos: Integer;

function NewLBItem(aListBox: TListBox; aValue: string; aIndex: Integer = -1): Integer;
begin
  if (aIndex = -1) then // Wenn -1 dann anhängen
  begin
    result := aListBox.Items.Add(aValue);
  end else // ansonsten einfügen
  begin
    aListBox.Items.Insert(aIndex, aValue);
    result := aIndex;
  end;
end;

procedure TDemoForm.AddItemClick(Sender: TObject);
begin
  newItemPos := NewLBItem(ListBox1, Edit1.Text); // Beispiel für anhägen
end;

procedure TDemoForm.InsertItemClick(Sender: TObject);
begin
  newItemPos := NewLBItem(ListBox1, Edit1.Text, 2); // Beispiel für einfügen
end;

procedure TDemoForm.FormCreate(Sender: TObject);
begin
  newItemPos := -1; // Variablen schön initialisieren
  ListBox1.Style := lbOwnerDrawFixed; // Sonst können wir nicht selber zeichnen
end;

procedure TDemoForm.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
var
  TopDif: Integer; // Gleicht die Höhendifferenz aus
begin
  with (Control as TListbox) do
  begin
    if (Index = newItemPos) then // Nur wenn das zuletzt eingefügte Item gezeichnet wird
    begin
      Canvas.Brush.Color := clRed; // Hintergrundfarbe
      Canvas.Font.Color := clBlack; //Schriftfarbe
    end;
    TopDif := (ItemHeight div 2) - (Canvas.TextHeight(#32) div 2);
    // Damit es in der Mitte der Zeile steht.
    Canvas.TextRect(Rect, Rect.Left, Rect.Top + TopDif, Items[Index]);
    // Und hier wird der Text gezeichnet
  end;
end;
Stephan B.
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz