Autor Beitrag
georgfischerx
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 37



BeitragVerfasst: Mi 26.06.02 17: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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Mi 26.06.02 17:20 
Wenn Du bei den Forms das Property Scaled auf True stehen hast dann müsste das von ganz alleine gehen!

Gruß
Torsten
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 160



BeitragVerfasst: Mi 26.06.02 17:24 
Moinsen!

Ja, da gibt es was.
Zumindest bei den Schriftarten kann ich Dir helfen.

Also, folgendermaßen Deinen Code anpassen:

ausblenden 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:
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 37



BeitragVerfasst: Mi 26.06.02 17: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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 160



BeitragVerfasst: Mi 26.06.02 17:35 
Hast Du meinen Beitrag jetzt überlesen?

Grüße

Torsten
georgfischerx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 37



BeitragVerfasst: Mi 26.06.02 17: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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 160



BeitragVerfasst: Mi 26.06.02 17:43 
Ach so, Schwein gehabt. ;)

Sollte eigentlich funktionieren. So nutze ich die Funktionen auch.

Grüße

Torsten
georgfischerx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 37



BeitragVerfasst: Mi 26.06.02 18: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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 160



BeitragVerfasst: Mi 26.06.02 21: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.

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 160



BeitragVerfasst: Mi 26.06.02 21: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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 37



BeitragVerfasst: Do 27.06.02 11: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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1099
Erhaltene Danke: 2



BeitragVerfasst: Do 27.06.02 11: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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 37



BeitragVerfasst: Do 27.06.02 14: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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 37



BeitragVerfasst: Do 27.06.02 16: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