📄 frxoleeditor.pas
字号:
{******************************************}
{ }
{ FastReport v3.0 }
{ OLE design editor }
{ }
{ Copyright (c) 1998-2005 }
{ by Alexander Tzyganenko, }
{ Fast Reports Inc. }
{ }
{******************************************}
unit frxOLEEditor;
interface
{$I frx.inc}
uses
Windows, Classes, SysUtils, Graphics, Controls, StdCtrls, Forms, Menus,
Dialogs, frxClass, frxCustomEditors, frxDsgnIntf, frxOLE, OleCtnrs
{$IFDEF Delphi6}
, Variants
{$ENDIF};
type
TfrxOLEEditor = class(TfrxViewEditor)
public
function Edit:Boolean; override;
function HasEditor:Boolean; override;
procedure GetMenuItems; override;
function Execute(Tag:Integer; Checked:Boolean):Boolean; override;
end;
TfrxOleEditorForm = class(TForm)
InsertB:TButton;
EditB:TButton;
CloseB:TButton;
OleContainer:TOleContainer;
procedure InsertBClick(Sender:TObject);
procedure EditBClick(Sender:TObject);
procedure FormCreate(Sender:TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
implementation
{$R *.DFM}
uses frxRes;
{ TfrxOLEEditor }
function TfrxOLEEditor.HasEditor:Boolean;
begin
Result:= True;
end;
function TfrxOLEEditor.Edit:Boolean;
begin
with TfrxOleEditorForm.Create(Designer) do
begin
frxAssignOLE(TfrxOLEView(Component).OleContainer, OleContainer);
Result:= ShowModal = mrOk;
if Result then
frxAssignOLE(OleContainer, TfrxOLEView(Component).OleContainer);
Free;
end;
end;
function TfrxOLEEditor.Execute(Tag:Integer; Checked:Boolean):Boolean;
var
i:Integer;
c:TfrxComponent;
v:TfrxOLEView;
begin
Result:= inherited Execute(Tag, Checked);
for i:= 0 to Designer.SelectedObjects.Count-1 do
begin
c:= Designer.SelectedObjects[i];
if (c is TfrxOLEView) and not (rfDontModify in c.Restrictions) then
begin
v:= TfrxOLEView(c);
if Tag = 1 then
v.Stretched:= Checked;
Result:= True;
end;
end;
end;
procedure TfrxOLEEditor.GetMenuItems;
var
v:TfrxOLEView;
begin
v:= TfrxOLEView(Component);
AddItem(frxResources.Get('olStretched'), 1, v.Stretched);
inherited;
end;
{ TfrxOLEEditorForm }
procedure TfrxOleEditorForm.InsertBClick(Sender:TObject);
begin
OleContainer.InsertObjectDialog;
end;
procedure TfrxOleEditorForm.EditBClick(Sender:TObject);
begin
if OleContainer.OleObjectInterface<>nil then
OleContainer.DoVerb(ovPrimary);
end;
procedure TfrxOleEditorForm.FormCreate(Sender:TObject);
begin
frxResources.LocalizeForm(Self);
end;
initialization
frxComponentEditors.Register(TfrxOLEView, TfrxOLEEditor);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -