Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Nicht nur Form vergrößern, sondern auch Elemente (https://www.delphipraxis.net/78740-nicht-nur-form-vergroessern-sondern-auch-elemente.html)

-=cats=- 10. Okt 2006 14:34


Nicht nur Form vergrößern, sondern auch Elemente
 
Hi !

Ich stehe mal wieder vor einem kleinen großen Problem :-D

Ich möchte, das meine Form sich an die Bildschirmauflösung
anpasst.
Dank der vielen Einträge im Forum, klappt das alles soweit.
Nur ... jetzt kommt es ...
Meine Panels sollen sich auch mit vergrößern.
An sich wäre das ja kein Problem, wenn ich ihnen einfach
die Bildschrimgröße zuweise. Aber die Buttons sitzen
ja dann nicht mehr richtig auf dem Panel.
Oder seh ich das falsch ?

Gibt es da nen einfachen Trick, wie ich das gesamte
Programm auf Bildschirmgröße stretchen kann, ohne
jedem Element ne neue Größe und Position zuzuweisen ?

Vielen Dank schon mal im voraus für die Hilfe :)

mkinzler 10. Okt 2006 14:37

Re: Nicht nur Form vergrößern, sondern auch Elemente
 
Schau mal bei .Anchors

-=cats=- 10. Okt 2006 14:44

Re: Nicht nur Form vergrößern, sondern auch Elemente
 
Hmm ... mit Anchors geht das irgendwie nicht.
Er zieht mir das zwar alles auf Vollbild, aber die
Elemente behalten ihre Ursprungsgröße .. Das ist etwas
blöd ...

ste_ett 10. Okt 2006 14:57

Re: Nicht nur Form vergrößern, sondern auch Elemente
 
Du musst diese Einstellungen bei jeder Komponenten setzen. :)

-=cats=- 10. Okt 2006 15:02

Re: Nicht nur Form vergrößern, sondern auch Elemente
 
Meinst Du alle Anchors auf true oder alle auf false ?
Das haut irgendwie auch nicht so ganz hin ... :?

ste_ett 10. Okt 2006 15:03

Re: Nicht nur Form vergrößern, sondern auch Elemente
 
Wenn du willst, dass die Größe berücksichtigt wird, muss es auf "True" stehen. :)

-=cats=- 10. Okt 2006 15:08

Re: Nicht nur Form vergrößern, sondern auch Elemente
 
Klappt nicht so ganz :(

Ich erklär am besten mal, wie ich es gemacht habe :)

In meiner Form, auf der die Panels und Buttons sitzen
habe ich geschrieben:

Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
 // ...
 Form2.Height := Screen.Height;
  Form2.Width := Screen.Width;

// ...
Dann habe ich bei der Form und bei allen Elementen
Anchors auf true gesetzt (alle 4).

Ja. Vollbild hab ich. Aber nur die Hintergrundfarbe
geht über den ganzen Bildschirm. Die Elemente
sind immernoch in Ursprungsgröße ..
Oder hab ich was entscheidendes vergessen ? :coder2:

P.S.: Was hat es eigentlich mit diesem onResize auf sich ?
Hab ich auch hier im Forum gelesen. Muss ich das vielleicht
noch verwenden ?
Falls ja wie ... bin leider daran gescheitert :shock:

Neon-chan 10. Okt 2006 15:14

Re: Nicht nur Form vergrößern, sondern auch Elemente
 
OnResize wird halt ausgelöst, wannimmer sich die Formulargröße ändert..

Wäre also durchaus sinnvoll event. notwendige Anpassungen in diesem Event vorzunehmen

TeronG 10. Okt 2006 15:26

Re: Nicht nur Form vergrößern, sondern auch Elemente
 
Bei mir meistens:
PageControl = Align := alClient (immer formfüllend)
Statusbar & MainMenu = Align Top bzw. Bottom

rest (knöpfe, Groupboxen & co) mit Anchors bzw. onResize

Die Anchors (Anker) halten immer den abstan zum entsprechendem Rand:

Anchors := [] (alle False) lässt die Kompo "mittig" rumschweben.
Bei Anchors := [akLeft,akTop,akRight,akBottom] (alle true) wächst die Komponente mit der Form.
Kannste dir auch schon in der IDE angugn!

-=cats=- 10. Okt 2006 15:30

Re: Nicht nur Form vergrößern, sondern auch Elemente
 
Vielen Dank erst mal für eure Hilfe :)

Also, ich hab es für`s erste so gelöst,
das ich beim onResize des entsprechenden
Elements eine Position angebe.

Z.B. so:

Delphi-Quellcode:

procedure TForm2.LMDBackPanel4Resize(Sender: TObject);
begin
  LMDBackPanel4.Height := Screen.Height;
  LMDBackPanel4.Width := Screen.Width - LMDBackPanel1.Width;
end;
Irgendwie hab ich das Gefühl, das ist ziemlicher Pfusch was ich
da gemacht habe :lol:
Naja. Wer weiß.
Denn angenommen, ich hab 100 Panels ... Das kann ich doch nicht
für jedes einzelne Panel machen ? :shock:

Das geht doch sicher einfacher ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:23 Uhr.
Seite 1 von 3  1 23      

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