Einzelnen Beitrag anzeigen

HiWieGehts

Registriert seit: 19. Aug 2005
101 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Bildschirmauflösung einstellen / skalieren von Formulare

  Alt 31. Jul 2009, 05:30
In einer Unit, welche von allen anderen geladen wird eine Prozedure schreiben, welche den Code aus deiner FormCreate enthält und die einzustellende Form als Parameter übergeben. Zweite Möglichkeit: das im Prinzip gleiche Verfahren über eine Include-Datei.

Also: in irgendwas.pas folgende Procedure:

Delphi-Quellcode:
procedure FormScale(f: TForm);
var x, y: integer;
begin
  Scaled := true;
  x := Screen.width;
  y := screen.height;
  if (y <> ScreenHeightDev) or (x <> ScreenWidthDev) then
  begin
    f.height := (f.clientheight * y div ScreenHeightDev) + f.height - f.clientheight;
    f.width := (f.clientwidth * x div ScreenWidthDev) + f.height - f.clientheight ;
    scaleBy(x, ScreenwidthDev);
  end;
end;
Diese dann über USES oder INCLUDE in deine Units welche scaliert werden sollen einbinden und aufrufen
Delphi-Quellcode:
procedure TForm1.Create.... (oder irgend einandere passende Prozedure/Funktion)
begin
  ....
  FormScale(Form1); // und die zu ändernde Form übergeben
  ....
end;
Nicht getestet, sollte aber funktionieren!

[EDIT]
was ist scaled? - eine Varable von dir? wenn ja, muss die natürlich auch an die Procedure übergeben werden:
procedure FormScale(f: TForm; var scaled: Boolean);
Frage ist ob diese benötigt wird.
  Mit Zitat antworten Zitat