Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1282803046
xayam
2010-08-26 10:10
2010.12.12
Модераторам/администраторам


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


2-1283764789
SIV5000
2010-09-06 13:19
2010.12.12
Прозрачний PNG


2-1284966047
istok
2010-09-20 11:00
2010.12.12
узнать время начала сессии пользователя..


2-1284816023
KuJIoBaT
2010-09-18 17:20
2010.12.12
ValueListEditor





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский