AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Zeile in Listbox färben
Thema durchsuchen
Ansicht
Themen-Optionen

Zeile in Listbox färben

Ein Thema von loirad · begonnen am 17. Mai 2012 · letzter Beitrag vom 18. Mai 2012
Antwort Antwort
Hansa

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

AW: Zeile in Listbox färben

  Alt 18. Mai 2012, 00:23
wie kann man die oberste Zeile einer während der Laufzeit erzeugten Listbox färben (Hintergrundfarbe z.B. rot)?
@Popov : warum so kompliziert ?

Delphi-Quellcode:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
var
begin
  if Index = 1 then begin // oder Index = 0 ? selber testen
    Listbox1.Canvas.Brush.Color := clRed;
    Listbox1.Canvas.FillRect(Rect);
   Listbox1.Canvas.TextOut(Rect.Left,Rect.Top,Listbox1.Items[Index]);
  end;
end;
Es war ja nur nach 1. Zeile gefragt.

Für "Zebra-Effekt" reicht es, statt bei 1 bei (Index mod 2) dementsprechend einzugreifen.
Gruß
Hansa
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#2

AW: Zeile in Listbox färben

  Alt 18. Mai 2012, 05:28
Also ich weiß nicht ob das ausreicht. Wenn man der einen Zeile Zitat folgt, dann vielleicht ja, aber ich schätze er will auch den Rest sehen. Und nach meinem Verständnis fehlt da was. Vielleicht klappt es in neueren Versionen von Delphi, aber bei D7 nicht unbedingt.
  Mit Zitat antworten Zitat
loirad

Registriert seit: 25. Nov 2009
135 Beiträge
 
Delphi 6 Professional
 
#3

AW: Zeile in Listbox färben

  Alt 18. Mai 2012, 07:13
Vielen Dank für die Antworten! Ich werde es mal ausprobieren!

Eine Frage: Wo bekomme ich die Prozedure DrawItem her bei ender während der Laufzeit erzeugten Listbox?
Wer Fehler findet darf sie behalten!
  Mit Zitat antworten Zitat
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Zeile in Listbox färben

  Alt 18. Mai 2012, 07:21
Eine Frage: Wo bekomme ich die Prozedure DrawItem her bei ender während der Laufzeit erzeugten Listbox?
Einfach so:

Zuerst die Zeichenmethode implamentieren und dann der Listbox zuweisen die zur Laufzeit erzeugt wurde.

Delphi-Quellcode:
// Nachdem die Listbox erzeugt wurde:
DeineErzeugteListBox.OnDrawItem := DeineListBoxDrawItem;
// Wobei DeineListBoxDrawItem die Zeichenmethode ist
Ralf Kaiser
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#5

AW: Zeile in Listbox färben

  Alt 18. Mai 2012, 07:27
Durch Zuweisung. Du erzeugst doch zur Laufzeit eine ListBox, oder? Dort gibst du der Komponente bestimmte Eigenschaften, wie Parent, Width oder Height. Genauso kannst du auch eine Prozedur zuweisen. Z. B. MyListBox.OnClick

Delphi-Quellcode:
  private
    { Private-Deklarationen }
    procedure MyListBoxClick(Sender: TObject);

...

procedure TForm1.MyListBoxClick(Sender: TObject);
begin
  ShowMessage('Eigene OnClick Prozedur nach Klick auf Button1');
end;

procedure TForm1.ListBox1Click(Sender: TObject);
begin
  ShowMessage('Original OnClick Prozedur');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ListBox1.OnClick := MyListBoxClick;
end;
Edit:

In deinem Fall natürlich OnDrawItem
  Mit Zitat antworten Zitat
Antwort Antwort


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 12:33 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