Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.12.12;
Скачать: CL | DM;

Вниз

Горячие клавиши   Найти похожие ветки 

 
faiwer ©   (2010-09-14 16:15) [0]

Удалено модератором
Примечание: Два вопроса - две ветки


 
Игорь Шевченко ©   (2010-09-14 19:40) [1]

RTFM: TCustomForm.OnShortCut


 
faiwer ©   (2010-09-17 18:35) [2]

И как мне его применить?

msg.CharCode -> номер нажатой клавиши
Handled -> передать ли код дальше

Итог. Если handled трогать, то надо каким то образом активной форме (стараюсь избегать таких костылей) отправлять сообщение о нажатии клавиши, в противном случае нажатие клавиши уходит в молоко. Если же не трогать, то срабатывает ShortCut =(

И что насчёт второго вопроса?)


 
faiwer ©   (2010-09-17 19:53) [3]

Решил проблему убрав ShortCut из Action-ов, и насильно вбил их в PopurMenu. После того как в TMainMenu пропали ShortCut-ы глюк с их обработкой при открытых других окнах пропал. Но всё же хотелось бы услышать не индусский вариант ) К примеру у вас есть бинд vk_Delete на удаление выделенного объекта и вы хотите продублировать эти функции в KeyUp, в контекстное меню и главное меню. Как вы поступите? Если вы зададите в TMainMenu пункту ShortCut, то он не даст вам в обычных Edit-ах и прочих элементах стирать текста (если насильно не ловить сообщения и не передавать в активные контролы). Либо же отказываться от заманчивой надписи "Удалить   Del" в пункте меню


 
Ega23 ©   (2010-09-17 21:06) [4]


> . Как вы поступите?

Заведу TActionList, в нём заведу TAction, напишу ему Caption, ShortCut, ImageIndex и т.д.
Задам ему обработчики OnExecute, OnHint, OnUpdate

После чего назначу этот Action и нужному MenuItem в PopupMenu, в MainMenu, кнопке на ToolBar и вообще, куда захочу, туда и назначу.
Для этого они и придуманы.


 
faiwer ©   (2010-09-17 21:17) [5]

Ega23, я так и сделал, и получил:
1. в динамически создаваемых формах работают ShortCut-ы формы родителя (бред да?)
2. ShortCut-ы вроде vk_delete блокируют адекватную работу контролов вроде TEdit


 
faiwer ©   (2010-09-17 21:20) [6]

Причём это из-за наличия ShortCut в пунктах главного меню, которое задаётся из-за привязки к TAction. Причём если насильно стереть его в свойствах TMenuItem, оно восстанавливается при компиляции (или загрузке формы ). Разве что править их уже в ран-тайме, может поможет, не проверял


 
Ega23 ©   (2010-09-17 22:11) [7]


> 1. в динамически создаваемых формах работают ShortCut-ы
> формы родителя (бред да?)


Что значит "динамически создаваемая форма"? Они все динамически создаются, если чё.


> Причём если насильно стереть его в свойствах TMenuItem,
> оно восстанавливается при компиляции (или загрузке формы).

Бред какой-то пишешь.


 
faiwer ©   (2010-09-18 00:14) [8]


> Что значит "динамически создаваемая форма"? Они все динамически
> создаются, если чё.


Я имею ввиду мною, я делаю это так:


>   form: TForm;
>   form:=TFlatF.EditRecord(sell,ID[num]);
>
>   constructor EditRecord(aSell: boolean; aNum: integer);
>
>   constructor TFlatF.EditRecord(aSell: boolean; aNum: integer);
>
>   begin
>     inherited Create(Application);
>     ...
>     Show;
>   end;


При этом в ней (новосозданной и отображённой форме срабатывают шоткеи главной формы! о_О


> Бред какой-то пишешь.


Помести на форму TMainMenu, создай там 1 пункт меню. Создай 1 TAction, присвой ему хоткей, назначь етому пункту меню этот экшн, убери у этого TMenuItem хоткей, запусти программу и ... он на месте.


 
Ega23 ©   (2010-09-20 11:06) [9]


> убери у этого TMenuItem хоткей, запусти программу и ...
> он на месте.


Естественно. Action-то остался. У тебя по хоткею не MenuItemClick происходит, а Action.Execute


 
faiwer ©   (2010-09-20 14:01) [10]


> Естественно. Action-то остался. У тебя по хоткею не MenuItemClick
> происходит, а Action.Execute

Ну это и ежу понятно, а ты сам вопрос то читал? (первый пост)


 
Ega23 ©   (2010-09-20 14:21) [11]


> Ну это и ежу понятно, а ты сам вопрос то читал? (первый
> пост)

А ты возьми и сам его прочитай. Я, например, нишиша не понял, чего тебе надо.


 
faiwer ©   (2010-09-20 14:25) [12]

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



Страницы: 1 вся ветка

Текущий архив: 2010.12.12;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.006 c
15-1283632175
Юрий
2010-09-05 00:29
2010.12.12
С днем рождения ! 5 сентября 2010 воскресенье


11-1226496136
Лотос
2008-11-12 16:22
2010.12.12
При использовании NewStrList() создаётся не пустой список


11-1226732009
MTsv DN
2008-11-15 09:53
2010.12.12
Работа с LVItemData


2-1284824389
Festil
2010-09-18 19:39
2010.12.12
Влияние действий друг на друга


8-1208284573
SSSS
2008-04-15 22:36
2010.12.12
Программа на прдобие MP3Splittet