📄 frmdrawreportdesignaddgridunt.pas
字号:
unit frmDrawReportDesignAddGridUnt;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ExtCtrls, Spin;
type
TDrawReportDesignAddGridParam = record
PageWidth: Integer;
PageHeight: Integer;
CellSpace: Integer;
Cols: Integer;
Rows: Integer;
GridAlign: Integer; //0:左,1:中,2:右
IsFixCellSize: Boolean;
ColWidth: Integer;
RowHeight: Integer;
end;
TfrmDrawReportDesignAddGrid = class(TForm)
Label1: TLabel;
Bevel1: TBevel;
Label2: TLabel;
Label3: TLabel;
edtCols: TEdit;
edtRows: TEdit;
udCols: TUpDown;
udRows: TUpDown;
Label4: TLabel;
Bevel2: TBevel;
rbFixCellSize: TRadioButton;
rbPageCellSize: TRadioButton;
edtColWidth: TEdit;
edtRowHeight: TEdit;
udColWidth: TUpDown;
udRowHeight: TUpDown;
labColWidth: TLabel;
labRowHeight: TLabel;
btnOk: TButton;
btnCancel: TButton;
Bevel3: TBevel;
Label5: TLabel;
Bevel4: TBevel;
cboAlign: TComboBox;
labAlign: TLabel;
procedure rbFixCellSizeClick(Sender: TObject);
procedure rbPageCellSizeClick(Sender: TObject);
procedure udColsChanging(Sender: TObject; var AllowChange: Boolean);
procedure udRowsChanging(Sender: TObject; var AllowChange: Boolean);
procedure udColWidthClick(Sender: TObject; Button: TUDBtnType);
procedure udRowHeightClick(Sender: TObject; Button: TUDBtnType);
procedure btnOkClick(Sender: TObject);
private
FParam: TDrawReportDesignAddGridParam;
procedure InitData;
procedure ClearData;
procedure SetData(AParam: TDrawReportDesignAddGridParam);
procedure GetData(var AParam: TDrawReportDesignAddGridParam);
procedure SetCellEnabled(AEnabled: Boolean);
procedure AdjustEditValue;
public
{ Public declarations }
end;
function ShowDrawReportDesignAddGridDlg(var AParam: TDrawReportDesignAddGridParam): Boolean;
var
frmDrawReportDesignAddGrid: TfrmDrawReportDesignAddGrid;
implementation
uses
EASysUtils;
{$R *.dfm}
function ShowDrawReportDesignAddGridDlg(var AParam: TDrawReportDesignAddGridParam): Boolean;
begin
Result := False;
frmDrawReportDesignAddGrid := TfrmDrawReportDesignAddGrid.Create(Application);
with frmDrawReportDesignAddGrid do
try
SetData(AParam);
InitData;
if ShowModal = IDOK then
begin
GetData(AParam);
Result := True;
end;
finally
ClearData;
Free;
end;
frmDrawReportDesignAddGrid := nil;
end;
procedure TfrmDrawReportDesignAddGrid.SetCellEnabled(AEnabled: Boolean);
begin
edtColWidth.Enabled := AEnabled;
udColWidth.Enabled := AEnabled;
edtRowHeight.Enabled := AEnabled;
udRowHeight.Enabled := AEnabled;
labColWidth.Enabled := AEnabled;
labRowHeight.Enabled := AEnabled;
labAlign.Enabled := AEnabled;
cboAlign.Enabled := AEnabled;
end;
procedure TfrmDrawReportDesignAddGrid.rbFixCellSizeClick(Sender: TObject);
begin
SetCellEnabled(True);
end;
procedure TfrmDrawReportDesignAddGrid.rbPageCellSizeClick(Sender: TObject);
begin
SetCellEnabled(False);
end;
procedure TfrmDrawReportDesignAddGrid.AdjustEditValue;
begin
if udCols.Position * udColWidth.Position > FParam.PageWidth then
udColWidth.Position := Trunc(FParam.PageWidth / udCols.Position);
if udRows.Position * udRowHeight.Position > FParam.PageHeight then
udRowHeight.Position := Trunc(FParam.PageHeight / udRows.Position);
end;
procedure TfrmDrawReportDesignAddGrid.ClearData;
begin
end;
procedure TfrmDrawReportDesignAddGrid.GetData(
var AParam: TDrawReportDesignAddGridParam);
begin
AParam.Cols := udCols.Position;
AParam.Rows := udRows.Position;
AParam.GridAlign := cboAlign.ItemIndex;
AParam.IsFixCellSize := rbFixCellSize.Checked;
AParam.ColWidth := udColWidth.Position;
AParam.RowHeight := udRowHeight.Position;
end;
procedure TfrmDrawReportDesignAddGrid.InitData;
begin
udCols.Max := Trunc(FParam.PageWidth / FParam.CellSpace);
udRows.Max := Trunc(FParam.PageHeight / FParam.CellSpace);
udColWidth.Min := FParam.CellSpace;
udColWidth.Position := FParam.CellSpace;
udRowHeight.Min := FParam.CellSpace;
udRowHeight.Position := FParam.CellSpace;
end;
procedure TfrmDrawReportDesignAddGrid.SetData(
AParam: TDrawReportDesignAddGridParam);
begin
FParam := AParam;
end;
procedure TfrmDrawReportDesignAddGrid.udColsChanging(Sender: TObject;
var AllowChange: Boolean);
begin
AdjustEditValue;
end;
procedure TfrmDrawReportDesignAddGrid.udRowsChanging(Sender: TObject;
var AllowChange: Boolean);
begin
AdjustEditValue;
end;
procedure TfrmDrawReportDesignAddGrid.udColWidthClick(Sender: TObject;
Button: TUDBtnType);
begin
AdjustEditValue;
end;
procedure TfrmDrawReportDesignAddGrid.udRowHeightClick(Sender: TObject;
Button: TUDBtnType);
begin
AdjustEditValue;
end;
procedure TfrmDrawReportDesignAddGrid.btnOkClick(Sender: TObject);
begin
ModalResult := IDOK;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -