Форум: "Начинающим";
Текущий архив: 2010.12.12;
Скачать: [xml.tar.bz2];
ВнизГорячие клавиши Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.003 c