Делаю свою клавиатуру.
не знаю правильно ли делаю, но выбрал такой путь.
на форме допустим 10 TButton. tag от 1 до 10 соотвественно
создаю процедуру , всем 10 кнопкам устанавливаю ее на OnMouseDown
procedure TForm1.Timer1Timer(Sender: TObject);
begin
KeyDown(Timer1.tag);
end;
procedure TForm1.KeyDown(NUM: Byte);
begin
case NUM of
1: label1.text:=label1.text+'нажата 1';
2: label1.text:=label1.text+'нажата 2';
3: label1.text:=label1.text+'нажата 3';
...
end;
не является ли это большим костылем ? там где label1.text:=label1.text+'нажата 1'; буду отсылать своей процедуре код нажатой клавиши
Вопрос
MaratBest
Делаю свою клавиатуру.
не знаю правильно ли делаю, но выбрал такой путь.
на форме допустим 10 TButton. tag от 1 до 10 соотвественно
создаю процедуру , всем 10 кнопкам устанавливаю ее на OnMouseDown
ButtonMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); begin KeyDown(TControl(Sender).Tag); timer1.Tag:=TControl(Sender).Tag; Timer1.Enabled:=true; end;
на OnMouseUp такой код(всем кнопкам)
ButtonMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); begin Timer1.Enabled:=false; end;
обработка таймера (interval 500)
procedure TForm1.Timer1Timer(Sender: TObject); begin KeyDown(Timer1.tag); end;
procedure TForm1.KeyDown(NUM: Byte); begin case NUM of 1: label1.text:=label1.text+'нажата 1'; 2: label1.text:=label1.text+'нажата 2'; 3: label1.text:=label1.text+'нажата 3'; ... end;
не является ли это большим костылем ? там где label1.text:=label1.text+'нажата 1'; буду отсылать своей процедуре код нажатой клавиши
Изменено пользователем MaratBestСсылка на комментарий
7 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.