Componentes.Terceros.FastRe.../internal/4.2/1/Source/frxOLEEditor.pas
2007-11-18 19:40:07 +00:00

148 lines
3.4 KiB
ObjectPascal

{******************************************}
{ }
{ FastReport v4.0 }
{ OLE design editor }
{ }
{ Copyright (c) 1998-2007 }
{ 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);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
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
Caption := frxGet(3400);
InsertB.Caption := frxGet(3401);
EditB.Caption := frxGet(3402);
CloseB.Caption := frxGet(3403);
if UseRightToLeftAlignment then
FlipChildren(True);
end;
procedure TfrxOleEditorForm.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_F1 then
frxResources.Help(Self);
end;
initialization
frxComponentEditors.Register(TfrxOLEView, TfrxOLEEditor);
end.
//862fd5d6aa1a637203d9b08a3c0bcfb0