Kolorowy ListBox

0

Można zrobić tak że w ListBoxe (lub innym komponencie działającym tak samo) każdy Item będzie miał inny kolor? (chodzi mi głównie o 2 kolorki :)) {glowa} {browar} --Delphi 6

0

Ja radzę użyć oddzielnego, dodatkowego komponentu - jest wygodniej :-)--Pozdrawiam {hello}

0

jakiego?
--Delphi 6

0

A ja bym zrobił listboxa bez listboxa :) Czyli wziąłbym tstringlist, paintboxa i sam bym narysował :)---------------------------
Delphi 6

Pozdrówka

0

Obsloga OwnerDraw oto przykladowy unit. Szczeguly sobie chyba dopracujesz.

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
ComboBox1: TComboBox;
Button1: TButton;
procedure ComboBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
procedure ComboBoxInit;
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}
Const
MAX_COLOR = 2;
ComboColor : array [0..MAX_COLOR - 1] of
record Color : TColor; Opis : String[15] end =
(
(Color:clYellow; Opis:'Żółty'),
(Color:clLime; Opis:'Limonowy')
);

procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
BackCol : TColor;
begin
with ComboBox1.Canvas do begin
Brush.Style := bsSolid;
BackCol := ComboColor[Index].Color;
Brush.Color := BackCol;
FillRect(Rect);
Brush.Color := ComboColor[Index].Color;
Brush.Color := BackCol;
TextOut(Rect.Left + 2, Rect.Top + 2, ComboColor[Index].Opis);
end;
end;

procedure TForm1.ComboBoxInit;
var
I : Integer;
begin
for I := 0 to MAX_COLOR - 1 do
ComboBox1.Items.Add(ComboColor[I].Opis);
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
ComboBoxInit;
end;

end.
--Pozdrawiam {hello}
Tomasz K.

0

Dodam jeszcze ze wlasciwosc style komponentu nalezy ustawic na csOwnerDrawFixed (czy jakos tak) :)--Pozdrawiam {hello}
Tomasz K.

0

Dzięki!
--Delphi 6

0

ReNe napisał:
jakiego?
&gt
Kiedyś widziałem coś takiego na TorryNet, czy czymś podobnym :-)--Pozdrawiam {hello}

1 użytkowników online, w tym zalogowanych: 0, gości: 1