⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usizedialog.pas

📁 delphi 写的delphi的程序 Handel is a free, standalone development tool created with Delphi 3 that enable
💻 PAS
字号:
unit uSizeDialog;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TSizeDialog = class(TForm)
    GroupBox1: TGroupBox;
    hNoChange: TRadioButton;
    hShrink: TRadioButton;
    hGrow: TRadioButton;
    hAbsolute: TRadioButton;
    hWidth: TEdit;
    GroupBox2: TGroupBox;
    vNoChange: TRadioButton;
    vShrink: TRadioButton;
    vGrow: TRadioButton;
    vAbsolute: TRadioButton;
    vHeight: TEdit;
    OKButton: TButton;
    CancelButton: TButton;
    HelpButton: TButton;
    procedure hAbsoluteClick(Sender: TObject);
    procedure vAbsoluteClick(Sender: TObject);
    procedure OKButtonClick(Sender: TObject);
    procedure HelpButtonClick(Sender: TObject);
  private
    { Private declarations }
    procedure ResizeControl(Size:Integer;IsWidth:Boolean);
    function  GetMaxValue(IsWidth:Boolean):Integer;
    function  GetMinValue(IsWidth:Boolean):Integer;
  public
    { Public declarations }
  end;

var
  SizeDialog: TSizeDialog;

implementation

uses MainForm, Proxy, utype, Uconst, utils;

{$R *.DFM}

procedure TSizeDialog.hAbsoluteClick(Sender: TObject);
begin
   hWidth.Enabled:= True;
   hWidth.SetFocus;
end;

procedure TSizeDialog.vAbsoluteClick(Sender: TObject);
begin
   vHeight.Enabled:= True;
   vHeight.SetFocus;
end;

procedure TSizeDialog.ResizeControl(Size:Integer;IsWidth:Boolean);
var
  I:Integer;
begin
   for I:=0 to ProxyDesigner.SelectList.Count - 1 do begin
       if IsWidth then TControl(ProxyDesigner.SelectList[I]).Width:= Size
       else TControl(ProxyDesigner.SelectList[I]).Height:= Size;
   end;
   ProxyDesigner.UpdateGrabHandle;
end;

function TSizeDialog.GetMaxValue(IsWidth:Boolean):Integer;
var
  I,Temp,Max:Integer;
begin
   Max:=0;
   for I:=0 to ProxyDesigner.SelectList.Count - 1 do begin
       if IsWidth then Temp:= TControl(ProxyDesigner.SelectList[I]).Width
       else Temp:= TControl(ProxyDesigner.SelectList[I]).Height;
       if Temp > Max then Max:= Temp;
   end;
   Result:= Max;
end;

function TSizeDialog.GetMinValue(IsWidth:Boolean):Integer;
var
  I,Temp,Min:Integer;
begin
   Min:=10000;
   for I:=0 to ProxyDesigner.SelectList.Count - 1 do begin
       if IsWidth then Temp:= TControl(ProxyDesigner.SelectList[I]).Width
       else Temp:= TControl(ProxyDesigner.SelectList[I]).Height;
       if Temp < Min then Min:= Temp;
   end;
   Result:= Min;
end;

procedure TSizeDialog.OKButtonClick(Sender: TObject);
begin
   if hAbsolute.Checked then ResizeControl(StrToInt(hWidth.Text), True)
   else if hGrow.Checked then ResizeControl(GetMaxValue(True), True)
   else if hShrink.Checked then ResizeControl(GetMinValue(True), True);
   if vAbsolute.Checked then ResizeControl(StrToInt(vHeight.Text), False)
   else if vGrow.Checked then ResizeControl(GetMaxValue(False), False)
   else if vShrink.Checked then ResizeControl(GetMinValue(False), False);
end;

procedure TSizeDialog.HelpButtonClick(Sender: TObject);
begin
   ShowKeywordHelp('Size command');
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -