![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
На форме есть поля TEdit, для которых сделан ограничитель ввода знаков типа:
Код:
procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if NOT (Key in ['0'..'9', ',', #8, '-']) then
Key:=#0;
end;При этом перестали реботать "служебные" комбинации клавиш "копировать-вырезать-вставить" Ctrl-C-X-V соответственно, (но продолжают работать комбинации Ctrl-Ins, Ctrl-Del, Shift-Ins). Как сохранить первую группу служебных комбинаций? |
|
#2
|
||||
|
||||
|
Отслеживай нажат ли Ctrl, например так:
Код:
var
IsCtrl: Boolean;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not IsCtrl then
if NOT (Key in ['0'..'9', ',', #8, '-']) then
Key:=#0;
end;
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if ssCtrl in Shift then IsCtrl:= True;
end;
procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
IsCtrl:= False;
end;
|
|
#3
|
|||
|
|||
|
Спасибо!
Все работает! Воспользуюсь. |