![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Шоткаты [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;
Должно помочь -).