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/)
-   -   Position der Komponenten mittels 'Anchors' (https://www.delphipraxis.net/40834-position-der-komponenten-mittels-anchors.html)

Matze 21. Feb 2005 20:23


Position der Komponenten mittels 'Anchors'
 
Hallo zusammen!

Ich habe auf einem Formular ein paar Komponenten, wie z.B. Buttons. Diese passe ich mittels Anchors an die Fenstergröße an. Jetzt haben ein paar Leute das Problem, dass die Buttons außerhalb des Fensters liegen, schon beim Starten des Programmes, was ich leider nicht nachvollziehen kann.

Die Formulargröße ändere ich im OnCreate Event des Formulars. Bei mir tritt dieser Fehler nie auf.
Woran kann das liegen und wie umgehe ich dieses Problem?

Alles im OnResize neu zu Positionieren, halte ich für nicht sehr schön.

alcaeus 21. Feb 2005 20:27

Re: Position der Komponenten mittels 'Anchors'
 
Hallo Matze,

haben die entsprechenden Personen andere Einstellungen der Schriftgroesse etc.? In dem Fall kann es sein dass die Komponenten breiter werden als von dir geplant.

Greetz
alcaeus

Matze 21. Feb 2005 20:31

Re: Position der Komponenten mittels 'Anchors'
 
Name der Redaktion bekannt *g* (per E-Mail)
Ich habe die
Größe der Fenster-Titelleiste verändert, ebenso die Schriftgröße darin.


Und was mache ich nun? :gruebel:

Matze 22. Feb 2005 20:52

Re: Position der Komponenten mittels 'Anchors'
 
:duck:

phXql 22. Feb 2005 21:33

Re: Position der Komponenten mittels 'Anchors'
 
auf was hast du die Position der Form gestellt? Ich hatte das selbe Problem mal bei MDI-Childs, da haben die Anchors auch verrückt gespielt...

Matze 22. Feb 2005 21:40

Re: Position der Komponenten mittels 'Anchors'
 
Die Position der Form: (237/154)

Was hat die denn damit zu tun? :?

Es handelt sich auch nicht um MDI-Childs, nur um ein normales Fenster.

Das Problem liegt wohl darin, dass der Anwender die Schriftgröße von Windows verändert hat, nur muss man das doch irgendwie umgehen können.

phXql 22. Feb 2005 21:58

Re: Position der Komponenten mittels 'Anchors'
 
Zitat:

Zitat von Matze
Die Position der Form: (237/154)

Was hat die denn damit zu tun? :?

Es handelt sich auch nicht um MDI-Childs, nur um ein normales Fenster.

Das Problem liegt wohl darin, dass der Anwender die Schriftgröße von Windows verändert hat, nur muss man das doch irgendwie umgehen können.

nein, ich meine auf was steht die eigentschaft "position" der form? poDesigned, poScreenCenter... etc... und dass die Anchors verrückt spielen muss ja nich nur am MDI-Child auftreten... Falls es wirklich an den Schriftgrößen liegen sollte, dann weiss ich aber nicht, wie man es umgehen kann.

Matze 23. Feb 2005 14:57

Re: Position der Komponenten mittels 'Anchors'
 
Achso, das meinst du, dann habe ich dich falsch verstanden. Die Position ist poScreenCenter.

Matze 25. Feb 2005 16:06

Re: Position der Komponenten mittels 'Anchors'
 
Sorry, ich nerve, ich weiß, nur wäre mir das recht wichtig.

Es muss doch eine Lösung geben, dies korrekt darzustellen, unabhängig von der eingestellten Schriftgröße in Windows.

Leuselator 25. Feb 2005 16:51

Re: Position der Komponenten mittels 'Anchors'
 
Schau mal meinen Post da.

Und dann viel Spass...
Gruß

shmia 25. Feb 2005 17:03

Re: Position der Komponenten mittels 'Anchors'
 
Zitat:

Zitat von Matze
Und was mache ich nun? :gruebel:

Ich hatte vor Kurzem das gleiche Problem.
Gegeben war ein TMemo mit Align=left und Anchor oben, links & rechts.
Rechts daneben waren 4 Buttons mit Anchor oben und rechts.
Problemlösung:
Alle Buttons auf ein Panel setzen und die Anchors auf links+oben setzen.
Das Memo ist nun align=client und das Panel: align=left.

Also lange Rede, kurzen Sinn: mit zusätzlichen Panels lässt sich das Problem umgehen, auch
wenn es nervig ist Panels einfach so zu "verbraten".

Matze 25. Feb 2005 19:41

Re: Position der Komponenten mittels 'Anchors'
 
Vielen Dank!

Ich versuche erst einmal Shmias Lösung, das klingt zu einfach, um wahr zu sein. *g*

Matze 26. Feb 2005 21:41

Re: Position der Komponenten mittels 'Anchors'
 
@Shmia: Also das mit dem Panel/den Panels funktioniert leider nicht.
@Leuselator: Die Schriftgröße, die der Anwender bei sich eingestellt hat, möchte ich nicht ändern, diese hat er nicht umsonst so eingestellt.

Leuselator 2. Mär 2005 00:20

Re: Position der Komponenten mittels 'Anchors'
 
Du solltest mehr als nur die 1. paar Zeilen lesen. Wenn Du Eine Oberfläche haben möchtes, die unabhängig von der Auflösung und den eingestellten Schriftgrößen skaliert, wird Dir das nicht gelingen. Du kannst entweder wirklich skalieren (Schrift- und Controlgrößen ändern sich proportional zur Bildschirmauflösung) oder Du passt einfach nur die Platzierung und Breiten/Höhen der Controls an die vom User gewählte Schriftgröße (unabhängig von Bildschirmauflösung) an. Bei der erstgenannten Variante würdest Du auch die Schriftgrößen skalieren. Beim letztgenannten nur die Platzierung/Breite/Höhe der Controls. Egal was Du tust - Du mußt die wenigstens die Schriftgrößen abfragen. Wenn Du also nach MSDN-Library durchsuchenMetrics, MSDN-Library durchsuchenSystemParametersInfo() und vor allem MSDN-Library durchsuchenGetSystemMetrics suchst, findest Du jede Menge Stoff zum Nachdenken :-).

Gruß


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