Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Шоткаты [D7, WinXP]


Domkrat ©   (2008-03-19 15:30:00) 

На главной форме, в главном меню есть кнопка с ShortCut = del, и на этой же форме есть TEdit.
Вопрос, как отключать срабатывание ShotCut в главном меню, в момент когда я редакирую в TEdit, TMemo etc..?


Игорь Шевченко   (2008-03-20 16:20:00) [1]


> Лучше копай(или капай капли) в направлении певого предложения
> из [3]


тут такой момент: Del действует не только на TCustomEdit


{RASkov}   (2008-03-20 15:38:00) [2]

> [5] Domkrat   (20.03.08 15:21)

Впрочем задача решаема...возможно... но зачем?!


{RASkov}   (2008-03-20 15:34:00) [3]

> [5] Domkrat   (20.03.08 15:21)
> Попробую еще покапать в этом направлении.

Лучше копай(или капай капли) в направлении певого предложения из [3] :) т.е.

> Не назначать такие горячии клавиши

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


Игорь Шевченко   (2008-03-20 15:31:00) [4]


> Спасибо всем, понял, что универсального лекарства от этого
> нет.


Есть. Не делать пункт главного меню с таким шорткатом


Domkrat   (2008-03-20 15:21:00) [5]

Спасибо всем, понял, что универсального лекарства от этого нет.

Я думал, что можно как то перехватить сообщение message на TAplication во время редактирования, например в TEdit, и запретить его отрабатываться в главном меню.    

Попробую еще покапать в этом направлении.


Kolan   (2008-03-20 11:34:00) [6]

> Ну, или обрабатывать ручками

Уж лучьше, имхо, там где надо Del в OnKeyDown ловить, чем такое делать вручную…


Leonid Troyanovsky   (2008-03-20 11:03:00) [7]


> Kolan ©   (20.03.08 09:57) [2]

> Правильный ответ я незнаю

Не назначать такие горячии клавиши :)

Ну, или обрабатывать ручками

procedure TForm1.N21Click(Sender: TObject);
begin
 if ActiveControl is TCustomEdit then
   with TCustomEdit(ActiveControl) do
     begin
       if SelLength = 0 then
         SelLength := 1;
         if SelText[1] = #13 then
           SelLength := 2;
       SelText := '';
     end;
end;

--
Regards, LVT.


Kolan   (2008-03-20 09:57:00) [8]

Правильный ответ я незнаю, но можно попробовать написать такой обработчик OnUpdate у Экшена.

procedure TForm1.Action1Update(Sender: TObject);
begin
 if Sender is TAction then
   (Sender as TACtion).Enabled := not Edit1.Focused;
end;


NewZ   (2008-03-19 23:26:00) [9]

У тебя главное меню. Кнопка называется допустим N1.
Тогда
N1.ShortCut := 'None' или N1.Enabled := False;

Должно помочь -).


Наверх

Титульная страница Поиск, карта сайта Написать письмо