home *** CD-ROM | disk | FTP | other *** search
- unit Oleframe;
-
- interface
-
- uses
- SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
- Forms, Dialogs, OLEObj, Menus, ExtCtrls, BOLEDefs, TOCtrl;
-
- type
- TOLEFrameForm = class(TForm)
- MainMenu1: TMainMenu;
- File1: TMenuItem;
- New1: TMenuItem;
- Open1: TMenuItem;
- N1: TMenuItem;
- Exit1: TMenuItem;
- ToolBarPanel: TPanel;
- StatusBarPanel: TPanel;
- OpenDialog: TOpenDialog;
- procedure New1Click(Sender: TObject);
- procedure Exit1Click(Sender: TObject);
- procedure FormCreate(Sender: TObject);
- procedure FormDragDrop(Sender, Source: TObject; X, Y: Integer);
- procedure Open1Click(Sender: TObject);
- private
- FEmbedClipFmt: Word;
- FLinkClipFmt: Word;
- function CreateChild: TOLEObjectForm;
- public
- Fmts: array[0..1] of BOleFormat;
- end;
-
- var
- OLEFrameForm: TOLEFrameForm;
-
- implementation
-
- {$R *.DFM}
-
- function TOLEFrameForm.CreateChild: TOLEObjectForm;
- begin
- CreateChild := TOLEObjectForm.Create(Self);
- CreateChild.Show
- end;
-
- procedure TOLEFrameForm.New1Click(Sender: TObject);
- begin
- CreateChild
- end;
-
- procedure TOLEFrameForm.Exit1Click(Sender: TObject);
- begin
- Close
- end;
-
- procedure TOLEFrameForm.FormCreate(Sender: TObject);
- begin
- FEmbedClipFmt := RegisterClipboardFormat('Embedded Object');
- FLinkClipFmt := RegisterClipboardFormat('Link Source');
- Fmts[0].fmtId := FEmbedClipFmt;
- Fmts[0].fmtMedium := BOLEMediumCalc(FEmbedClipFmt);
- Fmts[0].fmtIsLinkable := False;
- StrPCopy(Fmts[0].fmtName, '%s');
- StrPCopy(Fmts[0].fmtResultName, '%s');
- Fmts[1].fmtId := FLinkClipFmt;
- Fmts[1].fmtMedium := BOLEMediumCalc(FLinkClipFmt);
- Fmts[1].fmtIsLinkable := True;
- StrPCopy(Fmts[1].fmtName, '%s');
- StrPCopy(Fmts[1].fmtResultName, '%s');
- RegisterFormAsOleDropTarget(Self, Fmts)
- end;
-
- procedure TOLEFrameForm.FormDragDrop(Sender, Source: TObject; X,
- Y: Integer);
- var
- NewChild: TOLEObjectForm;
- begin
- if Source is TOLEDropNotify then
- begin
- NewChild := CreateChild;
- with Source as TOLEDropNotify do
- NewChild.OLEContainer.PInitInfo := PInitInfo
- end
- end;
-
- procedure TOLEFrameForm.Open1Click(Sender: TObject);
- var
- NewChild: TOLEObjectForm;
- begin
- if OpenDialog.Execute then
- begin
- NewChild := CreateChild;
- NewChild.OLEContainer.LoadFromFile(OpenDialog.FileName)
- end
- end;
-
- end.
-