Доброе время суток, господа. Создаю форму кидаю эдиты.....суть такова: надо чтобы в эдиты записывались комбинации клавиш нажатые в поле......думал думал.....обработал событие OnKeyDown...вот код:
Код:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var s: string;
begin
if (not (Sender is TLabeledEdit)) or ((Sender is TEdit) and
((Sender as TEdit).Name = TmpEdit.Name)) then
begin
TmpEdit.Text:= '';
exit;
end;
s:= '';
s:= ShortCutToText(ShortCut(Key, Shift));
if (Sender as TLabeledEdit).Text = s then exit;
ShortText:= s;
(Sender as TLabeledEdit).Text:= s;
end;
Не обращайте внимание что у меня FormKeyDown ее я назначил общую для всех эдитов. Ну вот вроде бы работает, но не совсем так как надо, а именно: при нажатии на Ctrl в эдит почему-то выводиться сочетание Ctrl+Ctrl.....

почему????? ведь клавишу одну нажал.......
и вообще почему-то не совсем корректно выдает сочетания клавиш......почему-то некоторые клавиши дублирует в названии...мож кто поможет.....а еще как мне запретить вводи символов в эдит.....чтобы даже не отображался при вводе......хочу чтоб там были тока сочетания клавиш. ShortCutToText(ShortCut(Key, Shift)) - эти процы я взял с Menu.pas, который есть в самой дельфе