AGB  ·  Datenschutz  ·  Impressum  







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

Eigene Farblistbox

Ein Thema von torud · begonnen am 12. Jun 2004 · letzter Beitrag vom 20. Jul 2004
Antwort Antwort
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#1

Eigene Farblistbox

  Alt 12. Jun 2004, 19:39
Hallo Leute,

ich möchte eine eigene Farblistbox erstellen und weiss nicht wie!

Wie folgt soll es aussehen. Links, soll das jeweilige Item eine farbige Box haben und rechts soll daszu der Farbname sein. Im Prinzip so, wie die ColorBox ist. Nur eben als Listbox.

Ich würde mir einen ConstBlock mit den Farbcode erstellen und einen mit den dazugehörenden Farbnamen. Nun müsste ich nur noch eine Routine haben, mit der ich die Listbox befüllen und bemale.

Nur WIE?????
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von Mirilin
Mirilin

Registriert seit: 21. Dez 2002
Ort: Lenzburg
861 Beiträge
 
Delphi 6 Professional
 
#2

Re: Eigene Farblistbox

  Alt 12. Jun 2004, 19:47


Schau Dich mal nach OwnerDraw um.

mfg Tobias
Miniaturansicht angehängter Grafiken
colorlistbox.gif  
Tobias
Die Physik ist für die Physiker eigentlich viel zu schwer.
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#3

Re: Eigene Farblistbox

  Alt 12. Jun 2004, 20:01
Ja genau so was meine ich. Nur das ich dort zum Beispiel alle NetscapeFarben (216 Stück) unterbringen will.

Hast Du einen kleinen Fetzen Code???
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von Mirilin
Mirilin

Registriert seit: 21. Dez 2002
Ort: Lenzburg
861 Beiträge
 
Delphi 6 Professional
 
#4

Re: Eigene Farblistbox

  Alt 12. Jun 2004, 20:10


Das von vorhin hatte ich mit diesem hingeschluddert.

Delphi-Quellcode:
procedure TMainForm.ListBoxDrawItem(Control: TWinControl; Index: Integer;
  aRect: TRect; State: TOwnerDrawState);
var
  z : Byte;
  s : String;
  r : TRect;
begin
  if not (Control is TListBox) then Exit;
  with TListbox(Control) do
  begin
    z := ItemHeight;
    s := Items[Index];
    with Canvas do
    begin
      Brush.Style := bsSolid;
      Brush.Color := clWhite;
      if odSelected in State then Brush.Color := clGray;
      FillRect(aRect);
      Pen.Color := clBlack;
      Brush.Color := StringToColor(s);
      r := Rect(aRect.Left+1,aRect.Top+1,aRect.Left+z-1,aRect.Top+z-1);
      Rectangle(r);
      Brush.Style := bsClear;
      TextOut(aRect.Left+z+z,aRect.Top+1,s);
    end;
  end;
end;
Als Items hatte ich einfach Farbkonstanten so wie clGreen ...


mfg Tobias
Tobias
Die Physik ist für die Physiker eigentlich viel zu schwer.
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#5

Re: Eigene Farblistbox

  Alt 12. Jun 2004, 20:14
ok, danke erstmal, ich hoffe, dass ich das irgendwie nachvollziehen kann, da ich es ja noch modifizieren muss.

was ich aber noch nicht ganz verstehe ist, die VAR-Deklaration

hm, werds wohl irgendwie hinbekommen
Danke
Tom
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#6

Re: Eigene Farblistbox

  Alt 13. Jun 2004, 13:35
Hallo !

Leider funktioniert es bei mir überhaupt nicht, da der Compiler aRect nicht kennt. Ich habe dann aRect in Rect geändert und der Compiler kommt nun schon ein Stück weiter, aber in der Zeile

r := Rect(Rect.Left+1,Rect.Top+1,Rect.Left+z-1,Rect.Top+z-1);

meckert er, dass ihm ein Operator oder ein Semikolon fehlt.

Was mache ich nur Falsch???
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von Mirilin
Mirilin

Registriert seit: 21. Dez 2002
Ort: Lenzburg
861 Beiträge
 
Delphi 6 Professional
 
#7

Re: Eigene Farblistbox

  Alt 13. Jun 2004, 13:38


Ich ändere immer in der Definition Rect : TRect durch aRect aus, da ich ja manchmal die Funktion Rect brauche.

Code:
procedure TMainForm.ListBoxDrawItem(Control: TWinControl; Index: Integer;
  [b]aRect[/b]: TRect; State: TOwnerDrawState);

mfg Tobias
Tobias
Die Physik ist für die Physiker eigentlich viel zu schwer.
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#8

Re: Eigene Farblistbox

  Alt 13. Jun 2004, 13:41
Hallo Tobias!

jetzt kann ich das Projekt compilieren, aber die listbox ist komplett leer!
Wo muss ich denn nun die farbcodes und die farbnamen dazu deklarieren?
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von Mirilin
Mirilin

Registriert seit: 21. Dez 2002
Ort: Lenzburg
861 Beiträge
 
Delphi 6 Professional
 
#9

Re: Eigene Farblistbox

  Alt 13. Jun 2004, 13:44
Tom

einfach Items mit den Farben füllen.

mfg Tobias
Tobias
Die Physik ist für die Physiker eigentlich viel zu schwer.
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#10

Re: Eigene Farblistbox

  Alt 20. Jul 2004, 10:52
Jo, danke es hat gefunzt.
Nun habe ich endlich eine Farblistbox mit allen möglichen I-Net-Farben!
Danke
Tom
  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 22:53 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