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 Bildschirmauflösung, Bildschirmgröße (https://www.delphipraxis.net/121039-bildschirmaufloesung-bildschirmgroesse.html)

fl63 21. Sep 2008 11:41


Bildschirmauflösung, Bildschirmgröße
 
Hallo,

Kommerzielle, Shareware, FreewarePogramme laufen auf verschiedenen Bildschirmen mit verschiedenen Auflösungen. Wir alle kennen diesen Effekt. Wie bekomme ich den selben Effekt so das sich die Programmkomponenten mit vergrößern oder verkleinern. Delphiprogramme laufen auf ihren Entwicklungsrechnern richtig aber sowie ein Programm auf einen kleineren Bildschirm laufen soll nehmen die Komponenten den ganzen Bildschirm ein. Meine Frage: Wie bekomme ich ein Programm auf 17 Zoll geschrieben auf einen Bildschirm von 15 Zoll ohne Bildlaufleisten oder ähnlichen?

SirThornberry 21. Sep 2008 12:22

Re: Bildschirmauflösung, Bildschirmgröße
 
Hast du die Suche schon genutzt? Nach was hast du gesucht?

fl63 21. Sep 2008 12:34

Re: Bildschirmauflösung, Bildschirmgröße
 
Nach den Begriffen Bildschirmauflösung bildschirmgröße gesucht und den Eintrag von Cats gefunden.
Bei der Komponente dynForm kommen Bildlaufleisten unten und rechts. Die Form selbst bleibt zu groß für den kleineren Bildschirm wenn man die Laufleisten (um überhaupt etwas mehr zu sehen) auszieht.
Das Projekt Scale bringt bei mir Delphi(6) sofort zum Absturz.

SirThornberry 21. Sep 2008 12:37

Re: Bildschirmauflösung, Bildschirmgröße
 
Es gibt die Methode ScaleBy und man kann auch bei Komponenten das Property Anchors setzen damit sie sich zusammen mit der Form vergrößern und verkleinern.
Letzendlich kann man aber sagen das du deine Programme mit kleiner Auflösung designen solltest denn einfach viele Informationen von einer großen Auflösung auf einer kleinen Unterbringen geht nicht wenn der Platz fehlt.

BullsEye 21. Sep 2008 12:40

Re: Bildschirmauflösung, Bildschirmgröße
 
Irgendwo habe ich mal folgenden Code gefunden:

Delphi-Quellcode:
const breite=1200; {Auflösung, unter der das Fenster erstellt wurde}
      hoehe=1000;
var schrift: integer;
begin
schrift := pixelsperinch-96;
  if screen.width>breite then begin
    if schrift>0 then
      {für große Schriften}
      Form1.ScaleBy(round(((screen.width/breite)*100)-((screen.width/breite-1)*100)),100)
    else
      {für kleine Schriften}
      Form1.ScaleBy(round(((screen.width/breite)*100)),100);
  end
  else begin
    if screen.width=breite then
      Form1.ScaleBy(round(((screen.width/breite)*100)-schrift),100)
    else begin
      if schrift>0 then
        {für große Schriften}
        Form1.ScaleBy(round((100-(breite/screen.width-1)*100)-(breite/screen.width-1)*100),100)
      else
        {für kleine Schriften}
        Form1.ScaleBy(round((100-(breite/screen.width-1)*100)),100);
    end;
  end;
Das ganze im OnFormCreate. Vllt kannst du ja was damit anfangen.

SirThornberry 21. Sep 2008 12:44

Re: Bildschirmauflösung, Bildschirmgröße
 
Bei dieser Variante sollte man aber möglichst auch das ganze für eine Kleine Auflösung designen denn wenn Schrift bei einer großen Auflösung nur 8 pt groß ist und diese dann runtersclaiert wird erkennt man so gut wie nichts mehr. Für das hoch skalieren ist das ok aber umgekehrt eher nicht denn 5 Pixel bei einer hohen Auflösung sind in etwa (in aller Regel) genau so groß wie 5 Pixel bei einer kleinen Auflösung. Das kommt dadurch das meistens eben kleine Anzeigegeräte eine kleine Auflösung verwenden und große Anzeigegeräte entsprechend ihrer größeren Ausmaße eine höhere Auflösung.

fl63 21. Sep 2008 12:51

Re: Bildschirmauflösung, Bildschirmgröße
 
Den Code von BullsEye habe ich auch schon mal irgendwo gesehen und auch ausprobiert. Das Ergebnis ist nicht sehr überzeugend. Swissdelphicenter hat einen Tip zu diesem Thema. Leider muß ich da offenbar jede Form einzeln mit anpassen, ich werde es mal ausprobieren. Ich habe die Hoffnung von euch ein paar bessere(einfachere) Tips zu bekommen.


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