Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.20;
Скачать: CL | DM;

Вниз

Как вывести Hint после остановки курсора...   Найти похожие ветки 

 
grusty   (2005-03-04 03:37) [0]

Ребята, подскажите!
Как вывести Hint после остановки курсора над компонентом, например, TImage. Причем, если снова двинуть курсор и остановить его, то Hint снова должен появиться.
Заранее благодарен!


 
XP   (2005-03-04 07:01) [1]

Image.Hint := "Изображение";
Image.ShowHint := true;

Эти свойства объявлены как published, поэтому видны в Object Inspector"е.


 
Cosinus ©   (2005-03-04 09:34) [2]


> XP
Угу, только не нужно забывать, что если курсор будет крутится по одному Image, не переползая на другие компоненты, то Hint появится только один раз вначале. Для устранения нужно еще немного доработать :)


 
GLFox ©   (2005-03-04 09:44) [3]

OnMouseMove для TImage


 
GLFox ©   (2005-03-04 09:45) [4]

OnMouseMove для TImage


 
Fedia ©   (2005-03-04 10:15) [5]

GLFox ©   (04.03.05 09:45) [4]
Если не секрет, как вызвать hint на OnMouseMove, если время его первоначального отображения уже прошло, а курсор выводить за пределы компонента нельзя (из [0]).


 
GLFox ©   (2005-03-04 10:19) [6]

> Fedia ©   (04.03.05 10:15) [5]
В общем то я затрудняюсь так сразу сказать, но данный вариант мне и самому кажется довольно подозрительным... %)


 
GLFox ©   (2005-03-04 10:25) [7]

Лучшим вариантом наверно будет сформировать его самому (например, в виде отдельного окна (CreateWindowEx)) и при входе мыши создавать его. При move можно таскать его даже за мышой. А когда она (мышь) убежит с компонента, тогда его и Free.


 
Экспериментатор   (2005-03-04 10:27) [8]

в OnMouseMove
напиши
Image.ShowHint := false;
Image.ShowHint := true;

и хинт будет появляться столько сколько твоей душе угодно


 
Fedia ©   (2005-03-04 10:31) [9]

Экспериментатор   (04.03.05 10:27) [8]
не правда.


 
Cosinus ©   (2005-03-04 10:33) [10]

Создай свой хинт и не мучайся :)))

var
 MyHint: THintWindow;
//Создать и показать
 MyHint:=THintWindow.Create(Image);
 MyHint.ActivateHint(Image.ClientRect, "Ага-а-а!");
//Прибить и соответственно спрятать :)
 if MyHint<>nil then
   MyHint.ReleaseHandle;



 
Cosinus ©   (2005-03-04 10:35) [11]


> Экспериментатор   (04.03.05 10:27) [8]
Не правда :)
Я тоже предполагал и не поленился, проверил. Нет, не будет.


 
Fedia ©   (2005-03-04 11:01) [12]

Cosinus ©   (04.03.05 10:33) [10]
Это уже вариант :)
Только наверняка можно прорисовать "родной" для компонента hint.
Покопался vcl, в итоге вышел на класс TControl = class(TComponent). Как отобразить родной hint еще не выяснил, но зато стало ясно, почему вариант [8] не работает.
FShowHint: Boolean;

property ShowHint: Boolean read FShowHint write SetShowHint stored IsShowHintStored;

procedure TControl.SetShowHint(Value: Boolean);
begin
 if FShowHint <> Value then
 begin
   FShowHint := Value;
   FParentShowHint := False;
   Perform(CM_SHOWHINTCHANGED, 0, 0);
 end;
end;

Т.е. при изменении свойства ShowHint окно подсказки не выводится. Может вообще иду неправильным путем :)


 
grusty   (2005-03-04 12:56) [13]


> GLFox

Как создать Hint и удалить, и где, - я понял. А вот что необходимо прописать в OnMouseMove? MyHint.ActivateHint... см. [10]?
Может кто видел старенький англо-русский переводчик? Там при наведении на каждое англ. слово выскакивает хинт с переводом. Вот мне нужно что-то подобное...


 
Cosinus ©   (2005-03-04 13:22) [14]

Извращенный метод :)))
В таймере смотреть GetLastInputInfo и если оно больше определенного времени(и курсор находится над Image(WindowFromPoint,)), то выводить хинт, если нет, то прибить (если он есть) и не выводить...
Но по-моему это "поход из Москвы в Питер через Воркуту"...



Страницы: 1 вся ветка

Текущий архив: 2005.03.20;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.035 c
1-1109763659
hgd
2005-03-02 14:40
2005.03.20
Кто знает о компоненте TIEEE1394-beta


1-1109951514
Paul__
2005-03-04 18:51
2005.03.20
Сгенерировать уникальное имя для компонента в пределах приложения


1-1109860385
SAI
2005-03-03 17:33
2005.03.20
Memo


3-1108438042
папик
2005-02-15 06:27
2005.03.20
Лог SQL запросов к MS SQL


4-1107399538
Александр1
2005-02-03 05:58
2005.03.20
Очистка StringGrid