Hallo ,
ich benutze seit Jahren die Unit Easysize.pas , um '''''alle''''' visuellen Komponenten auf dem Form zu skalieren.
Ist ursprünglich für Delphi gebaut und mit leichten Modifikationen auch unter Lazarus nutzbar.
Zu finden ist die Unit unter
http://torry.net/quicksearchd.php?Strin ... &Title=Yes
hier dann TFormResizer v.2.0 herunterladen .
1) Easysize.pas auspacken und folgende Teile ändern.
Code: Alles auswählen
{ ****************************************************************** }
{ }
{ VCL component TFormResizer: Resizes all components on a form }
{ }
{ See accompanying Readme.txt file for usage instructions }
{ }
{ Version 2.0 (May 1999) }
{ }
{ Versions 1.0, 1.1 written by David A. Price, dprice@erols.com }
{ Version 2.0 adds font-resizing enhancements contributed }
{ by Wolfgang Kleinrath, office@kleinrath.at }
{ }
{ Copyright © 1999 by David A. Price }
{ http://www.compcreate.com }
{ This file may be redistributed freely if not altered }
{ Suggestions are welcome }
{ Offered "AS IS" -- no warranties }
{ }
{ ****************************************************************** }
unit Easysize;
interface
{$MODE DELPHI} // <----------------------------- Einfügen
uses Messages, SysUtils, Classes, Controls,
Forms, Graphics, StdCtrls;
// folgendes noch ausklammern
//{$IFDEF WIN32}
//{$R Easysize.d32}
//{$ELSE}
//{$R Easysize.d16}
//{$ENDIF}
2) ein neues Projekt starten und ein paar Komponeten auf die Form schmeißen (Buttons , Label's u.u.u)
3) Im Objektinspektor einen Font für das Formular auswählen , z.B. Arial , Fett , 10
4) Die Unit Easysize oben unter uses einbinden
Code: Alles auswählen
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
Easysize; // <----------- die unit Easysize einbinden
5) eine Variable für den Formreziser anlegen
Code: Alles auswählen
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
GroupBox1: TGroupBox;
Label1: TLabel;
procedure FormCreate(Sender: TObject);
procedure FormResize(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
es:TFormResizer; // <----------------------- Variable für den TFormreziser
end;
6) In form oncreate folgende Einträge einbauen .
Code: Alles auswählen
procedure TForm1.FormCreate(Sender: TObject);
begin
es:=TFormResizer.Create(form1); // <----- TFormResizer Objekt erzeugen
es.EnforceMinSize:=false; // <----- legt fest , ob man die Form kleiner machen kann , als die Entwurfsgröße , false läßt dieses zu
es.ResizeFonts:=true; // <----- Fonts mit zoomen ja / nein
es.MinFontSize:=2; // <----- Minimale Fontgröße
es.MaxFontSize:=30; // <----- Maximale Fontgröße
es.InitializeForm; // <----- Initalisieren des TFormResizer's , ganz wichtig , sonst ballert es !!!!
end;
7) Unter form onresize noch folgenden Eintrag
Code: Alles auswählen
procedure TForm1.FormResize(Sender: TObject);
begin
es.ResizeAll;
end;
8) Programm starten und ausprobieren.
Beim Ziehen der Form sollten nun alle Komponenten und auch deren Fonts skaliert werden .
Gruß
Frank