Delphi-PRAXiS
Seite 1 von 2  1 2      

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:17 Uhr.
Seite 1 von 2  1 2      

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