//在Form上打开显示word
procedure Tmain_form.Button1Click(Sender: TObject);
var word_name:variant;
i:Integer;begin if not OpenDialog1.Execute then exit; //try
//WordApplication1:=GetActiveOleObject('word.Application');
//except
//WordApplication1:=CreateOleObject('word.Application');
// end;
try
OleContainer1.CreateObjectFromFile(OpenDialog1.FileName,true);
Olecontainer1.Doverb(1);
Olecontainer1.Run;
// OleContainer1.OleObject.application.CommandBars[ 'Standard '].visible:= false;//关闭标准工具栏
WordApplication1.ConnectTo(IDISPATCH(OleContainer1.OleObject.Application) as WordApplication);
//for i:=1 to WordApplication1.CommandBars.Count do
// WordApplication1.CommandBars.Item[i].Set_Visible(false);
except
end;
//OleContainer1.OleObject.CommandBars[ 'Standard '].visible:= false;//
end;//对word加标签procedure Tmain_form.Button3Click(Sender: TObject);
var
NoPrompt,OriginalFormat:OleVariant;
pRange: olevariant;
word_name : olevariant;
begin
//showmessage(WordApplication1.selection.text);
try
WordApplication1.Selection.InsertBefore('<span style="COLOR: #ff6600">');
WordApplication1.Selection.InsertAfter('</span>'); NoPrompt := true;
OriginalFormat:=wdOriginalDocumentFormat;
WordApplication1.Documents.Save(NoPrompt,OriginalFormat);
word_name :=OpenDialog1.FileName;
OleContainer1.SaveAsDocument(word_name);
OleContainer1.DoVerb(1);
except
end;
end;
procedure Tmain_form.FormClose(Sender: TObject; var Action: TCloseAction);
begin
try
WordApplication1.Quit;
WordApplication1.Disconnect;
except
showmessage('资源释放错误');
end;
end;现在问题是我想对选种的信息加不同的颜色标记,现在是我的标记加上去了,但是我不知道怎么让word识别这些颜色标记,然后,上面的程序还很不成熟,然后通过程序读取不同颜色的内容,现在退出时也老提示别的程序占用资源,各位大哥大姐帮帮忙
WordApplication1.Selection.InsertBefore(' <span style="COLOR: #ff6600">');
WordApplication1.Selection.InsertAfter(' </span>');
改成
WordApplication1.Selection.Font.Color := $ff6600
试试
应该不是这的问题
ARange: OleVariant;
ARange := WordApplication1.Selection.Range;
你要加标记可以用
WordApplication1.ActiveDocument.Books.Add('标记一', ARange);
以后取的话可以用
ARange := WordApplication1.ActiveDocument.Books.Item('标记一');
获取其文字是ARange.Text
至于图片等,不太好处理,因为Word除了能插图片还能插入表格、形状、OLE对象,你想将他们入库还不如把整个Range拷贝到另外一个Word文档中,然后把Word文档入库。