📄 reportlineedit.pas
字号:
unit ReportLineEdit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, Buttons, DsgnIntf, ReportUnit;
type
TReportLineEditForm = class(TForm)
CloseBtn: TButton;
PreviewGroup: TGroupBox;
PropertyGroup: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
LeftEdit: TEdit;
TopEdit: TEdit;
HeightEdit: TEdit;
FontEdit: TEdit;
EditFont: TSpeedButton;
FontDialog: TFontDialog;
PreviewPanel: TPanel;
PreviewImage: TImage;
AlignCheck: TCheckBox;
procedure FormActivate(Sender: TObject);
procedure EditFontClick(Sender: TObject);
procedure LeftEditChange(Sender: TObject);
procedure TopEditChange(Sender: TObject);
procedure HeightEditChange(Sender: TObject);
procedure AlignCheckClick(Sender: TObject);
private
procedure RefreshValues;
procedure RefreshImage;
public
Modified: Boolean;
ReportLine: TReportLine;
end;
var
ReportLineEditForm: TReportLineEditForm;
implementation
{$R *.DFM}
procedure TReportLineEditForm.RefreshValues;
begin
LeftEdit.Text := IntToStr(ReportLine.Left);
TopEdit.Text := IntToStr(ReportLine.Top);
HeightEdit.Text := IntToStr(ReportLine.Height);
FontEdit.Text := ReportLine.Font.Name + ' - ' + IntToStr(ReportLine.Font.Size);
AlignCheck.Checked := ReportLine.RightAlign;
end;
procedure TReportLineEditForm.FormActivate(Sender: TObject);
begin
FontDialog.Font.Assign(ReportLine.Font);
RefreshValues;
Modified := False;
end;
procedure TReportLineEditForm.EditFontClick(Sender: TObject);
begin
if FontDialog.Execute then
begin
ReportLine.Font.Assign(FontDialog.Font);
Modified := True;
RefreshValues;
RefreshImage;
end;
end;
procedure TReportLineEditForm.LeftEditChange(Sender: TObject);
var
OldValue: Integer;
begin
OldValue := ReportLine.Left;
if LeftEdit.Text = '' then ReportLine.Left := 0
else
try
ReportLine.Left := StrToInt(LeftEdit.Text);
Modified := True;
RefreshImage;
except
LeftEdit.Text := IntToStr(OldValue);
end;
end;
procedure TReportLineEditForm.TopEditChange(Sender: TObject);
var
OldValue: Integer;
begin
OldValue := ReportLine.Top;
if TopEdit.Text = '' then ReportLine.Top := 0
else
try
ReportLine.Top := StrToInt(TopEdit.Text);
Modified := True;
RefreshImage;
except
TopEdit.Text := IntToStr(OldValue);
end;
end;
procedure TReportLineEditForm.HeightEditChange(Sender: TObject);
var
OldValue: Integer;
begin
OldValue := ReportLine.Height;
if HeightEdit.Text = '' then ReportLine.Height := 0
else
try
ReportLine.Height := StrToInt(HeightEdit.Text);
Modified := True;
RefreshImage;
except
HeightEdit.Text := IntToStr(OldValue);
end;
end;
procedure TReportLineEditForm.RefreshImage;
begin
PreviewImage.Canvas.Brush.Color := clWhite;
PreviewImage.Canvas.Brush.Style := bsSolid;
PreviewImage.Canvas.Pen.Color := clWhite;
PreviewImage.Canvas.Pen.Style := psSolid;
PreviewImage.Canvas.Rectangle(0, 0, PreviewImage.Width, PreviewImage.Height);
PreviewImage.Canvas.Pen.Color := clBlack;
PreviewImage.Canvas.MoveTo(10, 10);
PreviewImage.Canvas.LineTo(PreviewImage.Width, 10);
PreviewImage.Canvas.Pen.Color := clSilver;
PreviewImage.Canvas.MoveTo(10, 10 + ReportLine.Height);
PreviewImage.Canvas.LineTo(PreviewImage.Width, 10 + ReportLine.Height);
PreviewImage.Canvas.Pen.Color := clBlack;
PreviewImage.Canvas.MoveTo(10, 0);
PreviewImage.Canvas.LineTo(10, PreviewImage.Height);
PreviewImage.Canvas.Font.Assign(ReportLine.Font);
PreviewImage.Canvas.TextOut(10 + ReportLine.Left, 10 + ReportLine.Top, 'Aa 0123456789');
end;
procedure TReportLineEditForm.AlignCheckClick(Sender: TObject);
begin
ReportLine.RightAlign := AlignCheck.Checked;
Modified := True;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -