AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Problem mit Listbox hintergrundfarbe Delphi 7

Ein Thema von Van HelF · begonnen am 1. Mär 2007 · letzter Beitrag vom 2. Mär 2007
Antwort Antwort
Van HelF

Registriert seit: 24. Okt 2005
Ort: Karlsbrunn
195 Beiträge
 
Delphi 7 Personal
 
#1

Problem mit Listbox hintergrundfarbe Delphi 7

  Alt 1. Mär 2007, 22:14
Hallo,
ich habe ein recht einfaches problem, jedoch blicke ich nicht ganz durch, warum.
Ich möchte die hintergrundfarbe einer listbox ändern (zur laufzeit), das sollte ja kein problem sein,
einfach listbox1.color:=clred;

Jetzt kommt aber das problem, es wird nur die hintergrundfarbe hinter vorhandenen items geändert, d.h. die leere fläche in der listbox bleibt weiss, ich habe schon die verschiedenen listbox styles ausprobiert (z.b. lbOwnerDrawFixed), hat jedoch nichts gebracht.
Das verwirrende in Delphi 6 (ent) funktioniert das ganze wunderbar jedoch in delphi 7 (ent) nicht.
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#2

Re: Problem mit Listbox hintergrundfarbe Delphi 7

  Alt 1. Mär 2007, 22:39
Die weissen Flächen werden erst neugezeichnet, wenn ein Teil des Controls neugezeichnet wird, wo kein Element liegt, z.B. bei Fensterwechsel.
Nach dem Umsetzen der Farbe musst du das Control einmal komplett neu zeichnen (lassen).
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
Van HelF

Registriert seit: 24. Okt 2005
Ort: Karlsbrunn
195 Beiträge
 
Delphi 7 Personal
 
#3

Re: Problem mit Listbox hintergrundfarbe Delphi 7

  Alt 1. Mär 2007, 22:54
Ich habe auch schon probiert danach ein listbox1.repaint , refresh oder update zu schreiben, hat aber leider nichts gebracht.
  Mit Zitat antworten Zitat
raiguen
(Gast)

n/a Beiträge
 
#4

Re: Problem mit Listbox hintergrundfarbe Delphi 7

  Alt 2. Mär 2007, 08:50
Das Einfärben aller Zeilen musst du selbst in die Hand nehmen und zwar im OnDrawItem:
Delphi-Quellcode:
...
ListBox1.Style := lbOwnerDrawVariable {oder lbOwnerDrawFixed}
...
procedure {Form}.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
   with ListBox1 do begin
     if (odSelected in State) or (odFocused in State) then
       Canvas.Brush.color := clHighLight //oder welche Farbe auch immer
     else
       Canvas.Brush.color := ColorBox1.selected; //--oder irgendeine 'feste' Farbe
     Canvas.FillRect(Rect);
     Canvas.Font.Color := clblack;
     Canvas.TextOut(Rect.Left,Rect.Top,Items[Index]);
   end;
end;
  Mit Zitat antworten Zitat
kingflo

Registriert seit: 21. Jun 2004
Ort: Hamburg
502 Beiträge
 
Delphi 7 Professional
 
#5

Re: Problem mit Listbox hintergrundfarbe Delphi 7

  Alt 2. Mär 2007, 09:16
oder (aber die DrawItem Methode ist besser)

Delphi-Quellcode:
var
oldHeigt:integer;
begin
oldHeigt:=ListBox1.Height;
listBox1.Color:=clRed;
ListBox1.Height:=0;
ListBox1.Height:=oldHeigt;
Florian Gilde
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#6

Re: Problem mit Listbox hintergrundfarbe Delphi 7

  Alt 2. Mär 2007, 09:50
Noch eine Alternative.

Delphi-Quellcode:
ListBox.Color := clRed;
ListBox.PaintTo(ListBox.Canvas, -1, -1);
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
kingflo

Registriert seit: 21. Jun 2004
Ort: Hamburg
502 Beiträge
 
Delphi 7 Professional
 
#7

Re: Problem mit Listbox hintergrundfarbe Delphi 7

  Alt 2. Mär 2007, 10:00
stimmt das geht natürlich auch... darauf hätte ich auch kommen können
Florian Gilde
  Mit Zitat antworten Zitat
Van HelF

Registriert seit: 24. Okt 2005
Ort: Karlsbrunn
195 Beiträge
 
Delphi 7 Personal
 
#8

Re: Problem mit Listbox hintergrundfarbe Delphi 7

  Alt 2. Mär 2007, 12:43
vielen dank für die reichlichen antworten.
  Mit Zitat antworten Zitat
Van HelF

Registriert seit: 24. Okt 2005
Ort: Karlsbrunn
195 Beiträge
 
Delphi 7 Personal
 
#9

Re: Problem mit Listbox hintergrundfarbe Delphi 7

  Alt 2. Mär 2007, 13:00
funktioniert so aber besser, anders gibts unschöne verpixelungen:
ListBox1.PaintTo(ListBox1.Canvas, -2, -2);
  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 21:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf