📄 panelunit.pas
字号:
{*********************************************}
{* RepoEdit - QuickReport Editor *}
{* for Delphi 4 *}
{* (R) Copyright *}
{* Borzov Vladimir borzov@rsm.ru *}
{*********************************************}
unit PanelUnit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Buttons, ExtCtrls, StdCtrls, Menus, Db, DBTables,ConfirmUnit1, ToolWin,
ComCtrls, Spin;
type
TPanelForm = class(TForm)
PanelTop: TControlBar;
ToolBar1: TToolBar;
ToolBar2: TToolBar;
ToolBar3: TToolBar;
BtnParam: TSpeedButton;
BtnChangeName: TSpeedButton;
BtnDelete: TSpeedButton;
SpeedButtonClear: TSpeedButton;
BtnSeeAll: TSpeedButton;
BtnSave: TSpeedButton;
SpButtonPlus: TSpeedButton;
EditHideDisabled: TSpeedButton;
SpeedButton1: TSpeedButton;
BtnCancel: TSpeedButton;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
FontDialog: TFontDialog;
ToolBar4: TToolBar;
BtnFont: TSpeedButton;
ToolButton4: TToolButton;
EditFont: TComboBox;
EditFontSize: TComboBox;
ToolButton6: TToolButton;
BtnFontBold: TSpeedButton;
BtnFontItalic: TSpeedButton;
BtnFontUnderline: TSpeedButton;
ToolButton7: TToolButton;
BtnAlignLeft: TSpeedButton;
BtnAlignCenter: TSpeedButton;
BtnAlignRight: TSpeedButton;
BtnMinus: TSpeedButton;
ToolButton8: TToolButton;
ToolBar5: TToolBar;
LabLeft: TLabel;
EditLeft: TSpinEdit;
LabTop: TLabel;
EditTop: TSpinEdit;
ToolButton9: TToolButton;
LabHeight: TLabel;
EditHeight: TSpinEdit;
LabWidth: TLabel;
EditWidth: TSpinEdit;
EditEnabled: TCheckBox;
ToolBar6: TToolBar;
EditCaption: TComboBox;
EditLines: TBitBtn;
OpenDialog: TOpenDialog;
procedure FormDestroy(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure EditHideDisabledClick(Sender: TObject);
procedure SpButtonPlusClick(Sender: TObject);
procedure RichText1Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure BtnDeleteClick(Sender: TObject);
procedure SpeedButtonClearClick(Sender: TObject);
procedure BtnFontClick(Sender: TObject);
procedure EditFontChange(Sender: TObject);
procedure BtnFontBoldClick(Sender: TObject);
procedure BtnMinusClick(Sender: TObject);
procedure EditLeftChange(Sender: TObject);
procedure EditWidthChange(Sender: TObject);
procedure EditEnabledClick(Sender: TObject);
procedure EditLinesClick(Sender: TObject);
procedure EditCaptionChange(Sender: TObject);
private
{ Private declarations }
FOldOnClose:TCloseEvent;
CannotSave:boolean;
public
{ Public declarations }
property OldOnClose:TCloseEvent read FOldOnClose write FOldOnClose;
procedure SetEnabledBV(Value:boolean);
procedure ThOnClose(Sender: TObject; var Action: TCloseAction);
procedure SetFontButtons;
procedure SetFontValues;
end;
var
PanelForm: TPanelForm;
implementation
{$R *.DFM}
uses RepoEdit,QuickRPT,QRCTRLS,QRPRNTR,EditFileUnit,
MessUnit,GetNewTypeUnit,qrextra,GetMemoTextUnit,qrExpBld;
procedure TPanelForm.SetFontValues;
var Selected:TWinControl;
i:integer;
begin
FontDialog.Font.Name:=EditFont.Text;
try
FontDialog.font.Size:=strtoint(EditFontSize.text);
except
end;
if BtnFontBold.Down
then fontdialog.Font.Style:=fontdialog.Font.Style+[fsBold] // system.Include(FontDialog.Font.style,fsBold)
else fontdialog.Font.Style:=fontdialog.Font.Style-[fsBold];
if BtnFontItalic.Down
then fontdialog.Font.Style:=fontdialog.Font.Style+[fsItalic]
else fontdialog.Font.Style:=fontdialog.Font.Style-[fsItalic];
if BtnFontUnderline.Down
then fontdialog.Font.Style:=fontdialog.Font.Style+[fsUnderline]
else fontdialog.Font.Style:=fontdialog.Font.Style-[fsUnderline];
if owner is TRepoEdit then Selected:=(Owner as TRepoEdit).Selected
else Selected:=nil;
if Assigned(selected)
and ((Selected is TQRCustomLabel)
or (Selected is TQRCustomRichText)
or (Selected is TQRCustomBand)
or (Selected is TQuickRep)
)
then begin
if Selected is TQuickRep then (Selected as TQuickRep).Font:=FontDialog.Font
else if Selected is TqrCustomLabel then (Selected as TqrCustomLabel).Font:=FontDialog.Font
else if Selected is TqrCustomRichText then (Selected as TqrCustomRichText).Font:=FontDialog.Font
else (Selected as TqrCustomBand).Font:=FontDialog.Font;
end;
if Assigned(selected) and
((Selected is TQRCustomLabel)
or (Selected is TQRCustomRichText)
)
then begin
BtnAlignLeft.Enabled:=true;
BtnAlignCenter.Enabled:=true;
BtnAlignRight.Enabled:=true;
if Selected is TqrCustomLabel then begin
if BtnAlignLeft.down then (Selected as tqrCustomLabel).Alignment:=taleftjustify
else if BtnAlignRight.down then (Selected as tqrCustomLabel).Alignment:=taRightjustify
else if BtnAlignCenter.down then (Selected as tqrCustomLabel).Alignment:=taCenter;
end
else begin
if BtnAlignLeft.down then (Selected as TQRCustomRichText).Alignment:=taleftjustify
else if BtnAlignRight.down then (Selected as TQRCustomRichText).Alignment:=taRightjustify
else if BtnAlignCenter.down then (Selected as TQRCustomRichText).Alignment:=taCenter;
end
end;
if assigned(Selected)
then begin
if Selected is TQRDBText then (Selected as TQRDBText).DataField:=EditCaption.Text
else if Selected is TQREXPr then begin
(Selected as TQREXPR).Expression:=EditCaption.Text;
end
else
if Selected is TQRDBImage then (Selected as TQRDBImage).DataField:=EditCaption.Text
else if selected is TQRSysData then (selected as TQRsysdata).Text:=EditCaption.Text
else if selected is TQRCustomLabel then (selected as TQRCustomlabel).Caption:=EditCaption.Text;
selected.SetBounds(editLeft.Value,EditTop.Value,Editwidth.Value,EditHeight.Value);
application.ProcessMessages;
(Owner as TRepoEdit).SetRectCoord;
selected.Enabled:=EditEnabled.Checked;
for i:=0 to selected.ControlCount-1 do
if selected.Controls[i] is tEnabledLab then begin
selected.Controls[i].Visible:=not selected.Enabled;
break
end;
(Owner as TRepoEdit).thReport.Repaint;
end
end;
procedure TPanelForm.SetFontButtons;
var Selected:TWinControl;
i,k:integer;
thDataSet:TDataset;
begin
if owner is TRepoEdit then Selected:=(Owner as TRepoEdit).Selected
else Selected:=nil;
if Assigned(selected)
and ((Selected is TQRCustomLabel)
or (Selected is TQRCustomRichText)
or (Selected is TQRCustomBand)
or (Selected is TQuickRep)
)
then begin
if Selected is TQuickRep then FontDialog.Font:=(Selected as TQuickRep).Font
else if Selected is TqrCustomLabel then FontDialog.Font:=(Selected as TqrCustomLabel).Font
else if Selected is TqrCustomRichText then FontDialog.Font:=(Selected as TqrCustomRichText).Font
else FontDialog.Font:=(Selected as TqrCustomBand).Font;
Btnfont.Enabled:=true;
EditFont.Enabled:=true;
EditFontSize.Enabled:=true;
BtnFontBold.Enabled:=true;
BtnFontItalic.Enabled:=true;
BtnFontUnderline.enabled:=true;
BtnAlignLeft.Enabled:=true;
BtnAlignCenter.Enabled:=true;
BtnAlignRight.Enabled:=true;
EditFont.Text:=FontDialog.font.Name;
EditFontSize.Text:=inttostr(FontDialog.Font.size);
BtnFontBold.Down:=fsBold in FontDialog.Font.Style;
BtnFontItalic.Down:=fsItalic in FontDialog.Font.Style;
BtnFontUnderline.Down:=fsUnderline in FontDialog.Font.Style;
end
else begin
Btnfont.Enabled:=false;
EditFont.Text:='';
EditFont.Enabled:=false;
EditFontSize.Text:='';
EditFontSize.Enabled:=false;
BtnFontBold.Enabled:=false;
BtnFontItalic.Enabled:=false;
BtnFontUnderline.enabled:=false;
BtnAlignLeft.Enabled:=false;
BtnAlignCenter.Enabled:=false;
BtnAlignRight.Enabled:=false;
end;
if Assigned(selected) and
((Selected is TQRCustomLabel)
or (Selected is TQRCustomRichText)
)
then begin
BtnAlignLeft.Enabled:=true;
BtnAlignCenter.Enabled:=true;
BtnAlignRight.Enabled:=true;
if Selected is TqrCustomLabel then begin
BtnAlignLeft.down:=(Selected as tqrCustomLabel).Alignment=taleftjustify;
BtnAlignRight.down:=(Selected as tqrCustomLabel).Alignment=taRightjustify;
BtnAlignCenter.down:=(Selected as tqrCustomLabel).Alignment=taCenter;
end
else begin
BtnAlignLeft.down:=(Selected as TQRCustomRichText).Alignment=taleftjustify;
BtnAlignRight.down:=(Selected as TQRCustomRichText).Alignment=taRightjustify;
BtnAlignCenter.down:=(Selected as TQRCustomRichText).Alignment=taCenter;
end
end
else begin
BtnAlignLeft.Enabled:=false;
BtnAlignCenter.Enabled:=false;
BtnAlignRight.Enabled:=false;
end;
if assigned(Selected)
then begin
EditTop.enabled:=true;
EditWidth.enabled:=true;
EditLeft.enabled:=true;
EditHeight.enabled:=true;
LabTop.enabled:=true;
LabWidth.enabled:=true;
LabLeft.enabled:=true;
LabHeight.enabled:=true;
EditTop.OnChange:=nil;
EditWidth.Onchange:=nil;
EditLeft.OnChange:=nil;
EditHeight.OnChange:=nil;
EditTop.Value:=selected.Top;
EditWidth.Value:=selected.Width;
EditLeft.Value:=selected.Left;
EditHeight.Value:=selected.Height;
EditTop.OnChange:=EditLeftChange;
EditWidth.Onchange:=EditwidthChange;
EditLeft.OnChange:=EditLeftChange;
EditHeight.OnChange:=EditLeftChange;
EditEnabled.Enabled:=true;
EditEnabled.OnClick:=nil;
EditEnabled.Checked:=Selected.Enabled;
EditEnabled.OnClick:=EditEnabledClick;
EditCaption.Enabled:=true;
EditCaption.Style:=csSimple;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -