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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2008, 09:09   #1
igbizon
 
Регистрация: 02.09.2008
Сообщений: 7
По умолчанию Вызов процедуры

Вопрос такой.
Есть на форме некая кнопка и создан обработчик ее нажатия.
также имеется процедура:
...
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (ssCtrl in Shift) and (chr(Key) in ['A', 'a']) then
как мне при выполнении условия этого сделать так что бы запустился обработчик выполняющий нажатие на кнопку?
igbizon вне форума Ответить с цитированием
Старый 02.09.2008, 09:15   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

А почему обработчик события нельзя переписать в этой процедуре, для чего кнопка?
puporev вне форума Ответить с цитированием
Старый 02.09.2008, 09:31   #3
igbizon
 
Регистрация: 02.09.2008
Сообщений: 7
По умолчанию

А в принципе потому что пользователи у нас глуповатые и сочетание клавиш для некоторых сродни изучению высшей математики, поэтому кнопка им нужна
igbizon вне форума Ответить с цитированием
Старый 02.09.2008, 09:54   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

вообще, то, что Вы пытаетесь выдумать уже выдумано до Вас и называется Actions (смотри ActionList )

ну, если Вам Ваш вариант нравится больше - ну и вызывайте тот код, который назначен на нажатие кнопки, например:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
 // код на кнопке
end;
...
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
  if (ssCtrl in Shift) and (chr(Key) in ['A', 'a']) then
      Button1Click(Button1)
...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.09.2008, 10:33   #5
igbizon
 
Регистрация: 02.09.2008
Сообщений: 7
По умолчанию

Спасибо вам, но я немного по дургому
...then
bubutton1.click......
Но все равно Вам спасибо.
igbizon вне форума Ответить с цитированием
Старый 02.09.2008, 10:44   #6
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Можно еще два варианта, если все же нужно нажимать на кнопку.
1. Делаем кнопку недоступной, в Инспекторе выставляем свойство кнопки Enabled=false.
Пишем
if (ssCtrl in Shift) and (chr(Key) in ['A', 'a']) then
button1.Enabled:=true;
и жмем на кнопку
2. Делаем кнопку невидимой. В Инспекторе выставляем свойство кнопки Visible=false.
Пишем
if (ssCtrl in Shift) and (chr(Key) in ['A', 'a']) then
button1.visible:=true;
и жмем на кнопку
puporev вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов процедуры Kashp Общие вопросы Delphi 4 31.03.2008 16:22
Вызов процедуры Stanislav Общие вопросы Delphi 9 22.11.2007 19:01
вызов процедуры из exe? Volkogriz Общие вопросы Delphi 9 16.11.2007 22:34
Вызов процедуры Илья Кибель Помощь студентам 7 17.09.2007 19:43
Вызов процедуры Monoflextor Общие вопросы Delphi 2 28.04.2007 17:32