ПОМОГИТЕ Плиз с делфи!
Почему код в делфи не работает?
procedure TForm1.Button1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_RIGHT then
image1.Left:=image1.Left+3;
end;
исправьте как правильно, я хотел сделать типа при задержки на стрелку вправо изображение двигается постоянно на 3 пиксела вправо
1. Свойство KeyPreview какое имеет значение? true или false?
2. Попробуй вместо VK_RIGHT $27
3. Для чего кнопка на форме- непонятно (да и зачем она нужна вообще) , не проще ли использовать событие OnKeyDown.
4. А чем обработка нажатия правой кнопки мыши не нравится?
Пример:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Hi(GetKeyState(VK_RBUTTON)) > 0 then
image1.Left:=image1.Left+Image1.Width;
end;
она бутет срабатывать только один раз при нажатии на кнопку
А зачем вам какая-то кнопка? Обрабатывайте событие в форме.
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_RIGHT then image1.Left:=image1.Left+3;
end;
потому что это событие сработает только один раз - когда ты нажмешь мышку. .
альтернатива. .
по KeyDown ты запускаешь таймер, который будет делать то, что тебе нужно, сдвигать на 3 пиксела. .
по KeyUp ты отрубаешь таймер и оно перестает сдвиагться. .
частоту таймера выставишь нужную и все норм будет