AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Neuen Beitrag zur Code-Library hinzufügen Delphi Probleme mit TTimer durch andere Anweisungen
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit TTimer durch andere Anweisungen

Ein Thema von Benni0811 · begonnen am 26. Jan 2017 · letzter Beitrag vom 26. Jan 2017
 
Benni0811

Registriert seit: 26. Sep 2016
25 Beiträge
 
Delphi 10.1 Berlin Starter
 
#3

AW: Probleme mit TTimer durch andere Anweisungen

  Alt 26. Jan 2017, 12:23
Die Tastensteuerung:
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    case Key of
        vk_Left: begin
        Ship.Bild.Left:=Ship.Bild.Left-Pixel;
        if Ship.Bild.Left<0 then Ship.Bild.Left:=0;
        end;
        vk_Right: begin
        Ship.Bild.Left:=Ship.Bild.Left+Pixel;
        if Ship.Bild.Left+Ship.Bild.Width>Form1.Width then Ship.Bild.Left:=Form1.Width-Ship.Bild.Width;
        end;
        vk_Space: Ship.Shoot;
    end;
end;
Dieser Code stammt aus einem anderen Forum, anders hat es nicht funktioniert
Delphi-Quellcode:
type
  TForm1 = class(TForm)
  private
    procedure CMDialogKey(var Message: TCMDialogKey); message CM_DIALOGKEY;
  public
    { Public-Deklarationen }
  end;

...

procedure TForm1.CMDialogKey(var Message: TCMDialogKey);
begin
  with message do begin
    case charcode of
     vk_Left: begin
        Ship.Bild.Left:=Ship.Bild.Left-Pixel;
        if Ship.Bild.Left<0 then Ship.Bild.Left:=0;
    end;
        vk_Right: begin
        Ship.Bild.Left:=Ship.Bild.Left+Pixel;
        if Ship.Bild.Left+Ship.Bild.Width>Form1.Width-17 then Ship.Bild.Left:=Form1.Width-Ship.Bild.Width-17;
    end;
    vk_Space: Ship.Shoot;
    else
      inherited;
    end;
  end;
end;
Der Timer:

Delphi-Quellcode:
Procedure TForm1.ShotTimer(Sender: TObject);
begin
    if Sender=Ship.Shot.Timer then begin
        Ship.Shot.Bild.Top:=Ship.Shot.Bild.Top-Pixel;
        if Ship.Shot.Bild.Top+Ship.Shot.Bild.Height<=0 then Ship.Hit;
    end;
end;
TShot ist eine eigene Klasse mit eingebautem Timer, der hier erstellt wird:
Delphi-Quellcode:
Constructor TShot.Create(X,Y,W,H: Integer; AP: TForm);
begin
    inherited Create(x,y,w,h,ap);
    Timer:=TTimer.Create(AP);
    with Timer do begin
        Interval:=50;
        OnTimer:=Form1.ShotTimer;
        Enabled:=True;
    end;
end;
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz