Показать полную графическую версию : Hint в Delphi 6
Подскажите пожалуйста, как можно программно вызвать появление подсказки для определённого компонента?
Заранее благодарен.
В инспекторе объектов у каждого визуального компнента есть такая строчка Hint. Туда и прописываешь, что тебе надо. А чуть ниже есть ShowHint. Его устанавливаешь в True. Или просто пишешь в FormCreate
Button1.Hint:='Подсказка';
Button1.ShowHint:=true;
Исправлено: [mzd], 14:08 14-03-2004
Нет, это-то я знаю.
Я хочу чтоб подсказка появлялась не при наводе мышкой на компонент, а по событию.
Например.
Я печатаю в Едите а в это время выскакивает подсказка о том, что печатать, т.е. без мышки.
hasherfrog
15-03-2004, 10:17
ЕМНИП, подсказка появляется после вызова метода OnHint. Форсируй его вызов и все. :) Только если ты показываешь, что печатать, у пользователя возникает искушение не печатать, а показать мышкой в подсказку. А это немного другая песня, ИМХО.
hasherfrog я пытался вызвать onHint для LabeledEdit, но ничего не выходит. Пишет "неопознаный индетификатор". Что можете посоветовать?
LedWorm
public
{ Public declarations }
h: THintWindow;
procedure TForm1.Button1Click(Sender: TObject);
begin
if h<>nil then
H.ReleaseHandle;
H:=THintWindow.Create(Form1);
H.ActivateHint(Form1.ClientRect, 'Это всплывающая подсказка');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if h<>nil then
H.ReleaseHandle;
end;
Kuper
Спасибо, буду пробовать
Добавлено:
Kuper
Нет, что-то плохо получается, некрасиво и вообще эффект не тот. неужели никак нельзя просто вызвать подсказку, как делает это Делфи, когда пишеш процедуру, он автоматом в подсказке пишет, какие параметры нужно писать.
Может кто-нить ещё знает как это сделать?
тебе не нравится как выглядит окошко хинта? перепиши тогда класс ThintWindow.
вообще эффект не тот
а какой эффект нужен?
hasherfrog
25-03-2004, 14:39
...вызвать подсказку, как делает это Делфи, когда пишеш процедуру...
LedWorm
Я ж говорю, другая песня :rotate:
Поскольку я скоро сам что-то подобное буду писать, вот несколько мыслей:
1) Создание и удаление подсказки как VCL-объекта (а также модификация его содержимого в зависимости от действий пользователя) производиться в классе-родителе (в простейшем случае TMemo - у меня QTextEdit). Родитель должен определить где показывать и что показывать. Кроме того, он обязан закрыть подсказку , если сам потеряет фокус. Родитель должен уметь передать фокус в подсказку при нажатии определенных клавиш типа вверх/вниз.
2) Само окно-подсказка - немодальное попап-окно, показываемое по show(). Имплементейшн класса подсказки должен уметь сообщить родителю о том что его закрыли выбором элемента списка. У Вас, вероятно это будет посредством callback, у меня в QT - через сигналы/слоты.
3) Для упрощения/ускорения процесса написания класса можно в качестве основы взять существующий класс подсказки. Но я, скорее всего, буду делать по-другому (QFrame).
Вот вкратце и все, собственно. Для меня большей проблемой является определение содержимого подсказки. :)
Исправлено: hasherfrog, 14:48 25-03-2004
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.