起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 279|回复: 9

【搞定】如何实现在X3平台对Word受控?**

[复制链接]
发表于 2007-4-13 09:47:49 | 显示全部楼层 |阅读模式
[B]以下是对Word受控的一段Delphi代码,可以编译通过[/B] procedure TForm1.Button1Click(Sender: TObject);
var
    BS: tmemorystream;
    word:variant;
    s:string;
    BlobField: TField;
begin                                //分解Word 原文
    dbedit1.DataField:='';
    delete_s_ole;
    if not OpenDialog1.Execute then exit;
    with adoquery1 do begin
        close;
        sql.Text:='delete from File_nr';
        execsql;
        close;
        sql.Text:='select * from File_nr';
        open;
    end;
    word:=createoleobject('word.application');
    word.documents.add;
    word.Selection.InsertFile(OpenDialog1.FileName);   //打开word文件
    s:='s';
    while s<>'' do begin
        s:=get_olecontainer(word);          // 得到Word的每一页
        if olecontainer2.canpaste then olecontainer2.paste;
        olecontainer2.update;
        with adoquery1 do begin                        //存贮得到的一页Word文件
            bs:=tmemorystream.Create;;
            olecontainer2.SaveToStream(bs);
            blobField:=fieldbyname('nr');
            Append;
            (BlobField as Tblobfield).loadFromStream(bs);
            Post;
        end;
    end;
    word.ActiveDocument.Saved:=True;
    word.quit;
    BitBtn1.Click;              //   预览
end;
我的问题是代码移植到平台后,定义了一个Variant类型的变量Word,下面的代码如:word.documents.add;
word.Selection.InsertFile(OpenDialog1.FileName);   
word.ActiveDocument.Saved:=True;
等编译不能通过,请教一下各位大侠,要实现类似的功能,代码该怎么写啊?
回复

使用道具 举报

 楼主| 发表于 2007-4-13 15:15:43 | 显示全部楼层
狂顶
回复 支持 反对

使用道具 举报

发表于 2007-4-13 15:24:20 | 显示全部楼层
想在平台中直接操作word需要在delphi中写好相关代码,然后生成bpl和dll包,引入到平台中,然后再调用外部包中的方法,不能在平台中直接写类似上面的代码。关于如何引入外部包,请在论坛中搜索“引用外部包”
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-13 15:28:50 | 显示全部楼层
此法太复杂!是否还有第二条路???
回复 支持 反对

使用道具 举报

发表于 2007-4-13 15:52:54 | 显示全部楼层
应该是没有了,我们自己做也是要这样做的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-13 16:05:20 | 显示全部楼层
谢谢大侠指点,既然这样,结贴!
回复 支持 反对

使用道具 举报

发表于 2007-4-13 17:11:39 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-13 17:54:11 | 显示全部楼层
多谢alang
回复 支持 反对

使用道具 举报

发表于 2007-4-14 09:59:22 | 显示全部楼层
调用外部包实在太麻烦了。

我觉得X3不能自由的引用DLL和COM是一个不小的失败。

这么做,把我们原来的优势全部都封死了。
回复 支持 反对

使用道具 举报

发表于 2007-4-14 14:29:55 | 显示全部楼层
封死不至于吧,至少是可以做,而且现在支持接口了,调入控件就几步,应该不算很麻烦吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-6-19 01:14 , Processed in 0.040852 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表