Консультация № 30642
02.12.2005, 17:16
0.00 руб.
0 1 1
Здравствуйте!
Помогите разобраться!
Я только начнающий програмист. Подскажите как можно сделать
чтоб подсказка хинт появлялась не по курсором мышки
а конкретно где укажу.
Например если кнопка
то под кнопкой
гдето так:
Left:= Button1.Left;
Top:= Button1.Top + Button1.Height;
Заранее спасибо!

Обсуждение

Неизвестный
02.12.2005, 18:57
общий
это ответ
Здравствуйте, Vasiliy!
Смотри приложение: код взят один к одному из Kuliba.
Думаю разберешься...

Приложение:
function RevealHint (Control: TControl): THintWindow;{ Демонстрирует всплывающую подсказку для определенного элемента }{ управления (Control), возвращает ссылку на hint-объект, }{ поэтому в дальнейшем подсказка может быть спрятана вызовом }{ RemoveHint (смотри ниже). }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; {RevealHint}procedure RemoveHint (var Hint: THintWindow);{ Освобождаем дескриптор окна всплывающей подсказки, выведенной }{ предыдущим RevealHint. }beginHint.ReleaseHandle;Hint.Free;Hint := nil;end; {RemoveHint}
Форма ответа