AGB  ·  Datenschutz  ·  Impressum  







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

TListBox: Unabhängig vom Inhalt einfärben

Ein Thema von kurtm1 · begonnen am 2. Jan 2006 · letzter Beitrag vom 3. Jan 2006
Antwort Antwort
Seite 1 von 2  1 2      
kurtm1

Registriert seit: 13. Dez 2003
348 Beiträge
 
#1

TListBox: Unabhängig vom Inhalt einfärben

  Alt 2. Jan 2006, 11:07
Also ich möchte die Zeilen einer ListBox verschieden einfärben, jedoch unabhängig davon, ob bzw. wieviele Items es gibt.

Wenn neue Items dazukommen, sollen diese natürlich dann drübergezeichnet werden, so dass die Hintergrundfarbe ganz normal bleibt.

Dies hier ist ein Ansatz, färbt jedoch nur die Zeilen ein, wo sich auch wirklich Items befinden (http://www.swissdelphicenter.com/de/showcode.php?id=248)
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#2

Re: TListBox: Unabhängig vom Inhalt einfärben

  Alt 2. Jan 2006, 11:12
Wenn ich mich Recht erinnere gibts auch bei TListBox die Eigenschaft Color mit der du die Hintergrundfarbe festlegen kannst ...
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
kurtm1

Registriert seit: 13. Dez 2003
348 Beiträge
 
#3

Re: TListBox: Unabhängig vom Inhalt einfärben

  Alt 2. Jan 2006, 11:15
Zitat von jim_raynor:
Wenn ich mich Recht erinnere gibts auch bei TListBox die Eigenschaft Color mit der du die Hintergrundfarbe festlegen kannst ...
ok ich habe das nicht explizit dazugeschrieben:
Die Zeilen sollen abwechselnd eine andere Farbe bekommen (1. Grau, 2. Schwarz, 3. Grau, etc.) -> so wie in dem Beispiel was ich oben dazugehängt habe
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#4

Re: TListBox: Unabhängig vom Inhalt einfärben

  Alt 2. Jan 2006, 11:43
moechtest du, dass auch Zeilen gefaerbt werden, welche keinen Text haben?
Thomas
  Mit Zitat antworten Zitat
kurtm1

Registriert seit: 13. Dez 2003
348 Beiträge
 
#5

Re: TListBox: Unabhängig vom Inhalt einfärben

  Alt 2. Jan 2006, 12:03
Zitat von toms:
moechtest du, dass auch Zeilen gefaerbt werden, welche keinen Text haben?
genau dies würde ich brauchen, ja
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#6

Re: TListBox: Unabhängig vom Inhalt einfärben

  Alt 2. Jan 2006, 13:11
Hallo,
Zitat von kurtm1:
Zitat von toms:
moechtest du, dass auch Zeilen gefaerbt werden, welche keinen Text haben?
genau dies würde ich brauchen, ja
und genau das macht der Code vom SwissDelphiCenter,
überprüf mal ob Du den richtig eingebaut hast.
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#7

Re: TListBox: Unabhängig vom Inhalt einfärben

  Alt 2. Jan 2006, 18:43
Wahrscheinlich geht der Code vom SwissDelphiCenter. Aber der kommt mir doch reichlich kompliziert vor. Das hier müßte doch reichen :

Delphi-Quellcode:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
var
  i : Integer;
begin
  for i := 1 to Listbox1.Items.Count do begin
    if Index mod 2 = 0 then begin
      Listbox1.Canvas.Brush.Color := clBlue;
      Listbox1.Canvas.FillRect(Rect);
      Listbox1.Canvas.TextOut(Rect.Left, Rect.Top, Listbox1.Items[Index]);
    end
    else
      Listbox1.Canvas.TextOut(Rect.Left, Rect.Top, Listbox1.Items[Index]);
  end;
end;
Bei mir sind die Zeilen jetzt abwechseln weiß oder blau. Egal, ob sie neu hinzukommen, oder bereits da sind. Was macht denn da der Swiss-Code wichtiges ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#8

Re: TListBox: Unabhängig vom Inhalt einfärben

  Alt 2. Jan 2006, 18:50
Hallo,

der Code färbt auch Zeilen die noch nicht belegt sind.
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#9

Re: TListBox: Unabhängig vom Inhalt einfärben

  Alt 2. Jan 2006, 18:51
Zitat von Hansa:
Bei mir sind die Zeilen jetzt abwechseln weiß oder blau. Egal, ob sie neu hinzukommen, oder bereits da sind. Was macht denn da der Swiss-Code wichtiges ?
Er färbt den Hintergrund auch bei den Zeilen, wo kein Item hinterlegt ist (siehe screenshot). Dort wird kein Ondrawitem ausgelöst und wäre somit nur mit deinem code nicht möglich.

edit: hier war kein roter Kasten

Mfg Frank

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10

Re: TListBox: Unabhängig vom Inhalt einfärben

  Alt 2. Jan 2006, 19:29
Und wozu soll das gut sein ? Man braucht doch selbst dann nur dafür sorgen, daß genügend Zeilen für den sichtbaren Bereich vorhanden sind. Z.B. so in der Richtung :

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  i : Integer;
begin
  for i := 1 to (ListBox1.Height DIV Listbox1.ItemHeight) do
    ListBox1.Items.Add('');
end;
Kommen dann noch welche dazu, werden die auch wie vorher abwechselnd gefärbt. Aber ich sehe gerade, daß der Tip von Peter Below ist. Das erklärt einiges. Wahrscheinlich ist der Code auch uralt.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 22:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz