Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Das alte 96dpi->120dpi Problem: Wie skaliert man richtig? (https://www.delphipraxis.net/139132-das-alte-96dpi-120dpi-problem-wie-skaliert-man-richtig.html)

alleinherrscher 24. Aug 2009 10:57


Das alte 96dpi->120dpi Problem: Wie skaliert man richtig?
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hi@all!

Ich weiß, dass es zu diesem Thema schon einige Threads gibt, welche ich auch aufmerksam gelesen habe, wie z.B. diese hier:

http://www.delphipraxis.net/internal...hlight=120+dpi
http://www.delphipraxis.net/internal...hlight=120+dpi
http://www.delphipraxis.net/internal...hlight=120+dpi

Allerdings habe ich die Lösungstipps schon getestet und sie funktionieren nicht - soll heißen: Wenn ein Benutzer meines Programms eine Schriftauflösung <>96dpi einstellt, werden die Controls auf dem Formular wild hin und her verschoben... (ein Beispiel ist im Anhang)

Gibt es nun eine "professionelle" Lösung um dieses Problem in den Griff zu bekommen? - und damit meine ich: Eine universelle Lösung, bei der man das Formular nicht für jede Schriftauflösung neu designen muss, und die nicht dem Motto "hm, komischerweise funktioniert es bei mir, wenn ich irgendeine Einstellung während der Laufzeit auf false und später auf true setze" folgt?

Programme wie z.B. der Firefox haben das Problem ja auch im Griff...

Viele Grüße,

Euer Alleinherrscher

Bernhard Geyer 24. Aug 2009 11:15

Re: Das alte 96dpi->120dpi Problem: Wie skaliert man rich
 
Du solltest mit Panels arbeiten in der du die Buttons hinzufügst und dann diese per Alignment ausrichtest.

p80286 24. Aug 2009 17:47

Re: Das alte 96dpi->120dpi Problem: Wie skaliert man rich
 
Hallo alleinherrscher,

Wenn ich mich richtig erinnere, hab ich meinen Senf damals auch dazu gegeben. in der Zwischenzeit bin ich ein kleines Stückchen weiter:

1) laß die Finger von Tform.scaled, das sollte immer false sein (default ist true).

2) Zeiche jedes Form immer selbst (ist aufwendig, aber dann weißt Du was Du hast!).

Wenn ich die Lösung von Bernhard richtig verstanden habe, dann begrenzt das Panel die "verwilderten Labels/Memos..." nur, und das Chaos fällt nicht ganz so auf.

Gruß
K-H

Bernhard Geyer 25. Aug 2009 16:52

Re: Das alte 96dpi->120dpi Problem: Wie skaliert man rich
 
Zitat:

Zitat von p80286
1) laß die Finger von Tform.scaled, das sollte immer false sein (default ist true).

Sollte es nicht. Man kann super mit TForm.Scaled=True arbeiten ohne das irgendwas zerschossen ist!

Das Hauptproblem bei Scaled=True ist das sich die Formulargröße nicht mit mit vergrößert Falls man ein Sizeable Formular hat, aber die Controls im Formular evtl. doch ihre Position anpassen.

p80286 27. Aug 2009 15:42

Re: Das alte 96dpi->120dpi Problem: Wie skaliert man rich
 
@Bernhard
Zitat:

Das Hauptproblem bei Scaled=True ist das sich die Formulargröße nicht mit mit vergrößert Falls man ein Sizeable Formular hat, aber die Controls im Formular evtl. doch ihre Position anpassen.
Das ist doch das Problem! alle controls die Text enthalten könnten, vergrößern sich und dadurch sieht die Oberfläche auf einmal ganz schön verrutscht aus.
Mit scaled=false gibt es diesen Verschiebeeffekt nicht und "nur" der eigentliche Text passt nicht mehr.

Gruß
K-H

Der.Kaktus 27. Aug 2009 15:44

Re: Das alte 96dpi->120dpi Problem: Wie skaliert man rich
 
Zitat:

Zitat von p80286
@Bernhard
Zitat:

Das Hauptproblem bei Scaled=True ist das sich die Formulargröße nicht mit mit vergrößert Falls man ein Sizeable Formular hat, aber die Controls im Formular evtl. doch ihre Position anpassen.
Das ist doch das Problem! alle controls die Text enthalten könnten, vergrößern sich und dadurch sieht die Oberfläche auf einmal ganz schön verrutscht aus.
Mit scaled=false gibt es diesen Verschiebeeffekt nicht und "nur" der eigentliche Text passt nicht mehr.

Gruß
K-H

selbst Delphi2010 hat dieses Problem in seinen Masken :stupid:

alleinherrscher 27. Aug 2009 16:06

Re: Das alte 96dpi->120dpi Problem: Wie skaliert man rich
 
Hey, danke für diese ganzen Antworten - Also ich habe mal bei Microsoft gesucht und ein pdf zu dem Thema gefunden:

http://go.microsoft.com/fwlink/?LinkID=129586

Vielleicht hilft ja auch sowas hier:

http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx

Aber ich bin noch nicht wirklich durchgestiegen... kennst sich jemand damit aus :gruebel:

alleinherrscher 29. Aug 2009 11:58

Re: Das alte 96dpi->120dpi Problem: Wie skaliert man rich
 
Jemand noch irgendwelche weiteren Ideen? :zwinker:

Bernhard Geyer 29. Aug 2009 12:09

Re: Das alte 96dpi->120dpi Problem: Wie skaliert man rich
 
Ein Beispiel wie man mit Panels arbeiten kann:

Du willst einen OK und Cancel-Button rechts unten auf einen größenveränderlichen Dialog.

Positioniere erst ein Panel das du Align = alBottom setzt.
Darin legst du ein Panel mit Align = alRight und dorthin legtst du deine beiden Buttons.

alleinherrscher 14. Sep 2009 15:40

Re: Das alte 96dpi->120dpi Problem: Wie skaliert man rich
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo, Bernhard Geyer!

Vielen Dank für deine Tipps! Ich habe nun mal versucht, die Panels einzubauen. Mit ein bisschen Fummel-lei funktioniert dies nun, wie man im Anhang sehen kann. Allerdings bekomme ich nun folgendes Problem:

- Starte Programm -> Maximiere Chatfenster -> Verkleinere Chatfenster wieder -> Ergebnis: Chatfenster ist leer (Panels verschwunden)
-> ziehe nun mit der Maus das Chatfenster größer o. kleiner -> Ergebnis: Panels wieder an der richtigen Stelle.

Kann mir das jemand erklären bzw. habe ich etwas falsch gemacht mit den Panels?


Viele Grüße, Michael

alleinherrscher 16. Sep 2009 12:08

Re: Das alte 96dpi->120dpi Problem: Wie skaliert man rich
 
:gruebel: *push* hab noch keine Lösung gefunden...jemand noch eine idee? :thumb:

alleinherrscher 17. Sep 2009 16:31

Re: Das alte 96dpi->120dpi Problem: Wie skaliert man rich
 
muss leider nochmal pushen...

alleinherrscher 18. Sep 2009 01:10

Re: Das alte 96dpi->120dpi Problem: Wie skaliert man rich
 
Ich glaubs nicht, ich habe tatsächlich die Lösung gefunden. Wie immer liegt der Fehler nicht an Delphi sondern am Programmierer. Bei mir lang es an der Tatsache, dass die Eigenschaft "AutoScroll" auf True gesetzt war.

Die Lösung fand ich in einem Dokument, hier
(//edit: Server scheinbar öfters nicht erreichbar - daher besser den DP Link benutzen: DP Link )

Dort heißt es: Delphi skaliert korrekt, falls man folgende Dinge beachtet:

:arrow: Die Eigenschaft Scaled des Formulars muss auf True gesetzt sein.

:arrow: Man sollte nur TrueType-Schriften verwenden

:arrow: Bei dem Computer, an dem das Programm entworfen wird, sollten am besten 96 dpi eingestellt sein.

:arrow: Die Eigenschaft AutoScroll muss auf False gestellt werden, wenn tatsächlich das Formular skaliert werden soll und nicht nur die Controls innen drin.

:arrow: Die Position des Formulars sollte möglichst links oben der in der Mitte des Bildschirms sein, um zu vermeiden, dass das Formular außerhalb des Bildschirmbereiches ist.


In diesem Sinne: Gute Nacht und :cheers:

Bernhard Geyer 18. Sep 2009 07:18

Re: Das alte 96dpi->120dpi Problem: Wie skaliert man rich
 
Das mit AutoScroll ist mir neu.
Ach ja - Dein Link funktioniert nicht.

V08523 18. Sep 2009 07:58

Re: Das alte 96dpi->120dpi Problem: Wie skaliert man rich
 
Such mal mit Google und zeige das PDF als HTML an. Guggst Du auf Seite 77.

p80286 18. Sep 2009 09:29

Re: Das alte 96dpi->120dpi Problem: Wie skaliert man rich
 
Geile Idee mit demn link, und google ist noch besser

da ist absolute tote Hose!!

Da hat der alleinherrscher wohl einmaliges Glück gehabt!

Gruß
K-H

alleinherrscher 18. Sep 2009 09:41

Re: Das alte 96dpi->120dpi Problem: Wie skaliert man rich
 
Liste der Anhänge anzeigen (Anzahl: 1)
:) Sowas, nachts laufen deren Server wohl besser... ich habs mal angehängt!

Seite 73

V08523 18. Sep 2009 09:45

Re: Das alte 96dpi->120dpi Problem: Wie skaliert man rich
 
Ja, der Server steht offensichtlich in China. Wenn wir 8:00 Uhr haben, ist dort vielleicht schon Dienstschluß.

Ach ja, Danke für das PDF. Sieht auch besser aus, als mein Google-Ausdruck.

p80286 18. Sep 2009 09:46

Re: Das alte 96dpi->120dpi Problem: Wie skaliert man rich
 
Heißen Dank!!
Gruß
K-H


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