Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Verschieben von Buttons mit Befehl [Anfängerfrage] (https://www.delphipraxis.net/109159-verschieben-von-buttons-mit-befehl-%5Banfaengerfrage%5D.html)

Landfloh 25. Feb 2008 13:56


Verschieben von Buttons mit Befehl [Anfängerfrage]
 
Hallo

Ich möchte mit einem Befehl einen Button verschieben.

Wenn ich Cursor oben drücke soll der button nach oben gehen wenn ich nach unten mit dem Cursor drücke soll der Button nach unten gehen wenn nach links dann nach links und wenn nach rechts dann nach rechts.

Was muss ich reinschreiben wenn ich in das Ereignis Form1 und da auf OnKeyPress gehe?

Gruf Landfloh :bouncing4: :bounce1: :bounce2: :firejump:

MrMyagi 25. Feb 2008 14:03

Re: Verschieben von Buttons mit Befehl [Anfängerfrage]
 
Moin,
mit Button1.left bzw Button1.Top müsste es gehen
und wegen Tastenabfrage solltest Du mal nach
GetKeyState suchen.


mfG, Nico

Edit: Fehler verbessert :oops:

Landfloh 25. Feb 2008 14:06

Re: Verschieben von Buttons mit Befehl [Anfängerfrage]
 
Und warum geht denn das nicht?

Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = 'VK_DOWN' then Button1.left := 1;
end;
:?: :?: :?:

mkinzler 25. Feb 2008 14:09

Re: Verschieben von Buttons mit Befehl [Anfängerfrage]
 
Left und Top
[Edit: .Left setzt die Position:
Delphi-Quellcode:
if Key = 'VK_DOWN' then Button1.left := Button1.left - 1;
]

MrMyagi 25. Feb 2008 14:10

Re: Verschieben von Buttons mit Befehl [Anfängerfrage]
 
bau das ganze doch in einen Timer ein und dann mit

Delphi-Quellcode:

  if GetAsyncKeyState(VK_DOWN) then Button1.left := 1;

Xong 25. Feb 2008 14:13

Re: Verschieben von Buttons mit Befehl [Anfängerfrage]
 
Zitat:

Zitat von Landfloh
Und warum geht denn das nicht?
Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  // Wenn "Nach-Unten"-Taste gedrückt wurde, setze Button.left auf 1. Öhm...
  //if Key = 'VK_DOWN' then Button1.left := 1;
  case Key of
    VK_DOWN: Button1.Top := Button1.Top + 1;
    VK_UP: Button1.Top := Button1.Top - 1;
    {...}
  end;
end;


Landfloh 25. Feb 2008 14:15

Re: Verschieben von Buttons mit Befehl [Anfängerfrage]
 
Zitat:

Zitat von mkinzler
Left und Top

Delphi-Quellcode:
if Key = 'VK_DOWN' then Button1.left := Button1.left - 1;

Das mit left steht da doch und es functioniert nicht.
Mit top geht es auch nicht.

DeddyH 25. Feb 2008 14:16

Re: Verschieben von Buttons mit Befehl [Anfängerfrage]
 
Zitat:

Zitat von Xong
Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  // Wenn "Nach-Unten"-Taste gedrückt wurde, setze Button.left auf 1. Öhm...
  //if Key = 'VK_DOWN' then Button1.left := 1;
  case Key of
    VK_DOWN: Button1.Top := Button1.Top + 1;
    VK_UP: Button1.Top := Button1.Top - 1;
    {...}
  end;
end;

Müsste das so nicht in KeyDown stehen?

Landfloh 25. Feb 2008 14:19

Re: Verschieben von Buttons mit Befehl [Anfängerfrage]
 
Zitat:

Zitat von Xong
Zitat:

Zitat von Landfloh
Und warum geht denn das nicht?
Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  // Wenn "Nach-Unten"-Taste gedrückt wurde, setze Button.left auf 1. Öhm...
  //if Key = 'VK_DOWN' then Button1.left := 1;
  case Key of
    VK_DOWN: Button1.Top := Button1.Top + 1;
    VK_UP: Button1.Top := Button1.Top - 1;
    {...}
  end;
end;


Dann kommen die Fehlermeldungen:
[Fehler] Unit1.pas(29): Inkompatible Typen: 'Char' und 'Integer'
[Fehler] Unit1.pas(30): Inkompatible Typen: 'Char' und 'Integer'

:?: :?:

STS301 25. Feb 2008 14:26

Re: Verschieben von Buttons mit Befehl [Anfängerfrage]
 
dann versuche es unter KeyDown


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:19 Uhr.
Seite 1 von 2  1 2      

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