Witam
Jak zrobić w TListBox różne wartości ItemHeight ? kombinowałem z OnDrawItem wiem jak zmieniać kolory itp itd ale nie mam pojęcia jak dobrać się do poszczególnych wysokości itemów na liscie,
Proszę o jakieś wskazówki
Pozdrawiam
Witam
Jak zrobić w TListBox różne wartości ItemHeight ? kombinowałem z OnDrawItem wiem jak zmieniać kolory itp itd ale nie mam pojęcia jak dobrać się do poszczególnych wysokości itemów na liscie,
Proszę o jakieś wskazówki
Pozdrawiam
musisz chyba ustawić styl na ...DrawFixed (w Object Inspector)czy jakoś tak a potem w OnDrawItem chyba da się zmienić:P
Tak mam, tylko wszystkie pozycje na liscie maja tą samą wysokość a ja potrzebuje zrobić rózne wysokości dla kazdego itemu na liście osobno,
kiedyś coś takiego zrobiłem..
{szukam kodów źródłowych projektu} ;-)
procedure TForm4.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
i, i2, liczba1, liczba2: integer;
begin
Liczba1:=-2;
Liczba2:=-1;
for i:= 0 to listbox1.Items.Count do begin
Liczba1:= Liczba1 + 2;
Liczba2:= Liczba2 + 2;
ListBox1.Canvas.FillRect(Rect);
ListBox1.Canvas.TextOut(Rect.Left+1,Rect.Top+1,ListBox1.Items.Strings[index]);
if Index=Liczba2 then ListBox1.Canvas.Brush.Color:=clblue
else if index=liczba1 then ListBox1.Canvas.Brush.Color:=$00FF3C3C;
end;
to chyba ten kod.. przerób go na własne potrzeby ;-)
ta linijka jest najważniejsza:
ListBox1.Canvas.FillRect(Rect);
ListBox1.Canvas.TextOut(Rect.Left+1,Rect.Top+1,ListBox1.Items.Strings[index]);
kod co podałem wyżej nawet koloruje itemy o różnym indexie ;-)
Mam nadzieje, że się przyda ;-)
dzieki za pomoc ale to tez nie to o co mi chodzilo, ale udalo mi sie juz samemu do tego dojsc
rozwiazanie:
Style:= lbOwnerDrawVariable;