Delphi Tips & Tricks softsale > Delphi Tips & Tricks      

< poprzednia rada następna rada >

Jak wyświetlić długą zawartość listboxa przy użyciu hinta?

Niekiedy listbox zawiera teksty , które nie mieszczą się przy określonej szerokości listboxa. Do wyświetlenia takiej długiej zawartości odpowiedniego elementu można użyć hinta obsługując zdarzenia OnMouseMove listboxa.Użyto tu SendMessage z parameterem LB_ITEMFROMPOINT. Aplikacja wysyła ten komunikat aby otrzymać indeks elementu najbliższego określonemu punktowi ( wspólrzęne względem lewego, górnego rogu ) listboxa. Należy pamiętać o ustawieniu własności ShowHint na true.



procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var pierwszy_indeks : Integer ;
begin
 with ListBox1 do
 begin
  pierwszy_indeks:=SendMessage(Handle,LB_ITEMFROMPOINT,0,MakeLParam(x,y));
  if (pierwszy_indeks >= 0) and (pierwszy_indeks <= Items.Count) then
   Hint := Items[pierwszy_indeks]
  else
   Hint := ''
  end;
 end;

Ilustruje to przykład tip31.zip


SOFTSALE - Oprogramowanie i Szkolenia
softsale@softsale.com.pl

03-565 Warszawa , ul. Borzymowska 43 lok. 301C
tel/fax:4084840,GSM:0607612428