unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
Image2: TImage;
Image3: TImage;
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
type Trotate = array[0..0] of TRGBQuad;
procedure bilddrehen(const Bitmap: TBitmap);
var P: PRGBQuad;
x,y,b,h : Integer;
RowOut: ^Trotate;
help: TBitmap;
begin
Bitmap.PixelFormat := pf32bit;
help := TBitmap.Create;
try
help.PixelFormat := pf32bit;
b := bitmap.Height;
h := bitmap.Width;
help.Width := b;
help.height := h;
for y := 0 to (h-1) do
begin
rowOut := help.ScanLine[y];
P := Bitmap.scanline[bitmap.height-1];
inc(p,y);
for x := 0 to (b-1) do
begin
rowout[x] := p^;
inc(p,h);
end;
end;
finally
bitmap.Assign(help);
help.Free;
end;
end;
procedure fahrtost;
begin
Image2.Left:=Image2.Left+5;
end;
procedure fahrtwest;
begin
Image2.Left:=Image2.Left-5;
end;
procedure fahrtnord;
begin
Image2.top:=Image2.top-5;
end;
procedure fahrtsued;
begin
Image2.top:=Image2.top+5;
end;
var i:integer;
begin
//If Key=vk_up then Image3.Left:=Image3.Left+5;
//If Key=vk_down then Image3.Left:=Image3.Left-5;
//If Key=vk_left then Image3.Top:=Image3.Top+-5 ;
//If Key=vk_right then Image3.Top:=Image3.Top+5 ;
//If Key=vk_numpad4 then Image2.Top:=Image2.Top+-5 ;
//If Key=vk_numpad6 then Image2.Top:=Image2.Top+5 ;
If Key=vk_left then
begin
for i:=1 to 3 do
bilddrehen(image2.picture.bitmap);
end;
If Key=vk_right then
begin
bilddrehen(image2.picture.bitmap) ;
end;
If Key=vk_numpad4 then
begin
for i:=1 to 3 do
bilddrehen(image3.picture.bitmap);
end;
If Key=vk_numpad6 then bilddrehen(image3.picture.bitmap) ;
If (GetAsyncKeyState(vk_numpad8)<>0) then Image3.Left:=Image3.Left+5;
If (GetAsyncKeyState(vk_numpad2)<>0) then Image3.Left:=Image3.Left-5;
If Key=vk_up then fahrtost;
If Key=vk_down then fahrtwest;
if key=vk_numpad6 then fahrtsued;
if key=vk_numpad4 then fahrtnord;
end;
end.