Autor Beitrag
Savos12
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18



BeitragVerfasst: Sa 27.03.10 18:03 
hallo Mitglieder,
Ich möchte zur Zeit ein Spiel programmieren.
Immer wenn ich auf den Button klicke, soll dieser sich zufällig auf der Form verschieben. Das klappt soweit auch, jedoch nach ein paar klicks sehe ich den Button nicht mehr, weil er sich zu weit verschoben hat. Wenn ich also die Anwendung durch ziehen vergrößere kann ich ihn wieder anklicken. Da liegt dann auch mein Problem. Wie kann ich das anstellen, dass er sich nur auf der sichtbaren Form verschiebt. versteht ihr wie ich meine?

Hier Mein Quelltext:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
implementation


{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  randomize;
  form1.Color:= RGB(random(255)+1, random(255)+1, random(255)+1); // soll nur zum Spass die Farbe ändern (funktioniert)

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  randomize;
  button1.Left:= random(button1.Width+(form1.Width)+1); //soll den Button nach links bzw rechts verschieben (funktioniert)
  button1.Top:= random(button1.Height+random(form1.Height)+1);// soll den Butten nach oben und unten verschieben (funktioniert)

end;

end.


Ich glaube mein Problem ist nicht allzukompliziert..
danke

Moderiert von user profile iconKha: Delphi-Tags hinzugefügt
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Sa 27.03.10 18:31 
Hi,
Du schickst den Button ja auch "aus" Deiner Form!
ausblenden Delphi-Quelltext
1:
Button1.left := Button1.Width + Form1.Width					

ist also um Button1.width grösser als deine Form!
Wenn er innerhalb deiner Form bleiben soll must Du das berücksichtigen!

Bitte schreibe Deinen Quelltext in [delphi] Dein QuellText [/delphi] tags.
Sieht schöner aus :wink:
Gruss ALf

P.S

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
ffgorcky
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 573

WIN XP/2000 & 7Prof (Familie:Win95,Win98)

BeitragVerfasst: Sa 27.03.10 20:03 
Also müsstest Du das ganze nur ein bisschen andersherum schreiben:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.Button1Click(Sender: TObject);
begin
  randomize;
  button1.Left:= random(form1.Width-button1.Width);
  button1.Top:= random(form1.Height-button1.Height);
end;

So sollte das doch funktionieren, wie Du es möchtest.
-------------------------
PS: Habe nur das eine random noch rausgenommen, das ich ausversehen zuviel reingeschrieben habe.


Zuletzt bearbeitet von ffgorcky am Sa 27.03.10 20:28, insgesamt 6-mal bearbeitet
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Sa 27.03.10 20:08 
bist Du sichere user profile iconffgorcky das es so Funct :wink:
Nur so z.B. 0-Button1.width wo ist jetzt der Button :?:
Gruss ALf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Jann1k
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 866
Erhaltene Danke: 43

Win 7
TurboDelphi, Visual Studio 2010
BeitragVerfasst: Sa 27.03.10 23:56 
Das -Button1.width ist doch noch innerhalb der random Klammer d.h. man kann keine Werte, die kleiner als 0 sind, kriegen.

€: Seh grade das der Beitrag von user profile iconffgorcky editiert wurde, weiß also nicht was da vorher stand.
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: So 28.03.10 11:40 
is richtig, Fehler von mir! Sorry :oops:
obwohl, beim button.Top funct es trotdem nicht richtig :wink:
Gruss Alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Savos12 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18



BeitragVerfasst: So 28.03.10 12:17 
hey danke jetzt funktionierts...
Was ich dennoch machen würde, ist den Borderstyle der form auf "bsNone" umzustellen
danke