|
17 Как сделать, чтобы при наведении мышкой на элемент ListBox'а, у которого длина больше длины сомого ListBox появлялся Hint?
Где нибудь на показывании формы :
Application->HintPause = 0;
Application->HintShortPause = 0;
Application->HintHidePause = 10000000000;
Application->OnShowHint = TIn4Form->DoShowHint;
void __fastcall TIn4Form::DoShowHint(System::AnsiString &HintStr, bool
&CanShow, THintInfo &HintInfo)
{
CanShow = true;
if (HintInfo.HintControl == ListBox3 )
{
if( Mouse->Capture )
{
CanShow = false;
return;
}
HintInfo.ReshowTimeout = 100;
/*HintInfo.HintColor = clAqua;// Changes only for this hint*/
TPoint pnt;
SIZE strsize;
int numstr = ListBox3->ItemAtPos(HintInfo.CursorPos,true);
if(numstr< 0)
{
CanShow = false;
Application->HideHint ();
return;
}
HintStr = ListBox3->Items->Strings[numstr];
strsize = ListBox3->Canvas->TextExtent(HintStr);
if(strsize.cx<=ListBox3->ClientWidth)
{
CanShow = false;
Application->HideHint ();
return;
}
pnt.x = -1;
pnt.y =
int(HintInfo.CursorPos.y/ListBox3->ItemHeight)*ListBox3->ItemHeight - 3;
pnt = ListBox3->ClientToScreen(pnt);
HintInfo.HintPos.x = pnt.x;
HintInfo.HintPos.y = pnt.y;
HintInfo.HintMaxWidth = Screen->Width-pnt.x;
/*HintInfo.HideTimeout = 100;*/
}
}
И не забудь поставить ShowHint у интересующего ListBox-а.
Denis Dudko 2:5020/400
Предыдущий вопрос
|
|
Следующий вопрос
источник
by jenyok
|
|
|