AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problemme mit FormKeyDown

Ein Thema von ferby · begonnen am 25. Dez 2005 · letzter Beitrag vom 15. Nov 2011
 
Possseidon

Registriert seit: 15. Nov 2011
11 Beiträge
 
Delphi XE3 Professional
 
#6

AW: Problemme mit FormKeyDown

  Alt 15. Nov 2011, 18:48
hi!

also ich glaub beim programmieren musst du noch einiges lernen
(bin zwar erst 14 kenn mich aba schon recht gut damit aus)

du solltest vor allem alles mit EINEM timer machen wenn du sowas programmierst!!! wenn du mit mehreren arbeitest kann es dazu kommen das dein PC ziehmlich stockt... (ich rede da aus eigener erfahrung )

für die schüsse legst du dir einfach im private teil deines forms ne variable vom Typ Integer an (z.B. Reload) dann tust du diese Variable in deiner tiemr procedure einfach immer um eins erhöhen und wenn Reload größer ist als ein bestimmter Wert (könntest du auch in ne Variable schreiben) dann soll er schiesen und Reload wieder auf 0 setzten.
Das ganze könnte dann in etwa so aus sehn:

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Inc(Reload); // Oder halt: Inc(Reload, 1);
  if Reload >= ReloadMax then
  begin
    // Hier nen neuen Schuss erstellen

    Reload := 0;
  end;
end;
Ich hoffe wirklichm dass du wenigstens schon weist was arrays oda sind, weil sonst kanns du immer nur einen schuss abfeuern der einer Variable abgespeichert wird (arrays haben im Prinzip mehrere Variablen in einer nur falls dus nicht weist)...

Ich hoffe ich hab dich mit dem allen jetzt nicht zu arg abgeschreckt...
Viel Spaß weiterhin beim Programmieren!

(Jeder fängt mal klein an )

Ach und das ich nicht komplett vom Thema abweich in dem es hier eigentlich geht...

Falls du noch keine gute Lösung für das KeyDown zeugs gefunden hast:

du kannst dir im private Teil des Forms einfach für jede Taste die du benutzt (Also: Left, Right, etc) einfach eine Boolean anlegen, also ein Wahr-Falsch. Ich kann dir hier mal en Beipsiel geben:

Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  // Hier wird die Taste auf True gesetzt

  case Key of
    VK_LEFT:
      Left := True;
    VK_RIGHT:
      Right := True;
    VK_UP:
      Up := True;
    VK_DOWN:
      Down := True;
    VK_SPACE:
      Space := True;
  end;
end;

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  // und hier auf False wenn sie wieder hoch geht

  case Key of
    VK_LEFT:
      Left := False;
    VK_RIGHT:
      Right := False;
    VK_UP:
      Up := False;
    VK_DOWN:
      Down := False;
    VK_SPACE:
      Space := False;
  end;
end;
und dann kannst du einfachen in deiner TimerProc schauen ob z.B. Left wahr ist

manmanman... soviel hab ich glaub ich nochnie geschrieben... Bin dir nicht böse wenn es dir zuviel wurde...

Stehe dir aber natürlich weiterhin für Fragen über Delphi offen

Ich könnte dir noch viel mehr über das ganze erzählen, aber fürss erste eichts hoffenltich...

Edit:

ups jetzt fällt mir erst auf wie alt dieser Thread schon ist...
was solls XD
KEINE HAFTUNG AUF RECHTSCHREIBFEHLER
  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 13:54 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