word中如何插入自已做的控件? ( 积分: 20 )

  • 主题发起人 主题发起人 tegger
  • 开始时间 开始时间
T

tegger

Unregistered / Unconfirmed
GUEST, unregistred user!
word中如何插入自已做的控件?
 
word中如何插入自已做的控件?
 
修改word菜单
方法一:
uses Office2000;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
WordApplication1.Connect;
WordApplication1.Visible:=true;
end;

procedure TForm1.Button2Click(Sender: TObject);
var i:Integer;
begin
if WordApplication1.CommandBars.ActiveMenuBar.Enabled then begin
with WordApplication1.CommandBars.ActiveMenuBar do begin
{ ListBox1.Clear;
for i:=1 to Controls.Count do
ListBox1.Items.Add(Controls.Caption);}//你可以把现有的菜单信息放在这个LISTBOX里看一下
Controls[5].Set_Visible(false); //删除菜单,实际是隐藏
Controls[Controls.Count].Set_Caption('我的帮助'); //改菜单项
with Controls.Add(msoControlpopup,EmptyParam,EmptyParam,EmptyParam,true) do begin //增加菜单
Set_Caption('新菜单项');
end;
end;
end;
end;

方法二:(添加子菜单和事件)
procedure TForm1.Button2Click(Sender: TObject);
var i:Integer;
b:CommandBarPopup;
c:CommandBarButton;
begin
if WordApplication1.CommandBars.ActiveMenuBar.Enabled then begin
with WordApplication1.CommandBars.ActiveMenuBar do begin
ListBox1.Clear;
for i:=1 to Controls.Count do
ListBox1.Items.Add(Controls.Caption);
Controls[5].Set_Visible(false);
Controls[Controls.Count].Set_Caption('我的帮助');
b:=Controls.Add(msoControlpopup,EmptyParam,EmptyParam,EmptyParam,true) as commandbarpopup; //创建menuitem
with b do begin
Set_Caption('a项');
c:=Controls.Add(msoControlButton,EmptyParam,EmptyParam,EmptyParam,true) as CommandBarButton;
c.Set_Caption('我的第一个菜单项');
c.Set_OnAction('MBClick2'); //将一个宏赋值给这个ITEM
end;
end;
end;
end;
 
AddOleObject方法可以插入Ole控件,当然也包括楼主自己写的

AddOLEObject 方法
请参阅 应用于 示例 特性
应用于 InlineShapes 对象的 AddOLEObject 方法。

创建一个 OLE 对象。返回代表新 OLE 对象的 InlineShape 对象。

expression.AddOLEObject(ClassType, FileName, LinkToFile, DisplayAsIcon, IconFileName, IconIndex, IconLabel, Range)

expression 必需。该表达式返回一个 InlineShapes 对象。

ClassType Variant 类型,可选。用于激活指定 OLE 对象的应用程序名称。

FileName Variant 类型,可选。创建对象所使用的文件名称。如果忽略该参数,则使用当前的文件夹。必须指定对象的 ClassType 或 FileName 参数,但不能同时指定两者。

LinkToFile Variant 类型,可选。如果该属性值为 True,则将 OLE 对象链接到创建该对象所使用的文件。如果该属性值为 False,则 OLE 对象成为该文件的独立副本。如果为 ClassType 指定一个值,则 LinkToFile 参数的值必须为 False。默认值为 False。

DisplayAsIcon Variant 类型,可选。如果该属性值为 True,则将 OLE 对象显示为图标。默认值为 False。

IconFileName Variant 类型,可选。该文件包含要显示的图标。

IconIndex Variant 类型,可选。IconFileName 中图标的索引序号。当选定“显示为图标”复选框时,指定文件中图标的顺序对应于“更改图标”对话框中图标的顺序(单击“插入”菜单上的“对象”可显示“对象”对话框)。文件中第一个图标的索引序号为 0(零)。如果指定索引序号的图标在 IconFileName 中不存在,则使用索引序号为 1 的图标(文件中的第二个图标)。默认值为 0(零)。

IconLabel Variant 类型,可选。显示在图标下面的标签(标题)。

Range Variant 类型,可选。指定 OLE 对象放置在文本中的区域。除非区域是折叠的,否则 OLE 对象将替换该区域。如果省略该参数,则自动放置对象。

应用于 Shapes 对象的 AddOLEObject 方法。

创建一个 OLE 对象。返回一个代表新 OLE 对象的 Shape 对象。

expression.AddOLEObject(ClassType, FileName, LinkToFile, DisplayAsIcon, IconFileName, IconIndex, IconLabel, Left, Top, Width, Height, Anchor)

expression 必需。该表达式返回一个 Shapes 对象。

ClassType Variant 类型,可选。用于激活指定 OLE 对象的应用程序名称。

FileName Variant 类型,可选。创建对象所用的文件名称。如果忽略该参数,则使用当前的文件夹。必须指定对象的 ClassType 或 FileName 参数,但不能同时指定两者。

LinkToFile Variant 类型,可选。如果该属性值为 True,则将 OLE 对象链接到创建该对象所使用的文件。如果该属性值为 False,则 OLE 对象成为该文件的独立副本。如果为 ClassType 指定一个值,则 LinkToFile 参数必须为 False。默认值为 False。

DisplayAsIcon Variant 类型,可选。如果该属性值为 True,则将 OLE 对象显示为图标。默认值为 False。

IconFileName Variant 类型,可选。该文件包含要显示的图标。

IconIndex Variant 类型,可选。IconFileName 中图标的索引序号。当选定“显示为图标”复选框时,指定文件中图标的顺序对应于“更改图标”对话框中图标的顺序(单击“插入”菜单上的“对象”可显示“对象”对话框)。文件中的第一个图标的索引序号为 0(零)。如果指定索引序号的图标在 IconFileName 中不存在,则使用索引序号为 1 的图标(文件中的第二个图标)。默认值为 0(零)。

IconLabel Variant 类型,可选。显示在图标下面的标签(标题)。

Left Variant 类型,可选。新对象左侧边缘相对于锁定标记的位置,以磅为单位。

Top Variant 类型,可选。新对象上部边缘相对于锁定标记的位置,以磅为单位。

Width Variant 类型,可选。OLE 对象的宽度,以磅为单位。

Height Variant 类型,可选。OLE 对象的高度,以磅为单位。

Anchor Variant 类型,可选。OLE 对象的锁定区域。如果指定 Anchor,则锁定标记位于锁定区域中第一个段落的起始位置。如果没有指定 Anchor,则自动放置锁定标记,而 OLE 对象则相对于页面的上部和左侧边缘进行定位。

示例
当应用于 Shapes 对象时。

本示例在活动文档中添加一个新的浮动位图映射。该位图链接到另一个文件。

ActiveDocument.Shapes.AddOLEObject _
FileName:="c:/my documents/MyDrawing.bmp", _
LinkToFile:=True
当应用于 InlineShapes 对象时。

本示例在活动文档的第二段中添加一张新的 Microsoft Excel 工作表。

ActiveDocument.InlineShapes.AddOLEObject _
ClassType:="Excel.Sheet", DisplayAsIcon:=False, _
Range:=ActiveDocument.Paragraphs(2).Range
 
谢谢各位的关注。用下列方法实现了插入自已做的控件.
OleContainer1.OleObject.Application.ActiveDocument.ToggleFormsDesign ;
OleContainer1.OleObject.Application.Selection.InlineShapes.AddOLEControl( 'MyOCX.MyOCXCtl);
加是加进去了,但新的问题出现了,我加了两个之后发现点了点了加进的的控件,发出Word的工具条都没了,点了word的空白地方,工具条又出来了,请大家帮一下忙了.
 
后退
顶部