"You'll never really learn to swear until you get a computer."
-- Unknown

Guys, this quote applies to me!!! :x

I have a background sprite with a sprite on top of it which is supposed to move but I can't seem to get it right. Help please :-)

Code:
unit GameU;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DXDraws, DXClass, DXSprite, DXInput, GifImage;



type
  TForm1 = class(TDXForm)
    DXDraw1: TDXDraw;
    DXImageList1: TDXImageList;
    DXTimer1: TDXTimer;
    DXSpriteEngine1: TDXSpriteEngine;
    DXInput1: TDXInput;
    procedure DXDraw1Initialize(Sender: TObject);
    procedure DXTimer1Timer(Sender: TObject; LagCount: Integer);
    procedure DXDraw1Finalize(Sender: TObject);
    procedure DXDraw1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DXDraw1KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
   procedure BackGround;
   procedure BallCreate;
    { Private declarations }
  public

    { Public declarations }
  end;

   // The BackGroundClass
 TBackground = class(TBackgroundSprite)
 end;

  //This is the ball class
 TBall = class(TImageSprite)
  private
  public
  procedure DoMove(MoveCount: Integer); override;
  end;

var
  Form1: TForm1;
  Ball : TBall;
  SBackground : TBackground;
  BallisDead : Boolean;
  MoveLeft, MoveRight : boolean;

implementation

{$R *.dfm}

Procedure TForm1.BackGround;
begin
  SBackground := TBackground.Create (form1.DXSpriteEngine1.Engine);
  with SBackground do
  begin
  image := form1.DXImageList1.Items.Find('skytree');
  image.Transparent := false;
  SetMapSize(1,1);
  Z := -10;
  Tile := false;
  end;
end;

procedure TForm1.BallCreate;
begin
  Ball := TBall.Create(DXSpriteEngine1.Engine);
  ball.Image := DXImageList1.Items.Find('Test');
  ball.X := 30;
  Ball.Y := 130;
  Ball.Width := Ball.Image.Width;
  Ball.Height := Ball.Image.Height;
  Ball.PixelCheck := False;
end;

procedure TBall.DoMove(MoveCount : integer);
begin
  if MoveRight then
  x := x + 50;
  if MoveLeft then
  x := x - 50;
end;

procedure TForm1.DXDraw1Initialize(Sender: TObject);
begin
  BallCreate;
  background;
  dxTimer1.Enabled := true;
end;

procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer);
begin
  if not DXDraw1.CanDraw then Exit;
  DXInput1.Update;
  DXSpriteEngine1.Move(1);
  DXSpriteEngine1.Draw;
  DXDraw1.Flip;
end;


procedure TForm1.DXDraw1Finalize(Sender: TObject);
begin
  dxTimer1.Enabled := false;
end;

procedure TForm1.DXDraw1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = vk_Left then MoveLeft := true;
  if Key = vk_Right then MoveRight := True;
end;

procedure TForm1.DXDraw1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key=VK_LEFT then moveleft := False;
  if key=VK_RIGHT then moveright := False;
end;

end.