Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.08.2009, 14:33   #1
guffer
Пользователь
 
Регистрация: 07.07.2009
Сообщений: 58
Плохо Клавиатура и delphi

Компилятор ругается на if key = vk_NumPad2 then,говорит [Error] Unit1.pas(58): Incompatible types
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
timer1.Enabled:=true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
image1.Top:=random(900);
image1.Left:=random(600);
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
if image2.Left = image1.Left then
begin
timer1.Enabled:=false;
timer2.Enabled:=false;
showmessage('you lose!');
end
else
timer2.Enabled:=true;
end;


procedure Key2(Sender: TObject; var Key: Char);
begin
if key = vk_NumPad2 then
begin
form1.Image2.Top:=form1.Image2.Top + 1;
end
else
form1.Timer1.Enabled:=true;
end;



procedure Key8(Sender: TObject; var Key: Char);
begin
if key = vk_NumPad8 then
begin
form1.Image2.Top:=form1.Image2.Top - 1;
end
else
key2
end;

procedure Key6(Sender: TObject; var Key: Char);
begin
if key = vk_NumPad6 then
begin
form1.Image2.Left:=form1.image2.Left + 1;
end
else
key8
end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key = vk_NumPad4 then
begin
image2.Left:=image2.Left - 1;
end
else
key6
end;

end.
guffer вне форума Ответить с цитированием
Старый 18.08.2009, 14:35   #2
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Цитата:
Код:
procedure Key2(Sender: TObject; var Key: Char);
Код:
  VK_NUMPAD2 = 98;
Разница видна?
psycho-coder вне форума Ответить с цитированием
Старый 18.08.2009, 14:39   #3
guffer
Пользователь
 
Регистрация: 07.07.2009
Сообщений: 58
По умолчанию

Цитата:
Сообщение от psycho-coder Посмотреть сообщение
Код:
  VK_NUMPAD2 = 98;
Разница видна?
Не понял...
guffer вне форума Ответить с цитированием
Старый 18.08.2009, 14:42   #4
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

VK_NUMPAD2 - это константа кода клавиши (сделайте Ctrl + Click по ней). Она имеет тип Integer, а у Вас в программе тип Char. Вот Вам и говорит компилятор, что Несоответствие/Смешение типов (Incompatible types).
psycho-coder вне форума Ответить с цитированием
Старый 18.08.2009, 15:11   #5
guffer
Пользователь
 
Регистрация: 07.07.2009
Сообщений: 58
По умолчанию

Я сделал так:
Код:
procedure Key2(var Key: word);
begin
if key = vk_NumPad2 then
то есть вместо Key: Char поставил Key: word.Вроде заработало.
guffer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Клавиатура Fenix_Elite Общие вопросы Delphi 5 23.11.2008 08:02
Клавиатура не работает ViNcHeStEr Компьютерное железо 1 04.07.2008 15:52
Клавиатура RealSHELS Общие вопросы Delphi 6 29.03.2008 15:52
Клавиатура Pusher Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 22.03.2008 00:47
клавиатура с Delphi Илюха Общие вопросы Delphi 4 04.11.2007 19:20