Autor |
Beitrag |
Tobias
Hält's aus hier
Beiträge: 7
|
Verfasst: Mo 14.10.02 21:46
hi leuts!
eine frage:
ich habe eine form, auf dieser form befindet sich 1 button, wie kann ich den dann im 2 sek. takt "wandern" lassen? der button soll sich alle 2 sek. an eine bestimmte koordinate bewegen. hab schon einiges ausprobiert, nur irgendwie will das nicht...
i hope i get help soon 
_________________ Greetz
Tobias
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Mo 14.10.02 22:04
Hi!
Mit einem Timer kannst Du dieses Zeitintervall realisieren. Wenn Du dann in das OnTimer-Ereignis einen Code setzt, der den Left- und Top-Wert des Buttons so ändert, wie Du es willst, solltest Du das bekommen, was Du haben willst.
MfG,
Peter
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
Tobias 
Hält's aus hier
Beiträge: 7
|
Verfasst: Di 15.10.02 14:40
könnte mir da jemand nen source für gegeben? bitte.
_________________ Greetz
Tobias
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Di 15.10.02 14:46
Hi!
Aber ohne Gewähr, mein Delhi ist noch nicht installiert, deswegen kann ich den Code nicht testen. Also, du suchst Dir in der Komponentenleiste von Delphi irgendwo die Komponente TTimer (sorry, weiß nicht auswendig, wo!)
Da setzt Du dann also zwei Eigenschaften: einmal musst du das Intervall in Millisekunden eingeben, dann musst Du mit Enabled angeben, ob der Timer schon zählen soll, oder nicht. Beide kannst Du auch während der Laufzeit setzen.
Der Timer hat ein OnTimer-Ereignis. Da schreibst Du folgenden Code rein:
Quelltext 1: 2:
| Button1.Left:=Button1.Left+10; Button1.Top:=Button1.Top+10; |
Ist Enabled=true und Intervall=1000 wird der Button jede Sekunde zehn Pixel nach Links und 10 nach unten springen.
MfG,
Peter
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
Tobias 
Hält's aus hier
Beiträge: 7
|
Verfasst: Di 15.10.02 14:50
danke  . das hat geklappt
_________________ Greetz
Tobias
|
|
LCS
      
Beiträge: 1305
Erhaltene Danke: 1
WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
|
Verfasst: Di 15.10.02 14:51
Naaa gut. Wer so schön bitte sagt
Formular mit einem Button und einem Timer.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
type TForm1 = class(TForm) Button1: TButton; Timer1: TTimer; procedure Button1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } x, y, vx, vy: Integer; public { Public-Deklarationen } end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject); begin Timer1.Enabled := not Timer1.Enabled; end;
procedure TForm1.Timer1Timer(Sender: TObject); begin x := x + vx; //Bewegung für x und y festlegen y := y + vy; //Button ist am linken Rand if x <= 0 then vx := vx * -1; //Button ist am rechten Rand if x >= ClientWidth - Button1.Width then vx := vx * -1; //Button ist am oberen Rand if y <= 0 then vy := vy * -1; //Button ist am unteren Rand if y >= ClientHeight - Button1.Height then vy := vy * -1; Button1.Left := X; Button1.Top := Y; end;
procedure TForm1.FormCreate(Sender: TObject); begin x := Button1.Left; y := Button1.Top; vx := 10; vy := 10; end;
end. |
Gruss Lothar
_________________ Der BH ist für die Brust, der Plan ist für'n Ar...
|
|
LCS
      
Beiträge: 1305
Erhaltene Danke: 1
WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
|
Verfasst: Di 15.10.02 14:54
Mal wieder zu spät. 
_________________ Der BH ist für die Brust, der Plan ist für'n Ar...
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Di 15.10.02 14:57
Dafür aber vollständiger als meins!
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
Frischling
Hält's aus hier
Beiträge: 10
|
Verfasst: Mi 16.10.02 16:00
hihu LCS....
ich habe Dein Beispiel einfach mal kopiert....
auf meine Form habe ich nen Button und nen Timer gesetzt.
tscha...nur passieren tut nix...
da kann ich auf dem Button rumklicken wie ich will der bewegt sich kein stück  (
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Mi 16.10.02 16:33
Hi!
Ich habe es gerade ausprobiert: der Code von LCS funktioniert.
Du solltest beachten: der Timer ist AKTIV, wenn das Programm startet, der erste "Hüpfer" kommt aber erst nach einer Sekunde. Kann es sein, dass Du direkt nach dem Start des Programmes auf den Button klickst?
MfG,
Peter
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|