每一个参数都要先声明为OleVariant然后赋了值再添入。
如:
var
  filename:OleVariant;
...
begin
  filename:='D:\train\Test.doc';
  ...
end;
具体用法可以参考msdn.

解决方案 »

  1.   

    上面的朋友说得对,因为word本身是一个自动化服务器。
      

  2.   

    还有一各FORMAT 参数,怎么用呀
      

  3.   

    Filename:文件名
    ConfirmCovertions:文件转换提示(如低版本向告版本)
    ReadOnly:以只读方式打开
    AddToRecentFiles:把打开得文件添加到快件文件(最近文件)列表。
    PassWordDocument:是否含有密码
    ....
    Visible:创建时是否可视
    老大,还用我一条条翻译么
    通常只需要用第一个参数,其它可以忽略。
      

  4.   

    用我上面说到的方法,具体参数的指定为:
    第一个参数指定文件名。
    第2,3,4,7  个参数指定为false
    第5,6,8,9 个参数指定为''
    第十个参数指定为:wdOpenFormatAuto.就OK!
      

  5.   

    这是vb的,你参考参考
    ---- Microsoft Word 以它强大的文字处理功能、灵活多变的排版方法、所见即所得以及极为友好的用户界面等出众特点,已经博得了广大用户的肯定。无论西文还是中文,它都已成为首选的字处理应用软件,拥有众多的用户群。因此,若将其他一些,如机器翻译、中文校对、全文检索、实时语音合成等信息处理软件嵌入其中,将可以扩展WORD 的功能,使开发者能最大限度地利用WORD 的现有资源,加快开发速度,同时也拥有了一个潜在的广大用户群。一. Word 应用程序的开发工具
    ---- 现在,开发Word 应用程序有几种编程语言,WordBasic、VBA(Visual Basic for Applications) 和Word API。
    ---- 尽管WordBasic 和VBA 功能强大,但作为简单修改Word 的工具,多少有些大材小用。若不是大规模地彻底修改Office 组件,Word API 应该成为开发自己Word 应用程序的首选工具。特别是对人数众多的C 语言程序开发者来说更是如鱼得水,不仅无需学习任何新的编程语言,直接利用C 语言代码的快速、高效和灵活的特点,而且可以使用WordBasic 接口函数和Windows 动态连接库编程环境,实现对Word 功能的添加。二. Word API 的使用方法
    ---- Word API 生成的是一个可在Word 中直接运行的Word 加载项,它是一个以WLL 为扩展文件名的单机动态连接库(DLL)。这种WLL 是标准的Windows 动态连接库(DLL)的特殊形式。可以用任何一个创建Windows DLL 的环境来编译、链接和建立WLL。
    ---- 在Microsoft Word Developer's Kit(MS Word 开发工具箱) 中,提供了Word API 的接口函数,介绍如下:---- 1. Word 加载项的启动和卸载函数---- (1) void FAR PASCAL wdAutoOpen(short DocID) ---- 在Word 中加载WLL 的同时,Word 会自动执行这个函数。在执行过程中, 函数wdAutoOpen 完成以下几个任务:WLL 需要向Word 登记WLL 中定义的所有函数; 将WLL 中的操作命令添加到Word 的主菜单、快捷菜单和工具条中; 给WLL 的操作命令指定快捷键; 完成WLL 功能的初始化(如:机器翻译、中文校对的词库读入)
    ---- void FAR PASCAL wdAutoRemove(void) ---- 当WLL 被卸载时,如果WLL 程序中定义了wdAutoRemove(void) 函数,Word 将在卸载执行这个函数。在该函数中,可以保存退出时我们定义功能函数生成的必要数据。---- 2. Word 加载项中的登记函数---- 要想让Word 中的某个主菜单项、快捷菜单项、工具条按钮或快捷键完成我们定义的某个函数,就必须在加载WLL 时,先向Word 登记我们的应用函数。Word API 的接口函数CAPIRigister 可以完成登记任务。函数定义形式如下:---- short CAPIRegister(short DocID, LPUCHAR lpszFunctionName, LPUCHAR lpszDescription); ---- 参数含义
    DocID 在WLL被加载后,Word传递给WLL入口函数wdAutoOpen的参数
    lpszFunctionName 向Word登记的WLL函数
    LpszDescription 指向的菜单项中该函数命令时,状态条中显示该命令的说明字符串
    ---- 3. 在Word 中将加载函数添加到主菜单项、快捷菜单项、工具条按钮和快捷键中---- 在WLL 中应用函数登记完成之后, 就可以在主菜单、快捷菜单和工具条中添加自己的菜单项和快捷键。这些工作由下面的函数完成,AddButton, NewToolbar, ToolsCustomizeMenu, ToolsCustomizeMenuBar 和ToolsCustomizeKeyboard。---- a) 在WORD 工具条中添加一个按钮:---- short CAPIAddButton (short DocID, LPSTR lpszToolbar, short cPosition, LPSTR lpszMacro ,LPSTR lpszFace ); ---- b) 在WORD 中添加新的工具条---- short CAPIAddToolbar (short DocID, LPSTR lpszToolbar); ---- c) 在主菜单中添加新的菜单项---- short CAPIAddMenu (short DocID,LPSTR lpszMenuName,short Position,short MenuType); ---- d) 在菜单项中添加新的菜单命令---- short CAPIAddMenuItem (short DocID, LPSTR lpszMenu, LPSTR lpszName ,LPSTR lpszMenuText,short Position, short MenuType ); ---- e) 定义一个新的快捷键---- short CAPIAddkey (short DocID, short keyCode, LPSTR lpszName); ---- 如果要想定义组合键的快捷键方式,就需把几个键在WordBasic 中的代码数字的二进制进行按位‘或’运算,将结果传递给第二个参数KeyCode。例如:快捷键CTRL+S 的KeyCode 是(256 OR 83)=339 ---- 4. Word API 调用WordBasic 函数前函数参数和返回值的数据缓冲区的建立---- Word 中的所有字处理功能都能由对应的WordBasic 函数来实现。正是利用这一点,在WLL 中通过调用WordBasic 函数来实现对Word 的定制。因此,必须利用Word API 函数InitWCB 设立调用WordBasic 函数时传递参数与返回值的数据缓冲区。---- Void InitWCB (WCB far *lpwcb,short retType, LPSTR lpBuffer,short cBufferSize); ---- InitWCB 的参数说明如下: 参数描述
    lpwcb 被初始化的WCB的far pointer,指向WCB数据区; 
    retType 指明被调用函数的返回类型(type); 
    lpBuffer 如果返回值是字符串,则它是指向WLL中我们定义的数据缓冲区的指针; 
    cBufferSize 如果返回值是字符串,则它是WLL中我们定义的数据缓冲区大小; 
    ---- 举例说明:---- 下面的一段程序是获取所选区域的字符串字体情况:---- WCB wcb; // WORD 的参数和返回值传递的数据区---- short isbold; ---- InitWCB(&wcb,TypeShort,NULL,0); // 设立传递WordBasic 函数参数和返回值的数据区wcb ---- WORDFUNCTION(wdBold); // 调用WordBasic 函数Bold() ---- isbold=wcb.wdoprReturn.Short; // 从数据区wcb 中取出WordBasic 函数Bold() 的返回值---- 5. WordBasic 函数调用方法---- Word 中的命令是与WordBasic 函数一一对应的。因此,Word API 可以通过接口函数用C 语言直接调用WordBasic 函数来实现Word 命令。---- 应该注意的一点是:在Word API 中调用WordBasic 命令函数名时均须在WordBasic 函数名前加了2 个英文字母‘wd’, 如:WordBasic 函数Bold 在Word API 中调用的函数名应为wdBold。---- 根据这些函数有无返回值与是否为响应对话框的情况,在Word API 头文件basedef.h 中定义了三种调用方法,WORDCALL、WORDFUCTION 和WORDDIALOG。若被调用的WordBasic 函数无返回值时,用Word API 接口函数WORDCALL 来调用它,形式是:WORDCALL(函数名);若被调用的WordBasic 函数有返回值时,用Word API 接口函数WORDFUNCTION 来调用它,形式是:WORDFUNCTION(函数名);若被调用的WordBasic 函数是有关对话框操作时,用Word API 函数WORDDIALOG 来调用它,形式是:WORDDIALOG(函数名);
    ---- 例如:WordBasic 中,给所选区域字符标粗体的函数Bold 与判断所选区域字符是否为粗体的函数Bold() 的调用方法就不同: ---- 1. 函数Bold 是一个操作,无须返回值,所以调用形式是WORDCALL(wdBold); ---- 2. 函数Bold() 是一个判断,必须有返回值,所以调用形式是WORDFUNCTION(wdBold); ---- 6. WordBasic 函数参数的传递方法---- 在调用WordBasic 带参函数时,需要通过Word API 特定接口函数来传递参数。同时,对不同类型的函数,参数的传递方法也有不同。---- 1) 逐个传递参数---- 这种传递参数的方法适用于参数位置固定的函数,例如:WordBasic 函数---- MenuText$(Type,MenuNumber[,Context]) ---- 其中的三个参数是按次序排列的。由于Word API 调用WordBasic 函数方式是函数名作为WORDCALL、WORDFUCTION 和WORDDIALOG 的参数,无法一次添加WordBasic 函数参数,所以传递WordBasic 函数参数需要InitWCB 函数设置数据缓冲区后,依次通过数据缓冲区传递参数,第一个是赋给Type 的,第二个是赋给MenuNumber,如果有第三个参数则是赋给Context 的。---- 在向这类函数传递参数时,根据待串参数数据类型的不同,有以下4 个函数可以选用:传递short 型参数的函数,void AddShortParam(WCB far *lpwcb, short ShortVal); 传递long 型参数的函数,void AddLongParam(WCB far *lpwcb, long LongVal); 传递double 型参数的函数,void AddDoubleParam(WCB far *lpwcb, double DoubleVal); 传递字符串参数的函数,void AddStringParam(WCB far *lpwcb, LPSTR lpStr);
    ---- 下表是上面4 个函数参数的说明:参数描述
    lpwcb 被初始化的WCB的far pointer,即WCB数据区
    lpStr 待传参数为字符串时的字符串指针
    ShortVal 待传参数为short型的整数
    LongVal 待传参数为long型的整数
    DoubleVal 待传参数为double型的浮点数---- 举例说明: ---- 下面的部分程序的作用是给所选区域字符串着绿色---- InitWCB(&wcb,TypeShort,NULL,0); ---- AddShortParam(&wcb,4); //4 是绿色在WORD 中的标识, 将一个short 参数放入参数缓冲区---- WORDCALL(wdCharColor); // 调用WordBasic 函数CharColor ---- 2) 传递指定参数---- 这种传递参数的方法适用于参数有标识名指明的函数。这种函数的参数有定义了的标识,传递时没有次序问题。例如:WordBasic 中插入空表的函数TableInsetTable:---- TableInserTable [.ConvertForm ] [,.NumberColumns] [,.NumRows][,.InitialColWidth][,.Wizard] [,.Format] [,.Apply] ---- 因此,向TableInserTable 函数传递参数时,只需指明哪一个标识即可。这种函数一般见于具有较多参数的函数。---- 在向这类函数传递参数时,与上面的类似,也是根据参数数据类型的不同,有以下4 个函数可以选用:void AddShortDlgField(WCB far *lpwcb,short ShortVal,short FieldId,short fMode); void AddLongDlgField(WCB far *lpwcb,long LongVal,short FieldId,short fMode); void AddDoubleDlgField(WCB far *lpwcb,double DoubleVal,short FieldId,short fMode); void AddStringDlgField(WCB far *lpwcb,LPSTR lpStr,short FieldId,short fMode,short cBufferSize);
    ---- 下表是上面4 个函数参数的说明:参数描述
    lpwcb 被初始化的WCB的far pointer,即WCB数据区
    ShortVal 传递的参数为short型整数
    LongVal 传递的参数为long型整数
    DoubleVal 传递的参数为double型浮点数
    lpStr 被传递的参数为字符串时的字符串指针
    FieldId 参数的标识名
    fMode 用于指明传递参数的方式,根据输入或输出填入INPUT、OUTPUT 
    cBufferSize 传递字符串参数时被分配的缓冲区大小
    ---- 其中,传给FieldId 的所有的标识名都已在WORD API 文件wdfid.h 中被定义了。---- 下面的例子是要在光标所在位置插入一个4*12 的空表。InitWCB(&wcb, TypeShort , NULL, 0);
    AddStringDlgField(&wcb, "4",fidNumColumns, fMode, 0);
    AddStringDlgField(&wcb, "12",fidNumRows, fMode, 0);
    WORDCALL(wdTableInsertTable);
    ---- 上面的fidNumColumns 和fidNumRows 是在WORD API 文件wdfid.h 中定义的参数的标识名。调用函数AddStringDlgField 将表的行数“4”和列数“12”直接传给WordBasic 的函数TableInsertTable 的两个参数NumColumns 和NumRows。---- 注意:在WORD API 文件wdfid.h 中被定义了的函数参数的标识名是与WordBasic 函数的参数标识名一一对应的,但不同的是,WORD API 的参数标识名是在WordBasic 的参数标识名前加了‘fid’构成的。如:WordBasic 的函数TableInsertTable 有两个参数是NumColumns 和NumRows,那么,在WORD API 中的参数标识名就应是fidNumColumns 和fidNumRows。三. 创建WLL 的程序框架
    ---- 下面我们给出一个用Word API 完成的完整WLL 框架,来实现如图1 所示Word 中的修改://系统头文件
    //Word API的头文件
    #include "wdcapi.h"
    //Word API的头文件
    #include "wdcmds.h"
    //WordBasic函数名在Word API中的标识名文件
    #include "wdfid.h"
    // WordBasic用标识名指明的参数名在Word API中的标识名文件
    #include "capilib.h" 
    //文件capilib.h的头文件
    #include "basedefs.h"
    // Word API的宏文件
    #include "wdmenus.h"
    //Word中的主菜单名,快捷菜单名在Word API中的标识名文件
    //WLL中的头文件
    #include "translate.h "
     //汉英翻译程序中头文件char   translateallitem[] = "汉英翻译(&T) Shift+Alt+T ";
     //菜单中显示的命令串
    char   szFuncTranslateAll[] = "translateall"; 
    // WLL中定义的全文汉英翻译函数
    char   translateparaitem[] = "段落汉英翻译(&P)";
     //快捷菜单中显示的命令串
    char   szFuncTranslatePara[] = "translatepara"; 
    // WLL中定义的段落汉英翻译函数
    char   translateitemStatus[] = "全文汉英翻译"; 
     //鼠标选中该菜单命令时的状态显示INT  APIENTRY DllMain(HANDLE hinstDLL, 
    DWORD fdwReason, LPVOID lpReserved)
    { hDLLInst = hinstDLL;
      return 1;
    }
    void GetMenuName 
    ( ushort iMenuCode, LPSTR szName, ushort cbSize )
    { short  iCode, iType;
     // Parameters for Word's wdMenuText$ function
      WCB  wcb; 
     // Word Call Block
      iCode = iMenuCode % 100;
      // The code is the lower two digits
      iType = iMenuCode / 100; 
     // The type is the third digit (see WDMENUS.H)
      InitWCB  ( &wcb, TypeString, szName, cbSize );
       // Init for string return type
      AddShortParam  ( &wcb, iType  );  
          // Add the iType param
      AddShortParam  ( &wcb, iCode  ); 
          // Add the iCode param
      WORDFUNCTION   ( wdMenuText$   ); 
          // Call Word's MenuText$ Function
    }
    short WINAPI  _loadds  wdAutoOpen (short DocID)
    {//各项初始化工作......
     //下面登记全文汉英翻译函数
     CAPIRegister   
    ( DocID, szFuncTranslateAll , translateitemStatus);
    //在主菜单的‘工具’菜单项中添加一个
    ‘汉英翻译(&T) CTRL +T’子项
    GetMenuName ( DOCOPEN_Tools, 
     szMenu, sizeof(szMenu)); //得到‘工具’菜单项标识
    if  ( (err = CAPIAddMenuItem( DocID, 
                               szMenu, 
      szFuncTranslateAll,  //函数名字符串指针
      translateallitem,   
    //‘工具’菜单项中的显示名
    5,                 //在‘工具’菜单项中的位置
    0 //菜单类型
    ))    != 0)
         return 0; 
     // 若添加菜单项函数返回为非零,即WLL加载失败,退出加载;
    //定义‘工具’菜单项中的‘汉英翻译(&T)  
    Alt + Shift+T’的快捷键为< Alt + Shift+T >
    if( (err = CAPIAddKey(DocID, 
     1026,  //是< Shift+Alt+T >
    ,512、4、84三个数二进制按位或的结果
     szFuncTranslateAll, //函数名字符串
    )) != 0 )
      return 0; // 若添加快捷键函数返回为非零,即WLL加载失败,退出加载;
    //在快捷菜单中添加一个子项‘汉英翻译(段落)’
    GetMenuName ( SHORTCUT_Text, szMenu, sizeof(szMenu)); 
    //得到快捷菜单标识
    if  ( (err = CAPIAddMenuItem(DocID, 
    szMenu, 
    szFuncTranslatePara , //函数名字符串指针
    translateparaitem, //快捷菜单中的显示名
    3,  //显示名在快捷菜单中的位置
    2  //菜单类型
    ))   != 0 )
       return 0;  //若添加菜单项函数返回为非零,
    即WLL加载失败,退出加载;
    //在常规工具条上添加一个工具按钮指向上面的函数‘tanslateall’
    if  ( (err = CAPIAddButton(   DocID, 
    "常用", //按钮所要添加到的工具条名称
    cPositon    //按钮在工具条上的位置
    szFuncTranslatePara ,   //按钮连接的函数名字符串
    “全文翻译” //鼠标在按钮区域是显示的提示字符
    ))   != 0 )
       return 0;  //若添加按钮函数返回为非零,
    即WLL加载失败,退出加载;
    //读入汉英翻译词库......
    //读入汉英翻译规则库......
    //通知用户WLL加载成功
    MessageBox(NULL,"翻译模版加载成功!\n ","恭喜您:",MB_OK);
    } // wdAutoOpen()结束
    void WINAPI _loadds wdAutoRemove( void )
    {
      // Clean up the menus before exiting
      // NOTE: This is not really necessary becasue the menu items were added 
      // using the DocID as the context. In this case Word removes the menu
      // items automatically when the WLL is unloaded. 
      RemoveMenuItem ( gDocID, DOCOPEN_File, proofitem   );
     }
    //全文翻译WLL函数
    int WINAPI _loadds translateall(void)
    { WCB wcb;   //定义Word API与WordBasic交换数据的数据区
      char buffer[30*30]; //存放从Word中取到的一段字符串
      //将光标所在位置置于当前文档的起始位置
    (相当于Ctrl+Alt+Home三键同时按下)
      InitWCB(&wcb,TypeShort,NULL,0);
      WORDCALL(wdStartOfDocument);
     while(1)
      { memset(buffer,0,30*30);
        //指明按段截取文档
        InitWCB(&wcb,TypeShort,NULL,0);
        AddStringParam(&wcb,"\\Para");  
        WORDFUNCTION(wdEditGoTo);
       //截取当前段的文档放入数据区buffer[30*30]中
        InitWCB(&wcb,TypeString,buffer,sizeof(buffer));
        WORDFUNCTION(wdSelection$);
       //调用函数translatetherm来翻译buffer[]数据区的内容
        translatethem(buffer);
       //取下一段文档翻译
       InitWCB(&wcb,TypeShort,NULL,0);
       AddStringParam(&wcb,"\\EndOfSel");  
       WORDFUNCTION(wdEditGoTo);
       InitWCB(&wcb,TypeShort,NULL,0);
       WORDFUNCTION(wdAtEndOfDocument);
       returnint=(int)(wcb.wdoprReturn.Short);
       if(returnint= =-1) break; //函数返回值为-1时,表明整个文档已处理完毕
     }
    } //全文汉英翻译WLL函数结束
    //段落汉英翻译WLL函数
    int WINAPI _loadds translatepara(void)
    { //步骤与WLL函数translateall类似,只是取光标所在的段落来翻译
      WCB wcb;
      char buffer[30*30];
      memset(buffer,0,30*30);
      //  the certain para
      InitWCB(&wcb,TypeShort,NULL,0);
      WORDFUNCTION(wdEditFindClearFormatting);
      WORDFUNCTION(wdEditReplaceClearFormatting);
      InitWCB(&wcb,TypeShort,NULL,0);
      AddStringParam(&wcb,"\\Para");  
      WORDFUNCTION(wdEditGoTo);
      //截取光标所在段落放入buffer[]中
      InitWCB(&wcb,TypeString,buffer,sizeof(buffer));
      WORDFUNCTION(wdSelection$);
      //翻译buffer中的字符串
      translatethem(buffer);
     }//段落汉英翻译WLL函数结束
    //定义的函数,翻译从WORD中取到的文档段
    int translatethem(document)
    { //自己应用程序的函数...... }
    void RemoveMenuItem ( int DocID, ushort iMenuID, LPSTR szItemText )
    {  int       i, iItemCount;
      char      szMenu[64];
      char      szName[64];
      char      szMenuItem[64];
      WCB       wcb;     
      MessageBox(NULL,"退出汉英翻译模板","广告", MB_OK);
    //摘去WLL中对WORD所做的定制项
    (主菜单项、快捷菜单项和工具条按钮等)
      GetMenuName ( iMenuID, szMenu, (ushort)sizeof(szMenu));
      InitWCB  ( &wcb, TypeShort, NULL, 0);  // Init struct
      AddStringParam  ( &wcb, szMenu  );  // Add menu string
      AddShortParam   ( &wcb, (ushort)(iMenuID / 100)  );  // Type ( 0, 1, or 2 )
      WORDFUNCTION    ( wdCountMenuItems);
      iItemCount = wcb.wdoprReturn.Short;
      for ( i = iItemCount; i > 0; i-- )
        {
        InitWCB  ( &wcb, TypeString, szMenuItem, sizeof(szMenuItem) );
        AddStringParam  ( &wcb, szMenu  );  // Menu name
        AddShortParam   ( &wcb, (ushort)(iMenuID / 100));  // Type
        AddShortParam   ( &wcb, (ushort)i  );  // Position
        WORDFUNCTION    ( wdMenuItemText$);
        if (!lstrcmpi(szMenuItem, szItemText))  // Found item to delete
          {
          InitWCB  ( &wcb, TypeString, szName, sizeof(szName) );
          AddStringParam  ( &wcb, szMenu ); // Menu name
          AddShortParam   ( &wcb, (ushort)(iMenuID / 100) ); // Type
          AddShortParam   ( &wcb, (ushort)i ); // Position
          WORDFUNCTION    ( wdMenuItemMacro$ );
          InitWCB( &wcb, TypeShort, NULL, 0 );
          AddShortDlgField ( &wcb, (ushort)(iMenuID / 100), fidMenuType, INPUT);
          AddShortDlgField ( &wcb, 1,fidRemove,INPUT );
          AddShortDlgField ( &wcb, (ushort)DocID, fidContext,  INPUT); 
          AddStringDlgField( &wcb, szName, fidName, INPUT, 0 );
          AddStringDlgField( &wcb, szMenu, fidMenu, INPUT, 0 );
          wdCommandDispatch( wdToolsCustomizeMenus, CommandAction, 
                             wcb.cArgs, wcb.wdoprArgs, lpwdoprNil );
          break;  // Force the loop to stop }
        }
    }
    四. 在Word 中加载与卸载我们的WLL 
    ---- 经过编译、链接生成DLL 文件(动态连接库文件)后,必须将文件的扩展文件名.dll 改为.wll,以便在加载WLL 时能被Word 正确识别为Word 加载项。
    ---- I. 将我们的WLL 加载到WORD 中有以下几种方法:---- A. 模板方式加载:在Word 中主菜单‘文件’中找到‘模板’,进去后按下‘添加’按钮,选中我们的WLL 模板文件(文件扩展名为wll)后‘确定’,加载WLL 即可完成, 如下图所示。---- B. 打开文件方式加载:象打开一般的WORD 文档一样,打开我们的WLL 模板文件,即可完成加载。---- C. Word 自动完成加载:将我们的WLL 模板文件复制到...\winword\startup\ 目录下,象Word 中的常用模板一样,在启动Word 时,Word 会自动将WLL 模板文件加载到Word 中。---- II. 卸载WLL 的方法只有一种:在Word 中主菜单‘文件’中找到‘模板’,将‘共用模板及加载项’框中‘translate.wll’前的复选钮钩掉后‘确定’,卸载WLL 的工作即可完成。五. 总结:
    ---- 短短几千字,无须学习任何新的编程语言,就可以使你成为一个随心所意开发Word 应用程序的行家里手,足见Word API 的简洁,灵活和高效。这也正是Word API 的初衷所在。
      

  6.   

    注:你所要的format参数就是:wdOpenFormatAuto
      

  7.   

    另外,打开后,要令你的文档可见。如:
    Application1.visible:=true;