OleContainer (100分)

  • 主题发起人 主题发起人 yn2010cx
  • 开始时间 开始时间
Y

yn2010cx

Unregistered / Unconfirmed
GUEST, unregistred user!
最近在做一个关于对象链接嵌入的小东东,有些问题不会处理?

(1)是不是一个ole容器只能和一个word文档建立联系?
那如果需要处理比较多的文档,岂不是需要很多的ole容器吗?
(2)针对不同的用户,他们使用文档的权限不同?有些用户只能浏览文档,
有些用户可以编辑文档,该怎么对ole对象做相应限制?
 
1.不是,可以打开多个word
2.ole可能作不到,可以从应用程序(客户端)去控制该用户是否有浏览或修改的权限
 
olecontainer.createobjectfromfile(filename,false);
olecontainer.doverb(ovshow);
如何实现由文件创建的对象他的属性为只读呢?在上面两句语句后加什么呢?
 
就是使用者只能浏览,而不能改动
 
最好就是连嵌入进去的应用程序,如word的菜单,工具栏都不要出现!

高手指点
 
我是从离线资料理找出来的
menxin (2001-11-1 12:37:00)
呵呵,真加这么多呀,好,我给你写一个吧

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;

 
后退
顶部