Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Реализовать горячие клавиши / 9 сообщений из 9, страница 1 из 1
13.04.2020, 10:31
    #39946517
wsnet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализовать горячие клавиши
Коллеги, есть код:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
function UserQuestion(const AQuestion: String;
                      const AFlags: Integer = MB_YESNO + MB_SYSTEMMODAL + MB_ICONQUESTION): Integer;
var
  Cursor : TCursor;
begin
  Cursor := Screen.Cursor;
  Screen.Cursor := crDefault;

  try
    Result := Application.MessageBox(PChar(AQuestion), PChar(PgSt.ProgramName), AFlags);
  finally
    Screen.Cursor := Cursor;
  end;
end;


Подскажите, как прикрутить горячие клавиши при вызове диалогового окна, то есть например:
Вы хотите удалить? (Да - гор клавиша Y, нет - гор клавиша N)?
...
Рейтинг: 0 / 0
13.04.2020, 10:40
    #39946524
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализовать горячие клавиши
Можно нарисовать свое окно, а можно сделать любую кнопку по-умолчанию выделенной (обычно yes) и воспользоваться кнопками enter (выбор по умолчанию) и esc - отмена.

Это как-бы азы не помню уже с какой винды. Еще на 2.11 было.
...
Рейтинг: 0 / 0
13.04.2020, 10:45
    #39946526
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализовать горячие клавиши
wsnet,

Стандартный MessageBox() и так будет реагировать на Y/N, Да/Нет... Хочешь другие хоткеи - придется лепить свою диалоговую форму.
...
Рейтинг: 0 / 0
13.04.2020, 10:48
    #39946528
wsnet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализовать горячие клавиши
DarkMaster,

не реагирует в том то и дело(
...
Рейтинг: 0 / 0
13.04.2020, 10:50
    #39946530
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализовать горячие клавиши
wsnet,

Тогда делай свой диалог и изгаляйся как хочешь... Хотя я бы совету камрада wadman`a последовал на твоем месте.
...
Рейтинг: 0 / 0
13.04.2020, 11:03
    #39946533
wsnet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализовать горячие клавиши
wadman, по-умолчанию да, кнопка выделена, по по esc не получается, нажимаем и никак не реагирует.
...
Рейтинг: 0 / 0
13.04.2020, 11:06
    #39946535
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализовать горячие клавиши
wsnet,

MB_OKCANCEL вместо MB_YESNO попробуй
...
Рейтинг: 0 / 0
13.04.2020, 11:07
    #39946536
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализовать горячие клавиши
wsnet,

логично, для esc нужна кнопка "отмена".

https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-messagebox
авторIf a message box has a Cancel button, the function returns the IDCANCEL value if either the ESC key is pressed or the Cancel button is selected. If the message box has no Cancel button, pressing ESC has no effect.
...
Рейтинг: 0 / 0
13.04.2020, 12:17
    #39946565
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализовать горячие клавиши
wsnetне реагирует в том то и дело(

Очевидно, у твоей винды русская локализация и кнопки не Yes/No.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Реализовать горячие клавиши / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]