Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];

Вниз

Как вывести 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.034 c
1-1109438900
IgorP
2005-02-26 20:28
2005.03.20
Передача сообщений из TThread в визуальные компоненты


3-1108715837
LORN
2005-02-18 11:37
2005.03.20
содержание столбца->DBComboBox


6-1105938265
Kacnep
2005-01-17 08:04
2005.03.20
Разбираюсь с ФТП. Пробовал компоненты ФастНета и Инди.


14-1109684176
Vlad Oshin
2005-03-01 16:36
2005.03.20
WinXP не подключает сетевые диски


1-1109782453
Knight
2005-03-02 19:54
2005.03.20
TShellTreeView.Root...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский