⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frxoleeditor.pas

📁 报表源码 FastReport 3 is new generation of the report generators components. It consists of report engin
💻 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 + -