自动适应屏幕分辨率

unit ypkodac;

interface

uses

  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

  StdCtrls, Grids, DBGrids, Db, MemDS, DBAccess, Ora;

  const

    DefaultWidth   =  1024;//编程时的分辨率

    DefaultHeight   =  768;

 

type

  TForm1 = class(TForm)

    OraSession1: TOraSession;

    Oramysql: TOraQuery;

    DataSource1: TDataSource;

    DBGrid1: TDBGrid;

    Edit1: TEdit;

    Button1: TButton;

    Button2: TButton;

    tymdz: TCheckBox;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Edit1KeyPress(Sender: TObject; var Key: Char);

    procedure FormCreate(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

   TMyControl= class(TControl); //在此加入聲明

var

  Form1: TForm1;

implementation

{$R *.DFM}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

procedure TForm1.FormCreate(Sender: TObject);

var

    i:   integer;

    a:   real;

begin

    if   Screen.Width   <>   DefaultWidth   then

    begin

        height:=longint(height)*longint(screen.height)   div   DefaultHeight;

        =longint(width)*longint(screen.width)   div   DefaultWidth;

        scaleby(screen.width   ,   DefaultWidth);

        for   i   :=   0   to   self.ControlCount   -1   do

        begin

            a   :=   screen.Height   /   DefaultHeight   *   TMyControl(self.Controls[i]).Font.Size;

            TMyControl(self.Controls[i]).Font.Size   :=   trunc(a);

        end;

    end;

end;

原文地址:https://www.cnblogs.com/hssbsw/p/7672638.html