Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Probelme bei Tastensteuerung (https://www.delphipraxis.net/63177-probelme-bei-tastensteuerung.html)

Koki 14. Feb 2006 22:39


Probelme bei Tastensteuerung
 
ich hab probleme bei einem programm.
ich hab mich schon beschaäftig mit delphi und ich komme nicht weiter ich habe tastensteuerung eigebaut, die nicht funzt, er gibt keine fehlermeldung aus, sondern im programm bewegen sich meine raumschiffe nicht hilfe hier mein programmcode (benutzt delphi 7 oder delphi 2005 aber mit win32 oberfläche):

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    MainMenu1: TMainMenu;
    Datei1: TMenuItem;
    Start1: TMenuItem;
    Beenden1: TMenuItem;
    Timer1: TTimer;
    Image4: TImage;
    procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure Beenden1Click(Sender: TObject);
    procedure Start1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  a,b,i,x,y:integer;

implementation

{$R *.dfm}

procedure TForm1.Start1Click(Sender: TObject);
 begin
  x:=0; y:=0;
  image1.picture.loadfromfile('space2.bmp');
  image2.picture.loadfromfile('terran1-big1.bmp');
  image3.picture.loadfromfile('ufo2-big3.bmp');
  image1.Left:=x;
  image1.Top:=y;
  timer1.Enabled:=false;
 end;

procedure Tform1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
 var h: integer;
 begin
  form1.Caption:=inttostr(key);
  if key=37 then inc(x);
  if key=38 then dec(x);
  if key=39 then inc(y);
  if key=40 then dec(y);
  {if key=32 then
   begin
    i:=0;
    h:=0;
    image4.picture.loadfromfile('bullet1.bmp');
    image4.Left:=a;
    image4.Top:=b;
    repeat
     begin
      inc(a);
      h:=h+1;
      if h=50 then i:=1;
     end;
    until i=1;
   end; }
 end;

procedure Tform1.Timer1Timer(Sender: TObject);
 begin
      // inc(x);
      image2.Left:=x;
      image2.top:=y;
 end;

procedure TForm1.Beenden1Click(Sender: TObject);
 begin
  close;
 end;

end.

Klaus01 15. Feb 2006 06:31

Re: Probelme bei Tastensteuerung
 
Morgen,

sollte es nicht
Zitat:

if key=37 then inc(x);
if key=38 then dec(x);
if key=39 then inc(y);
if key=40 then dec(y);
if key=#37 then inc(x); etc. heißen?

Eventuell keyPreview der Form auf true stellen.

Vielleicht mal mit step/trace durch den Code gehen und schauen ob
eine Deiner if anweisungen true wird.

Grüße
Klaus

Koki 15. Feb 2006 15:33

Re: Probelme bei Tastensteuerung
 
also das war es nicht aber ich hab auch noch keine lösung gefunden

und mit dem step/trace weiss ich nicht wie es funktioniert :(

trotzdem danke erstmal und ich hoffe es kann mir ein anderer helfen :?:

inherited 17. Feb 2006 13:17

Re: Probelme bei Tastensteuerung
 
Stell erstmal sicher das der Timer auch Enabled ist, sonst weiss ich es auch nich

Zitat:

procedure Tform1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var h: integer;
begin
form1.Caption:=inttostr(key);
if key=37 then inc(x);
Was kommt denn bei der Caption raus, wird da der Key denn richtig angezeigt?

Koki 20. Feb 2006 11:03

Re: Probelme bei Tastensteuerung
 
es hat funktioniert

der timer war schuld im quelltext stand bei enable=false in den ereignissen =true deswegen ist er durcheinander gekommen wahrscheinlich

danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz