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 Maße eines noch nicht erzeugten Formulars erfragen? (https://www.delphipraxis.net/90189-masse-eines-noch-nicht-erzeugten-formulars-erfragen.html)

PeterPanino 13. Apr 2007 01:44


Maße eines noch nicht erzeugten Formulars erfragen?
 
Wie kann man zur Laufzeit die Maße eines Formulars (Breite, Höhe) ermitteln, das zu diesem Zeitpunkt noch nicht erzeugt wurde, aber natürlich zur Entwurfszeit im Formdesigner definiert wurde? (Ohne diese Werte manuell im Programm hartkodieren zu müssen).

himitsu 13. Apr 2007 07:41

Re: Maße eines noch nicht erzeugten Formulars erfragen?
 
Wenn es noch nicht erzeugt wurde (keine Instanz existiert), dann könntest du höchstens die entsprechende Resource auslesen und darin die Werte suchen.
Wo sollen denn sonst die Werte herkommen, wenn sie noch nicht geladen wurden?

Also entweder selber laden+raussuchen, oder eben erstmal eine Instanz erzeugen und dort auslesen.



Das mit dem selber die Resource laden und reinsehn geht aber nicht immer, denn wenn Form.Position =
poDesigned: dann stimmen die Werte aus der Resource (?)
po**Center: hier mußt du die Position selber ausrechnen
poDefault und poDefault**Only: da legt Windows beim erstellen Werte von sich aus fest, welche du vorher nicht erfährst

bei Form.Scaled = True wird das Fenster unter Umständen auch noch scaliert, wobei sich da wiederum Werte ändern können
...

uligerhardt 13. Apr 2007 08:54

Re: Maße eines noch nicht erzeugten Formulars erfragen?
 
Vielleicht reicht's ja auch, wenn du an der Stelle, wo du die Maße brauchst, die Form zwar erzeugst, aber noch nicht anzeigst.

Uli.

PeterPanino 13. Apr 2007 10:44

Re: Maße eines noch nicht erzeugten Formulars erfragen?
 
Zitat:

Zitat von himitsu
Das mit dem selber die Resource laden und reinsehn geht aber nicht immer, denn wenn Form.Position =
poDesigned: dann stimmen die Werte aus der Resource (?)
po**Center: hier mußt du die Position selber ausrechnen
poDefault und poDefault**Only: da legt Windows beim erstellen Werte von sich aus fest, welche du vorher nicht erfährst
bei Form.Scaled = True wird das Fenster unter Umständen auch noch scaliert, wobei sich da wiederum Werte ändern können
...

Es geht mir nicht darum, wie die Maße des Fensters zur Laufzeit wären, sondern wie die Maße des Fensters zur Entwurfszeit waren.

Wäre es z.B. nicht möglich, den Compiler dazu zu bringen, die Höhe und Breite des Fensters in zwei Konstanten zu schreiben?

himitsu 13. Apr 2007 10:50

Re: Maße eines noch nicht erzeugten Formulars erfragen?
 
Achso ... naja, wie gesagt, das Forumlar liegt als Resource in deiner Exe rum ... Form.Create läd ja auch nur diese Resource und stellt danach die Form her.

Dieses kannst du auch selber machen (diese Resource laden).

Ansonsten wäre es bestimmt möglich (mit etwas/viel Aufwand) sich was zu schreiben, welches sich z.B. über die Hier im Forum suchenOpenToolsAPI in Delphi einnistet und sowas für dich macht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:06 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