Hi ich wollte meine Figur in meinem Fall ein image über den Bildschirm laufen lassen, was auch geht, aber auf ein klick ,eines Buttons im Formular, soll sich die geschwindigkeit ändern mit der sich die Figur bewegt. Das problem ist, dass sich solch ein Focus auf dem Button befindet den ich nicht loswerde. Mein vorschlag war dann die FormKeyDown prozedur in der ButtonClick prozedur mit einzubinden aber dann sagt mir Delphi es fehlen parameter. Ich weiß auch ehrlich gesagt nicht welche ich dort angeben soll.
hier mein code :
(die einzelnen bilder sind nur die perspektiven der Figur)
vielen Dank für eure Hilfe!
hier mein code :
(die einzelnen bilder sind nur die perspektiven der Figur)
implementation
var speed : integer;
{$R *.DFM}
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case Key of
VK_LEFT: begin
if (image1.visible=true) or (image2.visible=true) or (image4.visible=true)
then
begin
image1.visible:=false;
image3.visible:=true;
image4.visible:=false;
image2.visible:=false;
end;
Image1.Left := Image1.Left - speed;
Image2.Left := Image1.Left - speed;
Image3.Left := Image1.Left - speed;
Image4.Left := Image1.Left - speed;
Key := 0;
end;
VK_RIGHT: begin
if (image2.visible=true) or (image3.visible=true) or (image4.visible=true)
then
begin
image1.visible:=true;
image3.visible:=false;
image4.visible:=false;
image2.visible:=false;
end;
Image1.Left := Image1.Left + speed;
Image2.Left := Image1.Left - speed;
Image3.Left := Image1.Left - speed;
Image4.Left := Image1.Left - speed;
Key := 0;
end;
VK_UP: begin
if (image1.visible=true) or (image2.visible=true) or (image3.visible=true)
then
begin
image1.visible:=false;
image3.visible:=false;
image4.visible:=true;
image2.visible:=false;
end;
Image1.top := Image1.top - speed;
Image2.top := Image1.top - speed;
Image3.top := Image1.top - speed;
Image4.top := Image1.top - speed;
Key := 0;
end;
VK_DOWN: begin
if (image1.visible=true) or (image3.visible=true) or (image4.visible=true)
then
begin
image1.visible:=false;
image3.visible:=false;
image4.visible:=false;
image2.visible:=true;
end;
Image1.top := Image1.top + speed;
Image2.top := Image1.top - speed;
Image3.top := Image1.top - speed;
Image4.top := Image1.top - speed;
Key := 0;
end;
end;
if (image1.Top > 100) and (image1.left > 100) then
button1.visible:=true;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
speed:=speed+10;
formkeydown(Sender: TObject; var Key: Word; Shift: TShiftState);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
speed:=1;
image1.visible:=true;
image2.visible:=false;
image3.visible:=false;
image4.visible:=false;
end;
vielen Dank für eure Hilfe!