Delphi-PRAXiS

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/)
-   -   Delphi Panel bewegen und groesse auf Form ändern ? 2 (https://www.delphipraxis.net/117394-panel-bewegen-und-groesse-auf-form-aendern-2-a.html)

Dark_Alfred 17. Jul 2008 12:02


Panel bewegen und groesse auf Form ändern ? 2
 
Hi ich hab mal eine weiterführende Frage zu dem bereits beantworteten Thema (Link) und zwar folgende:
Wie kann ich die größe des Panels automatisch an die größe der Form anpassen? Wenn jeder User einen anderen Monitor (Größe/Auflösung,Höhe-Breite-Verhältnis) hat und ich das Programm also die Form maximiere das sich das Panel der größe anpasst? Es sieht blöd aus wenn die Hälfte des Programms dieses Panel ist und die andere Hälfte "leer" und ungenutzt ist. So muss der User in dem Panel auch unnötig viel Scrollen und vor allem wegen der Optik würd ich das halt gern vermeiden. Ich hoffe ihr könnt mir helfen.
MfG.Alfred

Diamondback2007 17. Jul 2008 12:08

Re: Panel bewegen und groesse auf Form ändern ? 2
 
Guck dir mal die Eigenschaft "Anchors" im Objektinspektor an.

Dark_Alfred 17. Jul 2008 18:46

Re: Panel bewegen und groesse auf Form ändern ? 2
 
Nein das funktioniert leider nicht. mache ich [akLeft,akTop,akRight] also ausgerichtet nach oben, links und rechts hab ich immernoch diese Freifläche rechts weiß aber nicht woran das liegt :(

Diamondback2007 17. Jul 2008 19:20

Re: Panel bewegen und groesse auf Form ändern ? 2
 
Dann kannst du das manuell im OnResize-Ereignis deiner Form machen.

Dark_Alfred 17. Jul 2008 23:09

Re: Panel bewegen und groesse auf Form ändern ? 2
 
sry mit diesen Ereignissen hab ich bisher net so gearbetet bisher nur schuldelphi :? kannst du mir sagen wie ?
wäre wirklich super !

Cyf 18. Jul 2008 01:41

Re: Panel bewegen und groesse auf Form ändern ? 2
 
Die Anchors verändern nur das Vergrößeungsverhalten, du musst die Komponente also erst bis auf den gewünschten Randabstand ziehen, dein Fall hört sich aber eher nach
Delphi-Quellcode:
Align:= alClient;
an. Das sollte hier eher den von dir gewünschten Effekt haben.

Diamondback2007 18. Jul 2008 08:12

Re: Panel bewegen und groesse auf Form ändern ? 2
 
Zitat:

Zitat von Dark_Alfred
sry mit diesen Ereignissen hab ich bisher net so gearbetet bisher nur schuldelphi :? kannst du mir sagen wie ?
wäre wirklich super !

Ganz einfach. Du klickst in der IDE auf deine Form. Dann gehst im Objektinspektor(normalerweise links, das Teil wo du sowas wie "Caption" einstellen kannst) auf Events oder Ereignisse oder sowas in der Richtung (je nach Sprache von deinem Delphi halt anders).
Dort siehst du dann aufgelistet alle Events deiner Form. Machst du nun einen Doppelklick auf eines dieser Events, so erstellt Delphi automatisch eine dazugehörige Methode und springt im Quellcode zu dieser.
Wie gesagt ist für dich die OnResize-Methode wichtig. Diese wird immer dann aufgerufen, wenn sich die Größe deiner Form verändert.
In dieser Methode kannst du dann über die Eigenschaften Width und Height deiner Form und auch deines Panels die Größe des Panels anpassen.

Dark_Alfred 18. Jul 2008 13:37

Re: Panel bewegen und groesse auf Form ändern ? 2
 
ok Super danke für den Tipp funktioniert!!! Nur musste es über eine IF Anweisung machen weil das Panel eine bestimmte mindestgröße brauch um alle Objekte drin anzeigen zu können.

Hier mal der Quelltext dafür:

Code:
procedure TForm4.FormResize(Sender: TObject);
begin
if Form4.Width > 1179 then
begin
Panel1.Width:=Form4.Width;
end
else
begin
Panel1.Width:=1179;
end;

if Form4.Height >818 then
begin
Panel1.Height:=Form4.Height;
end
else
begin
Panel1.Height:=818;
end;
Die Zahlen und FormX müsst ihr dann nur noch anpassen :)
danke nochmal klappt prima :-D

Glühwürmchen 8. Aug 2008 15:16

Re: Panel bewegen und groesse auf Form ändern ? 2
 
Ist zwar schon eine Weile her, aber ich möchte trotzdem noch meinen Senf dazu geben.

Die IF-Abfrage wegen der Mindestgröße kannst Du Dir sparen.
Delphi bietet nämlich eine Eigenschaft an, die das für Dich erledigt:

"Constraints"
Hier kannst Du bei "MinHeight" und "MinWidth" Deine Mindestgröße angeben.
Null (in Zahlen: 0) bedeutet: Keine Mindestgröße.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:48 Uhr.

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