Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2019, 17:34   #1
Ulnik1
Новичок
Джуниор
 
Регистрация: 15.05.2016
Сообщений: 2
По умолчанию Как сделать меню в делфи

Всем здравствуйте.
Очень нужна ваша помощь. Необходимо создать в делфи меню программы, которое бы работало по нажатию клавиш клавиатуры. Т.е. нажимаю 1 на клавиатуре - открывается вторая форма со своим функционалом, нажимаю 2 - третья форма с уже другим функционалом. Код такой:

Код:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
case key of
#27: Form1.Close;
#49: Form2.ShowModal;
end;
end;
Но при запуске срабатывает только закрытие формы, а все остальные клавиши вызывают ошибку типа raised exception class access violation in address...
Что не так?? помогите пожалуйста
Ulnik1 вне форума Ответить с цитированием
Старый 26.09.2019, 23:17   #2
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Во-первых, при инициализации проекта должна присутствовать строка
Код:
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Application.Run;
Если ее нет, то в Unit1 (Form1) в секции implementation пишем uses Unit2;
И далее создаем форму ручками
Код:
      #49: begin
               Form2 := TForm2.Create(Self);
               Form2.ShowModal;
             end;
Все должно работать
Баламут вне форума Ответить с цитированием
Старый 27.09.2019, 12:36   #3
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от Ulnik1 Посмотреть сообщение
Т.е. нажимаю 1 на клавиатуре - открывается вторая форма со своим функционалом, нажимаю 2 - третья форма
1) в google набрать delphi код клавиши
2) подключить юнита
Код:
uses  // Подключение юнита Form2  Form3
  Unit2, Unit3;

{$R *.dfm}
3) В свойстве ShortCut
Код:
procedure TForm1.FormShortCut(var Msg: TWMKey; var Handled: Boolean);
begin
  if (Msg.CharCode = VK_NUMPAD1) then
   begin
     Form2.ShowModal;
     Handled := True;
   end
   else
   if (Msg.CharCode = VK_NUMPAD2) then
   begin
     Form3.ShowModal;
     Handled := True;
   end;
end;

end.
Пример: https://yadi.sk/d/o2CmFY6oIR44sg
xxbesoxx вне форума Ответить с цитированием
Старый 28.09.2019, 05:31   #4
Ulnik1
Новичок
Джуниор
 
Регистрация: 15.05.2016
Сообщений: 2
По умолчанию

Большое спасибо за советы, буду пробовать
Ulnik1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Меню в делфи IsmaiLka Компоненты Delphi 4 13.07.2014 21:18
не получается разобраться с меню в делфи ch_dark Помощь студентам 5 29.03.2013 13:47
Бросок к горизонту(паскаль+-делфи.(может ли кто помочь сделать с Паскаля АВС на Делфи?) extrimal Помощь студентам 8 24.03.2013 23:51
Меню codrops (стильное меню), Как сделать чтобы текст не смещался в блоке? AlienNation HTML и CSS 2 28.09.2011 13:17
Выпадающее меню на Делфи den182 Общие вопросы Delphi 6 03.07.2011 14:21