Tehnika Krstarice > Programiranje > Delphi - Kako dobiti ListBox sa horizontalnim klizačem

Delphi - Kako dobiti ListBox sa horizontalnim klizačem

08.03.2001.

Kao što sigurno znate "ListBox" po default-u ne poseduju horizontalni scroll-bar (klizač). Ovo je malo nezgodno u slučajevima kada vam sadržaj liste prelazi granične linije vidljivosti. U ovom slučaju višak sadržaja se "odseca", pošto nema horizontalnog klizača. Ali zahvaljujući jednoj maloj proceduri, ovome možemo doskočiti.

Pokrenite Delphi i novi projekat, pa na praznu formu postavite dva List-box-a i jedno komandno dugme. Jednom malom petljom ćemo dodati sadržaj u liste, u kojima se neće zbog dužine videti sav sadržaj. Kada kliknemo na dugme, List-box1 će dobiti horizontalni klizač, pa ćemo moći da vidimo i najdužu stavku liste. Izvorni kod je sledeći:

procedure TForm1.FormCreate(Sender: TObject);
var
    i:integer;
    e:string;
begin
   {definisanje opcija}
   e:='. opcija-weahpsjdgbajdfgbasldijfgbasdk';
   for i:=1 to 10  do
      begin
         listbox1.Items.Add (inttostr(i) + e);
         listbox2.Items.Add (inttostr(i) + e);
      end;

end;


procedure PodesiHorizontalni(lista : TListBox);
var
   i, MaxSirina: integer;
begin
  MaxSirina := 0;
  for i := 0 to lista.Items.Count - 1 do
  if MaxSirina < lista.Canvas.TextWidth(lista.Items[i])
  then
     MaxSirina := lista.Canvas.TextWidth(lista.Items[i]);

 SendMessage(lista.Handle,
             LB_SETHORIZONTALEXTENT,
             MaxSirina + 5, 0);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   PodesiHorizontalni(ListBox1);
end;

Preporučite ovaj članak

Članak još uvek nije ocenjen.