Einzelnen Beitrag anzeigen

byte

Registriert seit: 1. Mai 2008
6 Beiträge
 
Delphi 2007 Professional
 
#20

Re: Kasten mit Pfeiltasten bewegen

  Alt 2. Mai 2008, 17:45
1. hab ich in der codelib nix gefunden.
2. ich hab jetzt selbst was neues geschrieben. buttonlos. timage, die sich bewegen soll mit taste drücken/loslassen.
und ich hab mich eigtl stark an dem boxprogramm orientiert. aber wenn ich tasten drück, passiert nix.
dann hab ich in den timer gesetzt, dass sich bewegen soll, dann tuts. also an sich ist nix falsch, es wird nur ned aktiviert.

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TForm1 = class(TForm)
    link: TImage;
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure FormKeyRelease(Sender: TObject; var Key: Word; Shift: TShiftState);
  private
    { Private-Deklarationen }
  public
  x, y :integer;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin

if key=VK_left then x:=-1;
if key=VK_right then x:=1;
if key=VK_up then y:=-1;
if key=VK_down then y:=1;
end;


procedure TForm1.FormKeyRelease(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if key=VK_left then x:=0;
if key=VK_right then x:=0;
if key=VK_up then y:=0;
if key=VK_down then y:=0;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
link.left:=link.left+1;

if link.Top>425 then link.Top:=-24;
if link.Left>425 then link.Left:=-24;
if link.Top<-24 then link.Top:=425;
if link.Left<-24 then link.Left:=425;

link.Top:=link.Top+y;
link.Left:=link.Left+x;
end;

end.
image heißt link, weil soll n held sein x)
mit diesemlink.left:=link.left+1; bewegt sichs halt generell. daran sieht man halt, dasses an sich tun müsste.
und die 425 sind halt die bildgrenzen, damits nicht ins nix laufen kann..
kann mir nun wer sagen, worans liegt?
  Mit Zitat antworten Zitat