AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Programm an Bildschirmauflösung optimal anpassen.
Thema durchsuchen
Ansicht
Themen-Optionen

Programm an Bildschirmauflösung optimal anpassen.

Ein Thema von Jens Hartmann · begonnen am 6. Mär 2009 · letzter Beitrag vom 18. Apr 2013
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#1

Programm an Bildschirmauflösung optimal anpassen.

  Alt 6. Mär 2009, 13:42
Hallo, hab mal wieder eine Frage,

ich habe in meiner Form.Create folgende Funktion, um den Bildschirm voll asuzufühlen.

Delphi-Quellcode:
var
  HTaskbar: HWND;
  OldVal: LongInt;
begin
oldW := Width;
oldH := Height;
oldX := Left;
oldY := Top;
BorderStyle := bsNone;
FormStyle := fsStayOnTop;
Left := 0;
Top := 0;
Height := Screen.Height;
Width := Screen.Width;
Funktioniert auch ganz gut. Jetzt habe ich allerding´s auf meinem
Laptop eine Auflösung von 1280x1024 und z.B auf meinem Desktop 1024x768.

Wie bekomme ich jetzt hin, das mein Programm sich optimal an die Bildschirmauflösung anpaßt.

Mit der folgenden Code in der Create, ist das zwar möglich höhere Auflösungen zu Zoomen, aber wenn ich z.B. die mit meinem Laptop kompilierte Datei auf meinem Desktop starte, wird ein Teil vom Fenster abgeschnitten.

Delphi-Quellcode:
´
  sWidth := Screen.MonitorFromWindow(Handle).Width / Width;
  sHeight := Screen.MonitorFromWindow(Handle).Height / Height;
  if sWidth < sHeight then
  begin
    ScaleBy(Round(Screen.MonitorFromWindow(Handle).Width * 1.02), Width);
  end
  else
  begin
    ScaleBy(Round(Screen.MonitorFromWindow(Handle).Height * 1.02), Height);
  end;
  WindowState := wsMaximized;
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Programm an Bildschirmauflösung optimal anpassen.

  Alt 6. Mär 2009, 13:47
Bitte keine Skalierung von Controls wenn der User nicht Große Schriftart oder ähnliches eingestellt hat. Der Button der Anwendung der bei 1024*768 auf 100*25 gestellt wurde sollte auch unter 1600*1200 die gleiche Pixelgröße haben wenn die Schriftgröße gleich. Alles ander schaut Amateurhaft aus.

Pass die Ausrichtung lieber mit Hilfe von Panels und entsprechenden Alignment an.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Programm an Bildschirmauflösung optimal anpassen.

  Alt 6. Mär 2009, 13:54
Zitat von Bernhard Geyer:
Pass die Ausrichtung lieber mit Hilfe von Panels und entsprechenden Alignment an.
In neueren Delphiversionen sollte es die "Anchors"-Eigenschaft geben, mit der sich die Layouts noch schneller erstellen lassen als mit Panels + Alignment.
  Mit Zitat antworten Zitat
neo4a

Registriert seit: 22. Jan 2007
Ort: Ingolstadt
362 Beiträge
 
Delphi XE2 Architect
 
#4

Re: Programm an Bildschirmauflösung optimal anpassen.

  Alt 6. Mär 2009, 13:55
Vielleicht hilft Dir das weiter:
Zitat:
VCL Komponente dynForm (TFormResizer) Delphi 7
-------------------------------------------------

Version 1.0 von Michael Kaliga, kaliga@freenet.de
nach einer Idee von David A. Price, dprice@erols.com (1999)

Eigenschaften:
dynForm passt alle Komponenten eines Formulares in der
Grösse und Position an, wenn die Formulargrösse verändert wird.

FormResizer1.InitializeForm scannt das Formular, legt in einer StringList
die Startwerte ab und erstellt Sicherungen von vorhandenen Grafiken:
Metafile's + Bitmap's, wobei Metafile's in Bitmaps konvertiert werden.

FormResizer1.InitializeForm berechnet die neuen Größen und Positionen der
einzelnen Komponenten aus den Startwerten (!!!) und passt die Form-Komponenten
dann an.
Da die Startwerte und nicht die aktuellen Größen verwendet werden, behält
das Formular immer sein Aussehen;
ein Zerreissen/Zerfleddern wie bei den Delphi-Funktionen ChangeScale und ScaleBy
entfällt also.
BTW. läuft auch unter D2009, hat das Skalieren von Images nicht optimal gelöst.

--
Andreas
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Programm an Bildschirmauflösung optimal anpassen.

  Alt 6. Mär 2009, 13:57
Zitat von NamenLozer:
In neueren Delphiversionen sollte es die "Anchors"-Eigenschaft geben, mit der sich die Layouts noch schneller erstellen lassen als mit Panels + Alignment.
Gehen bei neueren Versionen die Anchors besser als bei D6? Bei größen veränderlichen Dialogen und anderer DPI-Auflösung kommt bei D6 schrott raus.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Programm an Bildschirmauflösung optimal anpassen.

  Alt 6. Mär 2009, 14:07
Also, Ideen hab ihr ja recht viele und recht schnell. Nur durch die vielen Unterschiede, weiß man natürlich gar nicht, was jetzt die beste Lösung ist.

Also, was ich genau benötige ist, eigentlich genau das was alle guten Programme machen. Sich ohne für den Nutzer einen optischen unterschied zu zeigen, an den Bildschirm anzupassen.

Das mit den Anchors, wäre eine Variante, allerdings, habe ich da momentan gar keine Ahnung von wie die genutzt werden. Gut dafür gibt es ja die Hilfe.

Mit der VCL Komponente hört sich Momentan relativ einfach an, hatte ich allerdings auch mal von der Skalierung gedacht, die allerdings nicht den von mir gewünschten Erfolg erziehlt hat.

Mit den Panal´s, vermute ich, das ich meine Komponenten auf verschiedene Panal´s lege, diesen dann gewisse Plätze zuweise, und grundsätzlich gar nicht´s an den größen der anderen Komponenten ändere. Also wenn ein Button z.b. 120x40 Pixel hat, behält er diese immer bei.

Wenn das der Fall ist, ist das ja eigendlich nicht das was ich will, weil ja dann irgendwo im formular freie Flächen entstehen werden.

[EDIT] Außerdem vermute ich, das ich einer kleinen Bildschirmauflösung arbeiten müsste, um später mit einer höheren arbeiten zu können.
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
neo4a

Registriert seit: 22. Jan 2007
Ort: Ingolstadt
362 Beiträge
 
Delphi XE2 Architect
 
#7

Re: Programm an Bildschirmauflösung optimal anpassen.

  Alt 6. Mär 2009, 14:15
In der Zeit, in der Du die bisherigen Antworten "benotest", hättest Du Dir z.B. mit der vorgeschlagenen Kompenten selbst ein Bild machen können. Du wärst überrascht, was man damit *erzielt*.

--
Andreas
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#8

Re: Programm an Bildschirmauflösung optimal anpassen.

  Alt 6. Mär 2009, 14:17
Die beste Variante ist es über die Alignment und Anchors zu arbeiten. Mit diesen beiden Möglichkeiten brauchst Du Dir keine Gedanken machen, wie groß das Fenster nachher ist. Was macht Deine Scalierung, wenn ich das Fenster soweit verkleinere, dass ich unterhalb Deiner Ausgangsgröße komme ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#9

Re: Programm an Bildschirmauflösung optimal anpassen.

  Alt 6. Mär 2009, 14:25
Zitat:
In der Zeit, in der Du die bisherigen Antworten "benotest", hättest Du Dir z.B. mit der vorgeschlagenen Kompenten selbst ein Bild machen können. Du wärst überrascht, was man damit *erzielt*.
Habe nach der Komponent gegoogelt, finde sie leider nicht. Außerdem, benote ich keine Beträge, ich möchte nur eine Vernünftige Diskussion, über verschieden Lösungen, um dann selber entscheiden zu können, was für mich dann wohl sinnvoll ist.

Zitat:
Was macht Deine Scalierung, wenn ich das Fenster soweit verkleinere, dass ich unterhalb Deiner Ausgangsgröße komme ?
Das Fenster geht über den Bildschirmrand raus, und an diese Objekt komme ich auch nicht ran
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
neo4a

Registriert seit: 22. Jan 2007
Ort: Ingolstadt
362 Beiträge
 
Delphi XE2 Architect
 
#10

Re: Programm an Bildschirmauflösung optimal anpassen.

  Alt 6. Mär 2009, 14:30
@Rolf.

Du hast aus meiner Sicht völlig Recht. Allerdings gebe ich den heute üblichen Auflösungsbereich zu bedenken: 24"-Monitoren stellen ohen Probleme 1900x1200 Pixel dar. Das erzeugt riesige Flächen, die gerade bei einfachen Design gar nicht mehr sinnvoll gefüllt werden können. Wenn man hier auch mit Schrift- Skalierung arbeitet, behält das Formular sein Aussehen in allen möglichen Auflösungen oder Formular-Größen. Eine Mindestgröße für Schrift und Size verhindert Unlesbarkeit, kann aber ein Vista-like Thumbview ergeben. Genau das macht die angesprochene Komponente und erzeugt nebenbei bei großen Auflösungen ein seniorenfreundliches Bild

--
Andreas
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:37 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