Autor Beitrag
merlin83
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 89

Win 98, Win 2000, SuSE Linux 9.3 Prof
D7 Personal, D2k5 Personal, Kylix
BeitragVerfasst: Mo 29.11.04 19:20 
Guten Abend!

Mein heutiges Problem handelt von Formularen, Buttons und weiteren bunten Dingern... ;)

Also, ich habe mein Formular so aufgebaut, dass es standardmäßig als normales Fenster angezeigt wird. Die Abhängigkeiten (Anchors) habe ich so festgelegt, dass sich bei einer Maximierung alle Elemente mit verschieben bzw. größer werden usw. Das funktioniert soweit. Nun möchte ich aber (aus Platzgründen), dass das Programm standardmäßig maximiert gestartet wird, habe also WindowState auf wsMaximized gesetzt. Wenn ich das Programm jetzt starte, sind die Elemente aber so positioniert, als hätte ich die Anker nicht festgelegt, also alle relativ weit links oben in der Ecke.

Kann ich das irgendwie ändern, ohne jedes einzelne Element neu auszurichten?

Als Notlösung würde mir noch einfallen, das Programm erst normal zu starten und dann automatisch zu maximieren, möchte sowas aber vermeiden.

Hat jemand ne Idee?
Vielen Dank im Voraus!

Merlin83

_________________
If ProblemExists=True
Then ProblemExists:=False;
CoLdDsToNe
Hält's aus hier
Beiträge: 13

WIN XP (Suse 9.2)
D7 Pers
BeitragVerfasst: Mo 29.11.04 23:25 
hi,
ist ganz normal dass deien Objekte so positioniert werden.
Schau dir mal den Werte von Left und Top an. Die werden bei der Maximierung nicht geändert.
Also, um deien gewünschten Werte zu erhalten muss du eigentlich im maximierten Modus deine Objekte setzen

greetz cold
Motzi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2931

XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
BeitragVerfasst: Mo 29.11.04 23:39 
Die DOH sagt dazu:
Delphi Online-Hilfe:
Anchors is enforced only when the parent is resized. Thus, for example, if a control is anchored to opposite edges of a form at design time and the form is created in a maximized state, the control is not stretched because the form is not resized after the control is created.

Abhilfe schafft daher WindowState im OI auf wsNormal zu lassen und manuell im OnCreate-Ereignis auf wsMaximized zu setzen, da zu dem Zeitpunkt von OnCreate bereits alle Objekte erzeugt sind.

_________________
gringo pussy cats - eef i see you i will pull your tail out by eets roots!
merlin83 Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 89

Win 98, Win 2000, SuSE Linux 9.3 Prof
D7 Personal, D2k5 Personal, Kylix
BeitragVerfasst: Di 30.11.04 18:57 
CoLdDsToNe hat folgendes geschrieben:
Also, um deien gewünschten Werte zu erhalten muss du eigentlich im maximierten Modus deine Objekte setzengreetz cold

Genau diese Arbeit wollte ich mir ersparen.

Motzis Lösung könnte helfen, danke!

_________________
If ProblemExists=True
Then ProblemExists:=False;