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 falsche Werte für Width und Height nach Maximieren der Form (https://www.delphipraxis.net/126286-falsche-werte-fuer-width-und-height-nach-maximieren-der-form.html)

ConstantGardener 22. Dez 2008 07:44


falsche Werte für Width und Height nach Maximieren der Form
 
Hallo Jungs und Mädels,

ich bin gerade dabei einer meiner Apps den letzten Schliff zu geben. Ich passe bei diversen Grids (Draw-, String- und DBGrids) dynamisch zur Laufzeit die Spaltenbreiten an die Formgröße an. Die Grids werden per alTop oder alClient skaliert. Das klappt auch soweit ganz gut solange man per Maus die Formgröße verändert. Einziger Knackpunkt ist das Maximieren bzw. wieder kleiner machen der Form. Hier wird zwar ein onResize gefeuert jedoch sind die Größen des Forms nicht korrekt. Dadurch schlägt das korrekte anpassen der Spaltenbreiten fehl.

Hat irgendwer eine Idee woher ich hier die richtige Formgröße bekomme ?? Beim manuellen Aufruf der Resizefunktion nach dem Maximieren stimmen die Werte dann wieder. Ich hatte allerdings keine Lust das Resize jedesmal per Timmer aufzurufen.


Danke schonmal für erhellende Hinweise

cg

Sherlock 22. Dez 2008 07:59

Re: falsche Werte für Width und Height nach Maximieren der F
 
Noch mal zur Klärung, bitte:
Die Grids sind aligned (also mit Align <> alNone)? Du setzt dennoch deren width bzw. height?
Setzt Du dann auch eine der Größen, die eigentlich durch die aligned-property automatisch gesetzt wird?

Sherlock

ConstantGardener 22. Dez 2008 08:24

Re: falsche Werte für Width und Height nach Maximieren der F
 
Hallo Sherlock,

also die Grids sind aligned per alTop oder alClient. Die width und height Werte werden automatisch gesetzt. Ist ja auch ok. Was ich jetzt machen will ist das anpassen der Spaltenbreiten des Grids auf eine Gesamtbreite (Clientwidth-GetsystemMetrics (sm_CXYScroll)) sodass keine horizontale Scrollleiste mehr erscheint. Wenn ich jetzt im onResize des Grids oder des Forms oder eines Containers (Panel auf dem das Grid liegt) die Clientwidth des Grids abfrage stimmt diese Größe nicht. Das Skalieren geht also von den falschen Werten aus. Wenn ich das Resize danach per Button aufrufe stimmt der Wert. :gruebel:

cg

Sherlock 22. Dez 2008 08:31

Re: falsche Werte für Width und Height nach Maximieren der F
 
Ah, ich verstehe...für das Anpassen der Spaötenbreite gibt es IMHO eine Property...aber vielleicht ist das eine Spezialität der Komponente, die ich einsetze. Ich find sie auch gerade nicht :(

Sherlock

ConstantGardener 22. Dez 2008 09:31

Re: falsche Werte für Width und Height nach Maximieren der F
 
Hallo Sherlock,

ja das ist bestimmt ein Property deiner Komponenten. Ich mach das zu Fuß mit den Standardcontrols. Ich hab den Fehler jetzt zumindest erstmal auf das DBGrid eingegenzt. Beim Drawgrid kommen die richtigen Werte an. Da beide auf verschiedenen Seiten eines PageControls liegen hab ich als Workaround erstmal die Clientwidth des DrawGrid missbraucht. Richtig ist das aber eigentlich nicht.
Der Fehler besteht weiterhin bei TPanel. Dort habe ich eine Art Zoomfunktion für ein TChart mit einem Image und einigen Shapes implementiert. Beim öffnen des Formulars will ich die gesamte Breite darstellen. Auch hier schlägt das Skalieren beim maximieren fehl da die Werte für Width und Height falsch sind. Beim zweiten Aufruf der Skalierung funkts.

Danke für deine Mühe und schöne Feiertage.

cu cg

QuickAndDirty 22. Dez 2008 10:31

Re: falsche Werte für Width und Height nach Maximieren der F
 
Ich würde Setbounds überschreiben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz