Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.08;
Скачать: CL | DM;

Вниз

Hint в ListBox e   Найти похожие ветки 

 
saimon   (2004-07-22 20:26) [0]

Уважаемые, мастера, Подскажите пожалуйста...

Как сделать, чтобы когда в ListBox"е строка полностью не умещается ее показывала Hint (подсказка) и была на той линии, над которой указатель мыши и начиналась с начала строки???

Заранее благодарен, Saimon.


 
Almaz ©   (2004-07-23 04:13) [1]


> Как сделать, чтобы когда в ListBox"е строка полностью не
> умещается ее показывала Hint (подсказка) и была на той линии,
> над которой указатель мыши и начиналась с начала строки???


Для этого, необходимо переопределить Application.OnShowHint и обрабатывать его для всех ListBox"ов. Например так:

type
 TForm1 = class(TForm)
   ListBox1: TListBox;
   ListBox2: TListBox;
   procedure FormCreate(Sender: TObject);
...
 private
   procedure HintCorrect(var HintStr: string; var CanShow: Boolean;
     var HintInfo: THintInfo);
...
 end;

...

procedure TForm1.FormCreate(Sender: TObject);
begin
 ListBox1.ShowHint := TRUE;
 ListBox2.ShowHint := TRUE;
 Application.OnShowHint := HintCorrect;
end;

procedure TForm1.HintCorrect(var HintStr: string; var CanShow: Boolean;
 var HintInfo: THintInfo);
var
 Index: Integer;
 ARect: TRect;
begin
 if HintInfo.HintControl is TListBox then
 with TListBox(HintInfo.HintControl) do
 begin
   Index := ItemAtPos(HintInfo.CursorPos, True);
   if Index <> -1 then
     if Canvas.TextWidth(Items[Index]) > ClientWidth then
     begin
       HintInfo.HintStr := Items[Index];
       Perform(LB_GETITEMRECT, Index, Longint(@ARect));
       HintInfo.CursorRect := ARect;
       HintInfo.HintPos := ClientToScreen(ARect.TopLeft);
       CanShow := True;
     end else
       CanShow := False;
 end;
end;


Удачи.


 
saimon   (2004-07-23 16:27) [2]

Спасибо



Страницы: 1 вся ветка

Текущий архив: 2004.08.08;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.044 c
4-1088437839
MetalFan
2004-06-28 19:50
2004.08.08
как программно "залочить" комп?


1-1090607313
Mental_Ray
2004-07-23 22:28
2004.08.08
Окно сворачивается в свой заголовок, как это сделать?


14-1090291105
Anger
2004-07-20 06:38
2004.08.08
IdSMTPServer


1-1090501632
юзверь
2004-07-22 17:07
2004.08.08
помогите, спасите от мучений:) с текстом


1-1090852542
slaga
2004-07-26 18:35
2004.08.08
Как созадать креейтнуть невизуальную компоненту в ddl-ке