TListBox ItemHeight

0

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

0

musisz chyba ustawić styl na ...DrawFixed (w Object Inspector)czy jakoś tak a potem w OnDrawItem chyba da się zmienić:P

0

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,

0

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 ;-)

0

dzieki za pomoc ale to tez nie to o co mi chodzilo, ale udalo mi sie juz samemu do tego dojsc

rozwiazanie:

Style:= lbOwnerDrawVariable;

  • zdarzenie
    OnMeasureItem

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