我用Twordapplication控制word文档中的checkbox控件的选中否,用了如下代码:
wa.ActiveDocument.InlineShapes.item(itemindex).OLEFormat.Object.value:=true;
这样却不能编译,提示如下:
Identifier expected but 'OBJECT' found我用
var w:variant;
w:=createoleobject('word.application');
w.documents.open('F:\word\umsend.doc');
w.ActiveDocument.InlineShapes.item(itemindex).OLEFormat.Object.value:=true;
可以实现,但是关闭word时必须写代码w.quit(savechanges, originalformat, routedocument);否则不能正常关闭,该怎么办?高手指点

解决方案 »

  1.   

    如果用TLB库的话,应该这样写:
    (wa.ActiveDocument.InlineShapes.Item(i).OLEFormat.Object_ as CheckBox).Value := True
    注意两点,一是Object_(后面有一个下划线),二是Object是一个IDispatch,没有Value属性,必须用一个AS关键字(DELPHI在后台调用QueryInterface方法)
    --------------------------
    如果用CreateOLEObject()来创建Variant,必须要自己调用Quit方法,因为Word是一个进程外自动化对象,不能随着你的进程的结束而结束。