📄 usizedialog.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 + -