home *** CD-ROM | disk | FTP | other *** search
/ PC Format Collection 48 / SENT14D.ISO / tech / delphi / disk15 / ole2doc.pak / OLEFRAME.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1995-08-24  |  2.3 KB  |  98 lines

  1. unit Oleframe;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  7.   Forms, Dialogs, OLEObj, Menus, ExtCtrls, BOLEDefs, TOCtrl;
  8.  
  9. type
  10.   TOLEFrameForm = class(TForm)
  11.     MainMenu1: TMainMenu;
  12.     File1: TMenuItem;
  13.     New1: TMenuItem;
  14.     Open1: TMenuItem;
  15.     N1: TMenuItem;
  16.     Exit1: TMenuItem;
  17.     ToolBarPanel: TPanel;
  18.     StatusBarPanel: TPanel;
  19.     OpenDialog: TOpenDialog;
  20.     procedure New1Click(Sender: TObject);
  21.     procedure Exit1Click(Sender: TObject);
  22.     procedure FormCreate(Sender: TObject);
  23.     procedure FormDragDrop(Sender, Source: TObject; X, Y: Integer);
  24.     procedure Open1Click(Sender: TObject);
  25.   private
  26.     FEmbedClipFmt: Word;
  27.     FLinkClipFmt: Word;
  28.     function CreateChild: TOLEObjectForm;
  29.   public
  30.     Fmts: array[0..1] of BOleFormat;
  31.   end;
  32.  
  33. var
  34.   OLEFrameForm: TOLEFrameForm;
  35.  
  36. implementation
  37.  
  38. {$R *.DFM}
  39.  
  40. function TOLEFrameForm.CreateChild: TOLEObjectForm;
  41. begin
  42.   CreateChild := TOLEObjectForm.Create(Self);
  43.   CreateChild.Show
  44. end;
  45.  
  46. procedure TOLEFrameForm.New1Click(Sender: TObject);
  47. begin
  48.   CreateChild
  49. end;
  50.  
  51. procedure TOLEFrameForm.Exit1Click(Sender: TObject);
  52. begin
  53.   Close
  54. end;
  55.  
  56. procedure TOLEFrameForm.FormCreate(Sender: TObject);
  57. begin
  58.   FEmbedClipFmt := RegisterClipboardFormat('Embedded Object');
  59.   FLinkClipFmt := RegisterClipboardFormat('Link Source');
  60.   Fmts[0].fmtId := FEmbedClipFmt;
  61.   Fmts[0].fmtMedium := BOLEMediumCalc(FEmbedClipFmt);
  62.   Fmts[0].fmtIsLinkable := False;
  63.   StrPCopy(Fmts[0].fmtName, '%s');
  64.   StrPCopy(Fmts[0].fmtResultName, '%s');
  65.   Fmts[1].fmtId := FLinkClipFmt;
  66.   Fmts[1].fmtMedium := BOLEMediumCalc(FLinkClipFmt);
  67.   Fmts[1].fmtIsLinkable := True;
  68.   StrPCopy(Fmts[1].fmtName, '%s');
  69.   StrPCopy(Fmts[1].fmtResultName, '%s');
  70.   RegisterFormAsOleDropTarget(Self, Fmts)
  71. end;
  72.  
  73. procedure TOLEFrameForm.FormDragDrop(Sender, Source: TObject; X,
  74.   Y: Integer);
  75. var
  76.   NewChild: TOLEObjectForm;
  77. begin
  78.   if Source is TOLEDropNotify then
  79.   begin
  80.     NewChild := CreateChild;
  81.     with Source as TOLEDropNotify do
  82.       NewChild.OLEContainer.PInitInfo := PInitInfo
  83.   end
  84. end;
  85.  
  86. procedure TOLEFrameForm.Open1Click(Sender: TObject);
  87. var
  88.   NewChild: TOLEObjectForm;
  89. begin
  90.   if OpenDialog.Execute then
  91.   begin
  92.     NewChild := CreateChild;
  93.     NewChild.OLEContainer.LoadFromFile(OpenDialog.FileName)
  94.   end
  95. end;
  96.  
  97. end.
  98.