AGB  ·  Datenschutz  ·  Impressum  







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

Figur und Button

Ein Thema von Coxy · begonnen am 4. Mai 2011 · letzter Beitrag vom 5. Mai 2011
Antwort Antwort
Coxy

Registriert seit: 27. Mär 2011
28 Beiträge
 
#1

Figur und Button

  Alt 4. Mai 2011, 18:46
Delphi-Version: 5
Hallo,
ich habe eine letzte Frage:
ich habe eine Figur die ich mit den Pfeiltasten steuere und mehrere Buttons.
Solange diesen Buttons jedoch da sind kann ich meine Figur nicht bewegen.
Stattdessen kann man dann mit den Pfeiltasten die Markierung der Buttons ändern (also wenn ich rechts drücke, dann wird der rechte Markiert, so dass man zur Bestätigung nur noch Enter drücken muss).
Wie kann ich das am leichtesten beheben?

PS: meine figur bewegt sich über die Formulare/Funktionen onkeydown und onkeyup

Grüße
  Mit Zitat antworten Zitat
Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#2

AW: Figur und Button

  Alt 4. Mai 2011, 18:49
Probier mal, ob es dein Problem behebt, wenn du die Eigenschaft KeyPreview deines Formulars auf true stellst
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/
  Mit Zitat antworten Zitat
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Figur und Button

  Alt 4. Mai 2011, 19:01
und in diesen Proceduren evtl noch am Schluss key:=0 einfügen.
2. Möglichkeit, die Tasten WASD benutzen, wie sie ja in den meisten Spielen heute benutzt werden.

Gruss alfold
  Mit Zitat antworten Zitat
Coxy

Registriert seit: 27. Mär 2011
28 Beiträge
 
#4

AW: Figur und Button

  Alt 4. Mai 2011, 19:12
also keypreview auf true zu stellen hat leider nichts bewirkt

und @alfold
meinst du das hier?
Delphi-Quellcode:
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin

if key = vk_up then hoch:= 0;
if key = vk_down then runter:=0;
if key = vk_left then links :=0;
if key = vk_right then rechts :=0;
end;
habt ihr vielleicht sonst noch Vorschläge?
  Mit Zitat antworten Zitat
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Figur und Button

  Alt 4. Mai 2011, 19:19
ne so nicht
Delphi-Quellcode:
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
//hier deine keyabfragen
.....
.....
.....
// und zum schluss
key:=0;
end;
Gruss alfold
  Mit Zitat antworten Zitat
Coxy

Registriert seit: 27. Mär 2011
28 Beiträge
 
#6

AW: Figur und Button

  Alt 4. Mai 2011, 20:09
hat leider auch nicht funktioniert.
Woran könnte es sonst liegen?
Oder hat jemand irgendeine andere Idee?
Grüße
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider
Online

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Figur und Button

  Alt 4. Mai 2011, 21:56
Hi,

du musst verhindern, dass der Focus zum Button kommt bzw. bleibt. Ich habe das mal irgendwo gebraucht und dann über ein unsichtbares Edit gelöst:

Delphi-Quellcode:
type
  TfrmMain = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure FormShow(Sender: TObject);
  private
    FEdit: TEdit;
    procedure LockFocus;
    procedure CreateFocusEdit;
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.dfm}

procedure TfrmMain.FormCreate(Sender: TObject);
begin
  CreateFocusEdit;
end;

procedure TfrmMain.Button1Click(Sender: TObject);
begin
  MessageDlg('Button 1', mtWarning, [mbOK], 0);
  LockFocus;
end;

procedure TfrmMain.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  MessageDlg('KeyUp', mtInformation, [mbOK], 0);
  Key := 0;
end;

procedure TfrmMain.LockFocus;
begin
  if FEdit.CanFocus then
    FEdit.SetFocus;
end;

procedure TfrmMain.CreateFocusEdit;
begin
  FEdit := TEdit.Create(Self);
  FEdit.Width := 0;
  FEdit.Height := 0;
  FEdit.Left := 0;
  FEdit.Top := 0;
  FEdit.Parent := Self;
end;

procedure TfrmMain.FormShow(Sender: TObject);
begin
  LockFocus;
end;
...
[EDIT]Alternative wäre TSpeedButton anstatt TButton...[/EDIT]

Frank
Frank Reim

Geändert von dataspider ( 4. Mai 2011 um 22:03 Uhr)
  Mit Zitat antworten Zitat
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#8

AW: Figur und Button

  Alt 4. Mai 2011, 22:08
[OT] Mal ne andere Frage. Gibt es heute noch Spiele die mit den Kursortasten bedient werden?[/OT]
Alternativ währe ja WASD als Bewegungstasten zu nehmen

Gruss alfold
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#9

AW: Figur und Button

  Alt 5. Mai 2011, 09:13
Ich mag die Cursortasten aber und ja, ich nutze sie sehr oft.
(für rechtshändige Einhandspieler sind diese auch noch sehr gut positioniert)

PS: Die SuFu sagt:
http://www.delphipraxis.net/159947-d...n-bewegen.html
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:59 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