Активизированная подсказка
Создайте одну общую переменную, чтобы управлять состоянием подсказки:
var Myhint: THintWindow;
Теперь поместите в форму эту функцию для активации подсказки:
function TForm1.RevealHint (Control: TControl): THintWindow; var ShortHint: string; AShortHint: array[0..255] of Char; HintPos: TPoint; HintBox: TRect; begin Result := THintWindow.Create(Control); ShortHint := GetShortHint(Control.Hint); HintPos := Control.ClientOrigin; Inc(HintPos.Y, Control.Height + 6); HintBox := Bounds(0, 0, Screen.Width, 0); DrawText(Result.Canvas.Handle, StrPCopy(AShortHint, ShortHint), -1, HintBox, DT_CALCRECT or DT_LEFT or DT_WORDBREAK or DT_NOPREFIX); OffsetRect(HintBox, HintPos.X, HintPos.Y); Inc(HintBox.Right, 6); Inc(HintBox.Bottom, 2); Result.ActivateHint(HintBox, ShortHint); end;
И поместите эту процедуру для деактивации подсказки:
procedure TForm1.RemoveHint (var Hint: THintWindow); begin Hint.ReleaseHandle; Hint.Free; Hint := nil; end;
Для активации:
Myhint:= RevealHint(edit1); // Измените имя Edit1 на имя компонента, // где Вы хотите, чтобы появлялась подсказка
Для деактивации:
RemoveHint(Myhint);
Комментарии