Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 6 552

/ вопрос открыт /

Здравствуйте!
Как узнать, что курсор мыши находится над меню, пунктом меню?

nikolaich Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: nikolaich (статус: Посетитель)
Вопрос отправлен: 12 августа 2014, 17:05
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 26; последнее сообщение — 13 августа 2014, 20:23; участников в обсуждении: 2.

Страницы: [1] [2] [Следующая »]

min@y™

min@y™ (статус: Доктор наук), 12 августа 2014, 17:21 [#1]:

Вот так пробовал?
Или, может, подойдёт Application.OnHint?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 12 августа 2014, 17:30 [#2]:

Ещё есть мессадж WM_MENUSELECT.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
nikolaich

nikolaich (статус: Посетитель), 12 августа 2014, 19:36 [#3]:

WM_MENUSELECT - когда нажал и выделил.
А мне надо знать когда курсор над меню.
Как сделать, чтобы меню сразу открывалось не при щелчке на нём, а при наведении курсора.
min@y™

min@y™ (статус: Доктор наук), 12 августа 2014, 20:07 [#4]:

Цитата (nikolaich):

Как сделать, чтобы меню сразу открывалось не при щелчке на нём, а при наведении курсора.

Как вариант:

Цитата (min@y™):

Или, может, подойдёт Application.OnHint?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
nikolaich

nikolaich (статус: Посетитель), 13 августа 2014, 14:09 [#5]:

Не понимаю, чем мне может помочь Application.OnHint
min@y™

min@y™ (статус: Доктор наук), 13 августа 2014, 14:34 [#6]:

Цитата (nikolaich):

Не понимаю, чем мне может помочь Application.OnHint

Я даже знаю, почему не понимаешь: потому что не пробовал и примеры в интырнете не анализировал. Даже в хэлпе delphi пример есть.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
nikolaich

nikolaich (статус: Посетитель), 13 августа 2014, 15:25 [#7]:

Просто, наверное, Доктору наук рассуждать, чем помочь.
А чем я занимался сутки - именно тем, что искал, чтобы не получить вот такого ответа. Любите вы все поумничать...
min@y™

min@y™ (статус: Доктор наук), 13 августа 2014, 16:11 [#8]:

Цитата (nikolaich):

Просто, наверное, Доктору наук рассуждать, чем помочь.

Я не доктор наук, у меня вообще нет учёной степени. Я простой инженер со скромной зарплатой.

Цитата (nikolaich):

чтобы не получить вот такого ответа. Любите вы все поумничать...

Заметь: вообще только я один влез в обсуждение вопроса, чтобы хотя бы советом помочь, натолкнуть, так сказать, на верное направление.
Да, конечно, я могу щас встать с дивана (несмотря на то, что я в отпуске) и написать тебе готовое решение. Но только, если ты убедишь меня, почему я должен это сделать.

Жду ответа.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
nikolaich

nikolaich (статус: Посетитель), 13 августа 2014, 16:17 [#9]:

Потому что если бы я влез в обсуждение вопроса, то помог бы всем тем, чем бы только мог - так делают многие, но не все...
А Ты влез чтобы поумничать - таких тоже полно на форумах.
min@y™

min@y™ (статус: Доктор наук), 13 августа 2014, 16:39 [#10]:

Это всё?

сюда тыкай.
Контекстный поиск по странице, ключевое слово - "наведении".
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 13 августа 2014, 16:44 [#11]:

А вот пример из хэлпа:
{ This shows how the OnHint event handler is declared as a public method of the form }
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    StatusBar1: TStatusBar;
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    procedure DisplayHint(Sender: TObject);
  end;
 
var
 
  Form1: TForm1;
implementation
{$R *.xfm}
 
{ Here is the implementation of the OnHint event handler }
 
{ It displays the application’s current hint in the status bar }
procedure TForm1.DisplayHint(Sender: TObject);
begin
  StatusBar1.SimpleText := GetLongHint(Application.Hint);
end;
 
{ Here is the form’s OnCreate event handler. }
 
{ It assign’s the application’s OnHint event handler at runtime }
{ because the Application is not available in the Object Inspector }
{ at design time }
procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnHint := DisplayHint;
end;

Неужели этого недостаточно?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
nikolaich

nikolaich (статус: Посетитель), 13 августа 2014, 16:58 [#12]:

Когдап искал - понял так, а теперь убедился, что должен быть hint -всплывающая подсказка. А без этого как?
и Как сделать, чтобы меню сразу открывалось не при щелчке на нём, а при наведении курсора.
как добавить в меню OnEnter и OnExit.
Попробывал добавить обычным образом - добавляется, но не срабатывает.
min@y™

min@y™ (статус: Доктор наук), 13 августа 2014, 17:51 [#13]:

Цитата (nikolaich):

Когдап искал - понял так, а теперь убедился, что должен быть hint -всплывающая подсказка. А без этого как?

Подсказка не будет видна, она нужна для определения пункта меню, над которым курсор находится.
Скомпили пример, посмотри, как это выглядит на практике.

Цитата (nikolaich):

как добавить в меню OnEnter и OnExit.

Никак. Для этого нужно написать своё меню или скачать готовый компонент, если его кто-то написал до тебя.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
nikolaich

nikolaich (статус: Посетитель), 13 августа 2014, 18:36 [#14]:

В случае с TButton, например, работает, а с меню, как я и сказал, только после первого нажатия, а мне надо без этого - при наведении курсора.
Какое-то событие ведь происходит - ведь верхний пункт меню выделяется.
Наверно, надо использовать API.
А затем послать сообщение, эквивалентное нажатию левой кнопки мыши.
Пробывал
SendMessage(Хэндл кнопки, WM_LBUTTONDOWN, 0,0);
SendMessage(Хэндл кнопки, WM_LBUTTONUP, 0,0);
не работает.
min@y™

min@y™ (статус: Доктор наук), 13 августа 2014, 18:51 [#15]:

Ты пример скомпилил?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
nikolaich

nikolaich (статус: Посетитель), 13 августа 2014, 18:53 [#16]:

ДА!
Что получилось - читай выше.
min@y™

min@y™ (статус: Доктор наук), 13 августа 2014, 18:58 [#17]:

Цитата (nikolaich):

ДА! Что получилось - читай выше.

Присвой своству Hint пунктов меню верхнего уровня непустые значения и посмотри, что получится.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
nikolaich

nikolaich (статус: Посетитель), 13 августа 2014, 19:12 [#18]:

Всё так и сделал.
Ещё поместил на форму - TButton - с этим всё нормально - в TStatusBar отображается Hint, а Hint меню верхнего уровня отображается только после нажатия на него вместе с появлением пункта второго уровня.
min@y™

min@y™ (статус: Доктор наук), 13 августа 2014, 19:16 [#19]:

Цитата (nikolaich):

а Hint меню верхнего уровня отображается только после нажатия на него вместе с появлением пункта второго уровня.

Дай посмотреть.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
nikolaich

nikolaich (статус: Посетитель), 13 августа 2014, 19:23 [#20]:

Как - прикрепить файл или как

Страницы: [1] [2] [Следующая »]

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:43
Выполнено за 0.03 сек.