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

Вниз

Ctrl+?, как поймать? Сама знаю, что глупо. :)   Найти похожие ветки 

 
deedlit ©   (2003-04-29 15:33) [0]

Сабж. Голая форма, нужно ловить нажатия типа Ctrl-F, Ctrl-X etc. TMainMenu использовать нельзя.

Я пыталась выставить для формы KeyPreview:=true и написать обработчик OnKeyPress...

If UpperCase(Key)="S" then
If ssShift in GetShiftState then RunAction;


Вот процедура для ловли состояния спецклавиш:

function TMainForm.GetShiftState: TShiftState;
begin
Result:=[];
If GetKeyState(VK_SHIFT)<0 then Include(Result, ssShift);
If GetKeyState(VK_CONTROL)<0 then Include(Result, ssCtrl);
If GetKeyState(VK_MENU)<0 then Include(Result, ssAlt);
end;


Я что-то упускаю, или делать нужно вообще по-другому?


 
Skier ©   (2003-04-29 15:36) [1]

А почему ты хочешь обрабатывать Ctrl-?, а проверяеть на
Shift ?

If UpperCase(Key)="S" then
If ssCtrl in GetShiftState then RunAction; Не поможет ?


 
UserMicc ©   (2003-04-29 15:38) [2]


2 Skier © (29.04.03 15:36):

ответ прост.. это - "ОНА"!


 
Skier ©   (2003-04-29 15:41) [3]

>UserMicc
Какая разница ОНА или ОН, лишь бы работало...


 
MBo ©   (2003-04-29 15:43) [4]

так не устроит?

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (ssCtrl in Shift) and (Key=Ord("S")) then ...
end;


 
Юрий Федоров ©   (2003-04-29 15:45) [5]

А почему не OnKeyDown ?


 
UserMicc ©   (2003-04-29 15:51) [6]


MBo © (29.04.03 15:43) прав, как и
Skier © (29.04.03 15:41)...


 
deedlit ©   (2003-04-29 16:11) [7]

To Skier:
> А почему ты хочешь обрабатывать Ctrl-?, а проверяеть на
> Shift ?

Тьфу, да опечаталась просто, когда вопрос писала. %)

To MBo:
> так не устроит?
Ой. Спасибо большое. Действительно, все работает. :)


 
MsGuns ©   (2003-04-29 16:47) [8]

Если надо ловить конкретное кол-во конкретных комбинаций Ctrl+.., то добавть TActionList с акциями по одной на каждую комбинацию. В ShortCut каждой акции укажи нужную комбинацию, а в обработчике пропиши алгоритм "реакции". В дальнейшем при необходимости можно эти экшины назначить элементам управления (пунктам меню, DropDown-меню, кнопкам и т.д.), не прописывая обработчики для всех подобных контролов.


 
kull ©   (2003-04-29 17:34) [9]


> MsGuns © (29.04.03 16:47)

Вот. Полностью поддерживаю! Енто и есть правильный подход.



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

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

Наверх




Память: 0.48 MB
Время: 0.014 c
3-34362
d_oleg
2003-04-22 16:41
2003.05.12
fib+ & BLOB


1-34387
SSK
2003-04-28 11:55
2003.05.12
выбор в TreeView


1-34434
dm37
2003-04-28 11:31
2003.05.12
Drag & Drop


1-34473
Ncm
2003-04-29 07:49
2003.05.12
сортировка Excel


1-34480
DDDeN
2003-04-25 16:56
2003.05.12
Передвижение TPanel по координатным осям