怎么样在 Delphi 中打开一个word文件
delphi 调用 word 打开一个文档,兼容性比较好的办法,是使用 oleObject 来调用本机安装的 word,示例代码如下:procedure TForm1.Button1Click(Sender: TObject);var MSWord: Variant;begin MSWord := CreateOLEObject('Word.Application');//连接Word MSWord.Documents.Open(FileName:='D:\Temp\temp.doc', ReadOnly:=True); //打开外部Word文档 MSWord.Visible := 1;//是否显示文件编辑 MSWord.ActiveDocument.Range(Start:=0, End:=0);//开始改变的启止位置 MSWord.ActiveDocument.Range.InsertAfter(Text:='myvc');//在Word中增加字符'myvc' MSWord.ActiveDocument.Range.InsertParagraphAfter; MSWord.ActiveDocument.Range.Font.Size := 72;//字体大小 MSWord.ActiveDocument.Range.Font.Name := 'Arial';//字体名称
求一使用delphi调用word的简单程序。
我不太理解你想要做什麽,不过我看了你的问题后也做了一个把memo中的纪录导入到word档的例子,你可以参考一下: 单元接口引用 comobj单元。
procedure TForm1.Button3Click(Sender: TObject); var Word : Variant; begin try Word := CreateOLEObject('Word.Application'); Word.Documents.Open(extractfilepath(Application.ExeName)+'\test.doc',false); Word.Visible := false; Word.ActiveDocument.Range(0, 0); Word.ActiveDocument.Range.InsertAfter(memo1.Lines.Text); Word.ActiveDocument.Range.InsertParagraphAfter; Word.ActiveDocument.Range.Font.Name := 'MS Sans Serif';//砞竚?砰 Word.ActiveDocument.Range.Font.Size := 24;//砞竚?砰??掜 Word.Quit; finally Word.Quit; end; end;
delphi 程序文件怎么打开
用文件关联来实现呀!比如安装了office后,后缀是.doc的文件会和word关联在一起,双击这个文件,就会用word来打开。
如果想自己创建关联关系,就必须从注册表入手。
给你一个例子,你改一下就可以了。
下面的代码会把后缀是.me的文件和Notepad关联在一起:procedure TForm1.Button1Click(Sender: TObject);varlphKey: HKEY;sKeyName: string;sKeyValue: string;beginsKeyName := 'ReadMeFile';sKeyValue := '说明文档';RegCreateKey(HKEY_CLASSES_ROOT, pchar(sKeyName), lphKey);RegSetValue(lphKey, '', REG_SZ, pchar(sKeyValue), 0);sKeyName := '.me';sKeyValue := 'ReadMeFile';RegCreateKey(HKEY_CLASSES_ROOT, pchar(sKeyName), lphKey);RegSetValue(lphKey, '', REG_SZ, pchar(sKeyValue), 0);sKeyName := 'ReadMeFile';sKeyValue := 'c:\Win95\NotePad.exe %1'; { 注意路径 }RegCreateKey(HKEY_CLASSES_ROOT, pchar(sKeyName), lphKey);RegSetValue(lphKey, 'shell\open\command', REG_SZ,pchar(sKeyValue), MAX_PATH);end;
如何在Delphi中显示和存取Word文档之急上加
展开全部 一. 定义word应用程序,文档对象,比如:wordApp: OleVariant;wordDoc: OleVariant;二. 打开word文档wordApp := CreateOleObject('Word.Application');wordDoc := WordApp.Documents.Open(FileName:=filename,ReadOnly:= false, Revert:=True, Visible:= True);WordApp.Visible := TRUE;三.表格插入数据WordDoc.Tables.Item(TbIndex).cell(cellrow,cellcol).Range.InsertAfter(conStr);四.在指定行写数据WordDoc.Paragraphs.Item(16).Range.InsertAfter('abcd');五.指定字符位置插入数据MyRange: OleVariant;MyRange := wordDoc.Range(Start:=0,End:=10);MyRange.InsertAfter('abcd'+#13);六.文件保存wordDoc.SaveAs(filename);七.连接word(联系:二打开文档)//测试当前是否运行了wordtryv := getactiveoleobject(word.application);except//未运行则运行之v := createoleobject(word.basic);end;r /> try//连接到wordwordapp.connect;exceptbeep;messagedlg(不能生成文档,请确认是否安装了word 2000!, mterror, [mbok], 0);abort;end;//八.复制打开的word的内容WordApp := CreateOleObject('Word.Application'); //创建word对象WordApp.Documents.open(file1); //打开一个word文档wordapp.visible:=false; //是否让打开的word文档显示出来wordapp.activedocument.select; //选取打开的word文档中全部内容wordapp.selection.copy; //拷贝选取的内容memo1.PasteFromClipboard; //把拷贝的内容粘贴到richedit中WordApp.Quit; //关闭对象九.粘贴至word(粘贴板)WordApp := CreateOleObject('Word.Application'); //创建word对象WordApp.Visible:= True ;WordApp.Documents.Add;WordApp.Documents.Item(1).Range.paste;十.新建文档:格式:WordDocuments.Add(Template,NewTemplate,DocumentType,Visible)Template: 使用模板的名称,NewTemplate: 新建文档的类型,True表示为模板,False表示为文档DocumentType: 文档类型,默认为空白文档Visible: 打捞的窗口是否可见举例:Doc_Handle:=Word_Ole.Documents.Add(Template:='C:/Temlate.dot',NewTemplate:=False);十一.连接已打开文档WordDocument.ConnectTo(WordApplication.Documents.Item(ItemIndex));
怎样在DELPHI程序里操作WORD文档
展开全部 第一种方法,使用SelectDirectory 函数 ,在ShellApi中 procedure TForm2.BtSelectPathClick(Sender: TObject);var strCaption,strDirectory:String; wstrRoot:WideString; begin strCaption:='这是浏览文件夹的说明文字,可以根据需要进行书写。
' +#13#10+'一般二行文字就满了。
'; //该参数是浏览文件夹窗口的显示说明部分 wstrRoot:=''; //这个参数表示所显示的浏览文件夹窗口中的根目录,默认或空表示“我的电脑”。
SelectDirectory(strCaption,wstrRoot,strDirectory); EdLocalPath.Text:=strDirectory;end; 第二种方法 要求:利用Win32 API SHBrowseForFolder开启一个选择文件目录的对话框,预先定位到默认的目录,最后返回所选择的结果,如果没有进行选择(即单击“取消”结束选择)则返回空''。
代码如下:(以下两个函数定义需要在uses中引入两个单元ShlObj,Windows;)function BrowseCallbackProc(Wnd: HWND; uMsg: UINT; lParam, lpData: LPARAM): Integer stdcall;begincase uMsg of BFFM_INITIALIZED: SendMessage(Wnd, BFFM_SETSELECTION, 1, lpData);end;Result := 0;end; function BrowsFolder(const Folder: string): string;varTitleName: string;lpItemID: PItemIDList;BrowseInfo: TBrowseInfo;DisplayName: array[0..MAX_PATH] of char;TempPath: array[0..MAX_PATH] of char;beginResult := Folder;FillChar(BrowseInfo, sizeof(TBrowseInfo), #0);BrowseInfo.hwndOwner := GetActiveWindow;BrowseInfo.pszDisplayName := @DisplayName;TitleName := '请选择一个目录';BrowseInfo.lpszTitle := PChar(TitleName);BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS;BrowseInfo.lpfn := BrowseCallbackProc;BrowseInfo.lParam := Integer(PChar(Folder));lpItemID := SHBrowseForFolder(BrowseInfo);if Assigned(lpItemId) thenbegin SHGetPathFromIDList(lpItemID, TempPath); GlobalFreePtr(lpItemID); Result := string(TempPath);endelse Result:='';end; 函数BrowsFolder是主体,传入参数即默认的目录,返回值即选择的结果。
BrowseCallbackProc是由SHBrowseForFolder执行时需要的回调(Call Back)函数。
在这个函数中,截取了BFFM_INITIALIZED消息,在目录选择对话框初始化的时候,向对话框发送一个BFFM_SETSELECTION消息,选中默认的目录。
转载请注明出处51数据库 » delphi打开word文档