Delphi control MS word(100分)

  • 主题发起人 主题发起人 wu yingping
  • 开始时间 开始时间
W

wu yingping

Unregistered / Unconfirmed
GUEST, unregistred user!
如何通过Delphi的servers控件(如:WordApplication, WordDocument)来控制
MS word 菜单,即WordApplication 或 WordDocument 中有何属性可以控制
MS word 菜单(关闭某些功能)。 谢谢!
 
好好参考Word97.PAS
 
我已看过word97.pas,没有任何帮助。
 
Delphi5的Demos中有一个如何使用Word的例子,具体目录不记得了,找找
 
>>linyp2000
wu yingping是要 MS word 菜单(关闭某些功能)。
我也跟踪看看~
 

全没有说到问题的实质,比如:哪儿有实用的例子呀,哪儿有这类问题的网站呀等等。
 
关于 word 的对象使用可查看 msoffice/office/VbaWrd.hlp,下面是我的一个例子,
里面含有对 Word 操作的常用方法:定位替换、表格等。
procedure TForm1.Button1Click(Sender: TObject);
var WordApp,MyDoc,wTable: OLEVariant;
FileName: string;
i: integer;
procedure FillRow(wTable: OLEVariant; Row,StartColumn: Byte; ss: array of String);
var j: word;
begin
for j := Low(ss) to High(ss) do begin
wTable.Cell(Row,j+StartColumn).Range.Text := ss[j];
end;
end;


begin
FileName := ExtractFileDir(Application.ExeName) + '/test1.dot';
if not FileExists(FileName) then
raise Exception.Create('找不到模板!');
try
WordApp := CreateOleObject('Word.Application');
MyDoc := CreateOleObject('Word.Document');
except
Raise Exception.Create('无法打开Word,请确认已安装Word。');
end;

WordApp.Visible := true;
MyDoc := WordApp.Documents.Add(FileName,false);

MyDoc.BookMarks.Item('表名1').Select;
WordApp.Selection.Text := 'Animals';
wTable := MyDoc.Tables.Item(1);
table1.First;
for i := 2 to 4 do begin
if not Table1.Eof then begin
FillCell(i,1,wtable,'Name');
FillCell(i,2,wtable,'Size');
FillCell(i,3,wtable,'Area');
Table1.Next
end else Break
end;

wTable := MyDoc.Tables.Item(2);
table1.First;
for i := 1 to 3 do
if not table1.Eof then begin
FillRow(wTable,i,2,[table1.fieldbyName('Name').AsString,
table1.FieldByName('Size').AsString,
table1.FieldByName('Area').AsString]);
table1.Next
end;

MyDoc.Tables.Add(MyDoc.Bookmarks.Item('表格3').Range,2,5)
end;

procedure TForm1.FillCell(i, j: byte; wTable: Variant; FieldName: String);
begin
wTable.Cell(i,j).Range.Text := table1.FieldByName(FieldName).AsString
end;
 
crab提供的例子,我试了一下,很好,很有实用价值,但是有一个小问题,就是一般的表格
的第一行为说明行,如姓名,性别呀什么的,用什么样的命令使数据内容在第二行显示出来
呀?谢了。
 
我是要用Delphi的控件来控制 MS word 菜单(关闭某些功能),例如把 word 的 SaveAs功能
关闭,不让用户随便将文件保存到其他的目录...
其他用Delphi的控件来控制Word我基本都能做到。
尽管没有我要的答案,为了感谢大家的热情参与,我决定将分数平均分给你们每个人。
我的 email: yingping_wu@lycos.com
希望你们若有相关的信息能和我联系。
 
我想问一下,delphi如何捕获word的save事件
我是用我用winexec(pchar('cmd.exe /c "start c:/test.doc'),sw_hide)
打开word文档的
 
to:wu yingping
不知道你的问题解决没有,我现在也有这个烦恼,如果可以请你帮帮忙,谢谢!
 
后退
顶部