Главная страница
    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.039 c
9-1103561248
йцукен
2004-12-20 19:47
2005.03.20
Поворот вектора.


3-1107447012
fess
2005-02-03 19:10
2005.03.20
Доступ к Access с помощью ADO


14-1109689996
Филя
2005-03-01 18:13
2005.03.20
Что за язык ?


14-1109196159
Случайно забредший
2005-02-24 01:02
2005.03.20
Где там галочку поставить, чтоб ехешник работал без Дельфи?


6-1105619806
Norny
2005-01-13 15:36
2005.03.20
Простой чат без сервера





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский