Autor Beitrag
Leon_derZocker
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Fr 16.03.18 10:05 
Hallo,
Ich habe ein ,,Fang mich doch"-Spiel programmiert in dem ich einen Button auf dem ,,Fang mich doch" steht habe.
Klicke ich auf diesen Button teleportiert er sich auf eine andere Stelle im dem Fenster.
Nun habe ich das Spiel so erweitert das der Button sich nur in diesem Bereich teleportiert wo auch das Fenster.
Macht man das Fenster größer erweitert sich der Radius in dem der Button sich teleportiert.
Jetzt zum Problem:
Manchmal teleportiert sich der Button aus dem Fenster hinaus.
Wie kann ich das verhindern? :gruebel:
Vielen Dank im Voraus :zustimm: :flehan:

LG


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Fr 16.03.2018 um 10:45


Zuletzt bearbeitet von Leon_derZocker am Fr 16.03.18 14:10, insgesamt 2-mal bearbeitet
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6311
Erhaltene Danke: 125

Windows 7 + Windows 10
Tokyo Prof + CE
BeitragVerfasst: Fr 16.03.18 10:19 
Der Button hat eine Größe, die du über die Eigenschaften Width und Height feststellen kannst. Das musst du einfach bei der neuen Position berücksichtigen.
Natürlich darf die neue Position auch nur innerhalb der Fenstergröße sein. Auch eine Form hat die Eigenschaften Width und Height, bzw. ClientWidth und ClientHeight.

Für diesen Beitrag haben gedankt: Leon_derZocker
Leon_derZocker Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Fr 16.03.18 14:10 
Danke jetzt funktioniert es :flehan:
Jetzt hab ich ein anderes Problem:
Wenn ich das Fenster groß mache und der Button nicht mehr oben und links sondern unten und rechts ist kann ich das Fenster wieder normal groß machen.
Das soll nicht mehr gehen.Das Fenster soll immer so groß sein dass man den Button noch sieht.
Möglich?? :gruebel:

LG
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6311
Erhaltene Danke: 125

Windows 7 + Windows 10
Tokyo Prof + CE
BeitragVerfasst: Fr 16.03.18 14:31 
Ja, das geht. Schau dir mal dazu die Eigenschaft Constraints der Form an. Dort kannst du die Mindestgröße der Form vorgeben.
Alternativ kannst du auch das Ereignis OnResize nutzen und dort entsprechend reagieren.

Für diesen Beitrag haben gedankt: Leon_derZocker
doublecross
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 125
Erhaltene Danke: 23

Windows 7
C#; Visual Studio 2015
BeitragVerfasst: Fr 16.03.18 16:48 
Hi,
user profile iconLeon_derZocker hat folgendes geschrieben Zum zitierten Posting springen:
Das Fenster soll immer so groß sein dass man den Button noch sieht.
Möglich?? :gruebel:

ist es wirklich schlau dem Nutzer zu verbieten die Größe seines Formulars zu ändern? Wäre es nicht netter, wenn der Button sich eine neue Position sucht, wenn man das Fenster so verkleinert, dass er nicht mehr zu sehen ist?
Frühlingsrolle
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2165
Erhaltene Danke: 399

[Win NT] 5.1 x86 6.1 x64
[Delphi] 7 PE, 2006, 10.1 Starter, Lazarus - [C#] VS Exp 2012 - [Android API 15] VS Com 2015, Eclipse, AIDE - [C++] Builder 10.1
BeitragVerfasst: Fr 16.03.18 17:20 
Da könnte man z.B. den Button nach oben schieben, sobald das Fenster verkleinert wird:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.FormResize(Sender: TObject);
begin
  if (ClientHeight < (Button1.Top + Button1.Height)) and (Button1.Top > 0then
    Button1.Top := ClientHeight - Button1.Height;
end;

_________________
„Politicians are put there to give you the idea that you have freedom of choice. You don’t. You have no choice. You have owners. They own you. They own everything." (George Denis Patrick Carlin)