title image


Smiley Aus einer FAQ
Erste Möglichkeit:Auf jeden Fall habe ich mal ein Stueck Code dafuer gekriegt, das zu meiner grossen Ueberraschung bis jetzt jedes Formularmitsamt allem Geraffel drauf prima skaliert hat. Es sind nur ein paar Zeilen im FormCreate des Hauptformulars und dazu zweiKonstanten (global definiert): const ScreenWidthDev = XXX; ScreenHeightDev = YYY;{statt XXX und YYY die Aufloesung zur Entwicklungszeit eintragen. Angeblich soll der Code am besten von der hoechsten Aufloesung runterskalieren. Ich musste aber immer von 640/480 (die hohen Aufloesungen kommen bei mir nicht so gut) hochskalieren und es ging auch.}procedure TForm1.FormCreate(Sender: TObject);var x,y: Integer; // f. Bildschirmauflösungbegin Scaled:= true; x:= Screen.Width; y:= Screen.Height; if (xScreenWidthDev) or (yScreenHeightDev) then begin Form1.Height:= (Form1.ClientHeight*y div ScreenHeightDev) + Form1.Height - Form1.ClientHeight; Form1.Width:= (Form1.ClientWidth*y div ScreenWidthDev) + Form1.Width - Form1.ClientWidth; ScaleBy(x,ScreenWidthDev); end; // of ifWorueber ich mich immer wieder wundern kann: Mit dieser Methode werden ALLE Fenster des Projekts skaliert, obwohldoch eigentlich ausdruecklich nur Form1 skaliert wird. Komisch.Eine Zweite Möglichkeit soll sein:const ScreenHeight: integer = 800; {I designed my form in 800x600 mode.} ScreenWidth: integer = 600; procedure TForm1.FormCreate(Sender: TObject); var x, y: LongInt; {Integers will not not a large enough value.} begin form1.scaled := true; x := getSystemMetrics(SM_CXSCREEN); y := getSystemMetrics(SM_CYSCREEN); if (x ScreenHeight) or (y ScreenWidth) then with form1 do begin height := height * x DIV ScreenHeight; width := width * y DIV ScreenWidth; scaleBy(x, ScreenHeight); end; end;Scalieren der Schriftarten:type TFooClass = class(TControl); { needed to get at protected } { font property }var i: integer;begin for i := ControlCount - 1 downto 0 do TFooClass(Controls[i]).Font.Size := (NewFormWidth div OldFormWidth) * TFooClass(Controls[i]).Font.Size;end;

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: