| Autor | Beitrag | 
| georgfischerx 
          Beiträge: 37
 
 
 
 
 | 
Verfasst: Mi 26.06.02 16:16 
 
Hallo allerseits,
 weiss jemand, ob man das Proggi an alle Bildschirmauflösungen
 anpassen kann ? Inklusive kleine/grosse Schriftarten ? Ich habe es
 zwar geschafft, dass mein Proggi bei den Auflösungen 1280x1024,
 1024x768, 800x600, 640x480 läuft - aber: Nur bei kleinen
 Schriftarten. Mühsam ist das Leben, grausam und hart unter
 Windows ...
 
 Gruss, Georg
 | 
|  | 
| Tino 
          
  Beiträge: 9839
 Erhaltene Danke: 45
 
 Windows 8.1
 Delphi XE4
 
 | 
Verfasst: Mi 26.06.02 16:20 
 
Wenn Du bei den Forms das Property Scaled auf True stehen hast dann müsste das von ganz alleine gehen!
 Gruß
 | 
|  | 
| Torsten 
          Beiträge: 160
 
 
 
 
 | 
Verfasst: Mi 26.06.02 16:24 
 
Moinsen!
 Ja, da gibt es was.
 Zumindest bei den Schriftarten kann ich Dir helfen.
 Also, folgendermaßen Deinen Code anpassen:
 		                       Quelltext 
 									| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 14:
 15:
 16:
 17:
 18:
 19:
 20:
 21:
 22:
 23:
 
 | ...
 private
 { Private-Deklarationen }
 FontDoFix     : Boolean; // für Bestimmung der eingestellten Schriftgrösse
 FontDesignRes : Integer; // ----- ebenfalls ----
 
 procedure FixSize;    // zur Bestimmung der Schriftgrösse
 
 ...
 
 procedure TForm1.FormCreate(Sender: TObject);
 begin
 FontDoFix := True;                { zur Ermittlung der Schriftgroesse}
 FontDesignRes := 96;
 end;
 
 ...
 
 procedure TForm1.FormShow(Sender: TObject);
 begin
 FixSize;                         // an Schriftart anpassen
 end;
 |  Nun die eigentliche Funktion:
 		                       Quelltext 
 									| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 14:
 15:
 16:
 17:
 
 | ...
 procedure TForm1.FixSize;
 begin
 if FontDoFix then
 begin
 PixelsPerInch := Screen.PixelsPerInch;
 if (PixelsPerInch <> FontDesignRes) then
 begin
 Width := LongInt(Width * PixelsPerInch) div FontDesignRes;
 Height := LongInt(Height * PixelsPerInch) div FontDesignRes;
 end;
 FontDoFix := False;
 end;
 end;
 
 ....
 |  Grüße
 Torsten | 
|  | 
| georgfischerx  
          Beiträge: 37
 
 
 
 
 | 
Verfasst: Mi 26.06.02 16:28 
Titel: Property Scales auf True: Ja, überall ...
 
Hallo !
 ich habe die Property Scaled überall auf True. Hilft nix. Die
 Schrift in den Labels wird grösser, und auf meiner schönen
 kleinen Form kommen hässliche Rollbalken ... Tja.
 
 Das Leben ist doch hart unter Win9X ff.
 
 Gruss, Georg
 | 
|  | 
| Torsten 
          Beiträge: 160
 
 
 
 
 | 
Verfasst: Mi 26.06.02 16:35 
 
Hast Du meinen Beitrag jetzt überlesen?
 Grüße
 
 Torsten
 | 
|  | 
| georgfischerx  
          Beiträge: 37
 
 
 
 
 | 
Verfasst: Mi 26.06.02 16:41 
Titel: Proggi an ALLE Bildschirmauflösungen/Schriftarten anpassen..
 
Sorry,
 nein, ich habe Deinen Beitrag nicht überlesen. Nur als ich meinen
 Beitrag abgesandt habe, war er noch nicht da. (Zeitüberschneidung)
 
 Vielen Dank für Deine Antwort, ich werde es gleich morgen
 ausprobieren !
 
 Gruss, Georg
 | 
|  | 
| Torsten 
          Beiträge: 160
 
 
 
 
 | 
Verfasst: Mi 26.06.02 16:43 
 
Ach so, Schwein gehabt.     Sollte eigentlich funktionieren. So nutze ich die Funktionen auch.
 Grüße
 Torsten | 
|  | 
| georgfischerx  
          Beiträge: 37
 
 
 
 
 | 
Verfasst: Mi 26.06.02 17:30 
Titel: Proggi an ALLE Bildschirmauflösungen/Schriftarten anpassen..
 
Tja,
 ich habe es eben in mein Proggi eingebaut und ausprobiert. Es hat
 nicht funktioniert. Mein Proggi kriegt Rollbalken, die Schrift ist
 überall grösser als vorher (bei grossen Schriftarten) und wird in den
 Labels umgebrochen.
 
 Vielleicht sollte ich noch erwähnen, dass die Grösse der Form + Labels
 immer korrekt ist. Sie wird bereits trickreich angepasst.
 
 Nur die Buttons sind auch alle grösser.
 
 Gruss, Georg
 | 
|  | 
| Torsten 
          Beiträge: 160
 
 
 
 
 | 
Verfasst: Mi 26.06.02 20:42 
 
OK, ich noch mal.
 Mein Code geht davon aus, dass eine kleine Schriftart als Standard eingestellt ist.
 Das bedeutet die 96 (96 dpi).
 Der zweite Wert wäre 120 (also 120 dpi).
 Eventuell liegt ja dort der Fehler.
 Dennoch habe ich hier mal eine Funktion für Dich, mit der Du die eingestellte Schriftgröße ermitteln kannst.
 		                       Quelltext 
 									| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 
 | function GetFontSize: Boolean; var
 size: Integer;
 handler:  THandle;
 begin
 Result   := False;
 handler := GetDc(HWND_DESKTOP);
 size := GetDeviceCaps(handler, logpixelsx);
 ReleaseDc(HWND_DESKTOP, handler);
 if size = 96 then Result := False
 else if size = 120 then Result := True;
 end;
 |  Eventuell hilft das ja weiter.
 Grüße
 Torsten | 
|  | 
| Torsten 
          Beiträge: 160
 
 
 
 
 | 
Verfasst: Mi 26.06.02 20:44 
 
Ach ja, noch was.
 Wenn Deine Anwendung auch zur Laufzeit auf Änderungen reagieren soll, so muss lediglich die Botschaft WM_DISPLAYCHANGE ausgewertet werden.
 
 Torsten
 | 
|  | 
| georgfischerx  
          Beiträge: 37
 
 
 
 
 | 
Verfasst: Do 27.06.02 10:08 
Titel: Bildschirmauflösungen/Schriftarten.
 
Hallo,
 danke für Deinen Einsatz. Ich habe alles ausprobiert, aber es
 funktioniert leider nicht. Was mache ich bloss falsch ? Wenn
 ich in der Systemsteuerung / Anzeige die grossen Schriftarten
 wähle, zerrupft es mir immer das Proggi-Bild ...
 
 Gruss, Georg
 | 
|  | 
| toms 
          Beiträge: 1099
 Erhaltene Danke: 2
 
 
 
 
 | 
Verfasst: Do 27.06.02 10:20 
 
Hi,
 1. Setze ich Scaled jeweils auf False und nehme eine True-Type Schrift
 (z.B Arial)
 
 2. Setze ich die PITCH Eigenschaft der Schrift auf  VARIABLE anstatt DEFAULT
 
 tom
 | 
|  | 
| georgfischerx  
          Beiträge: 37
 
 
 
 
 | 
Verfasst: Do 27.06.02 13:50 
 
Sorry,
 aber es funktioniert leider alles nicht. Vielleicht habe ich mich
 auch unklar ausgedrückt. Ich möchte eine einfache Angabe oder
 Formel für das folgende Problem:
 
 - Es liegt ein einfaches Formular in der Entwicklungsumgebung
 mit den Massen 640 x 480 vor.
 
 - Diese Formular mit allen Feldern und Knöpfen soll genaugleich
 aussehen, egal ob die Auflösung 640x480 ist, 800x600 , 1024x768,
 1280x1024 ist und egal, was man in Windows für eine SYSTEMSCHRIFTART unter Systemsteuerung: Anzeige: kleine/grosse Schriftarten eingestellt hat. Auch das Menu soll sich nicht ändern. Es
 wird nämlich grösser, je nach Systemschriftart und hat keinen Platz
 mehr in der Titelleiste. Ich hoffe, diese Beschreibung hilft weiter.
 
 Wenn so etwas nicht möglich ist, frage ich mich, wozu ich programmiere.
 WinWord kann das.
 
 Gruss, Georg
 | 
|  | 
| georgfischerx  
          Beiträge: 37
 
 
 
 
 | 
Verfasst: Do 27.06.02 15:51 
 
@Toms:
 Dein Vorschlag war weitaus der Beste, was die unterschiedlichen
 Schriftarten unter Windows betrifft (kleine Schriftarten / Grosse
 Schriftarten) Er kommt dem Ideal schon sehr nahe, Bravo !
 
 Gruss, Georg
 | 
|  |