AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zeilen in einer Listbox färben

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

Registriert seit: 28. Jul 2005
849 Beiträge
 
#5

Re: Zeilen in einer Listbox färben

  Alt 14. Apr 2006, 20:18
So, jetzt habe ich das auf meine Bedüfnisse umgeschrieben, aber an der Farbe ändert isch nichts.

Delphi-Quellcode:
    function NewLBItem(aListBox: TListBox; aValue: string; aIndex: Integer = -1): Integer;
    procedure ltbUserDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
    procedure LoadFromArray;
    procedure btnAddProfilClick(Sender: TObject);
    procedure btnChangeProfilClick(Sender: TObject);
    procedure cmbEntryChange(Sender: TObject);
    procedure btnAddUserClick(Sender: TObject);
    procedure btnReloadClick(Sender: TObject);
    procedure btnChangeClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;
  Adressen: Array[1..100, 1..2] of String;
  Eintraege: Integer;
implementation

{$R *.dfm}

function TfrmMain.NewLBItem(aListBox: TListBox; aValue: string; aIndex: Integer = -1): Integer;
begin
    result := aListBox.Items.Add(aValue);
end;

procedure TfrmMain.ltbUserDrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
var
  TopDif: Integer; // Gleicht die Höhendifferenz aus
begin
  with (Control as TListbox) do
  begin
    Canvas.Brush.Color := clBlack; // Hintergrundfarbe
    Canvas.Font.Color := clRed; //Schriftfarbe
  end;
  TopDif := (ltbUser.ItemHeight div 2) - (Canvas.TextHeight(#32) div 2); // Damit es in der Mitte der Zeile steht.
  Canvas.TextRect(Rect, Rect.Left, Rect.Top + TopDif, ltbUser.Items[Index]); // Und hier wird der Text gezeichnet
end;
Damit rufe ich es auf:

Delphi-Quellcode:
procedure TfrmMain.btnReloadClick(Sender: TObject);
var
  I: Integer;
begin
  ltbUser.Clear;
  For I := 1 to Eintraege do
    begin
      WebBrowser.Navigate('http://wwp.icq.com/scripts/online.dll?img=5&icq=' + Adressen[I,1]);
      While WebBrowser.Busy do
        begin
          Application.ProcessMessages;
        end;
      If WebBrowser.LocationURL = 'http://status.icq.com/5/online1.gifthen
        begin
          NewLBItem(ltbUser, Adressen[I,1]);
        end
      Else
        begin
          NewLBItem(ltbUser, Adressen[I,1]);
        end;
    end;
end;
auch wenn die obere procedure im Moment wenig Sinn macht, müsste doch eigentlich doch was passieren, oder?

Im OI habe ich den Style auch auf lbOwnerDrawFixed gesetzt.
  Mit Zitat antworten Zitat
 


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 14:08 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