HintInfo.ReshowTimeout hide hint but not show it again
Original Reporter info from Mantis: zaher
-
Reporter name: Zaher Dirkey
Original Reporter info from Mantis: zaher
- Reporter name: Zaher Dirkey
Description:
Bug: When set HintInfo.ReshowTimeout and when CanShow = False or HintStr = '' , at same control bounds without moving out, hint never show again.
suggestion to resolve it by adding ahttReshowHint next to ahttShowHint, i tested but not sure about it, it is fast fix.
if FHintTimerType = ahttHideHint then
ShowHintWindow(Info);
//...if there's no hint window visible at this point then schedule a new query
if (FHintTimerType = ahttNone) or (FHintWindow = nil) or not FHintWindow.Visible then
StartHintTimer(HintPause, ahttShowHint);
end;
ahttShowHint, ahttReshowHint:
StartHintTimer(HintPause, ahttShowHint);
end;
end
else
CancelHint;
end;
Steps to reproduce:
New Project, put TPanel on the form, with bound 200, 200 (or bigger), Add TApplicationProperties
In ShowHint of ApplicationProperties
procedure TForm1.ApplicationProperties1ShowHint(var HintStr: string; var CanShow: Boolean; var HintInfo: THintInfo);
begin
CanShow := (HintInfo.CursorPos.X < 100) and (HintInfo.CursorPos.Y < 100);
if CanShow then
begin
HintInfo.HintStr := IntToStr(HintInfo.CursorPos.X)+','+IntToStr(HintInfo.CursorPos.Y);
HintInfo.HideTimeout := 10000;
HintInfo.ReshowTimeout := 200;
end;
end;
Now move in Panel1, in x,y less than 100, it show hint, stay at Panel1 but move it out of 100,100, hint will hide and never show even back to x,y less than 100, it back to show if u moved out of control and back.
Additional information:
I tested it in Windows8.1
Mantis conversion info:
- Mantis ID: 37053
- Fixed in revision: r63142 (#e7cce245)
- Monitored by: » zaher (Zaher Dirkey)