End_; end; Caption := Int To Str(Found) ' found'; -- Deborah Pate (Team B) really need I use TWordapplication, office2000, word2000, this means late binding ? Execute('old', Wrap := wd Find Stop) do begin Rnge. So many of the calls return only IDispatch interfaces anyway.

So IEarlier Interface might have an Open method with 4 parameters, and then ILater Interface will have an Open Old method with 4 parameters, and an added Open method with 5.

-- Deborah Pate (Team B) Ugh, yes, Word's tables are infamously slow.

Hi, In my Delphi prog, I use OLE to search (forwards only, no wrap, with wildcards) a certain portion of a Word doc for specific words and replace them with some text with following code : search String := some Text To Find; // includes wild Chars repeat With search Range. End_; end; until not Found; Even the search Range is a portion of the document, the searching scans whole the document. After a match, the range has its start/end_ same as the founded word and I have to do start =end_ to continue until no matches anymore. Execute('old', Wrap := wd Find Stop) do begin Inc(Found); Rnge. - My problem is when I want to search, not in the whole document but, in a portion of this, lets say a portion/range that refers to a table Row. Late binding is done with variants, but you can use both, easily. Better still, with late binding, you can use 'named parameters', which are self-documenting: things like Match Wildcards := True. You need to have some other way of describing the end of the range you want to search. setting the end of the range to the end of a table row's range), then you need to make one. Insert After(' Change this old change this old'); SR. Insert After(' Change this old change this old'); SR. Execute has been rather buggy - MS has recommended using late binding for it in the past.) -- Deborah Pate (Team B) It should help. And obviously a single call to Run a macro would remove a lot of dots.

Find do begin not Found := TRUE; Clear Formatting; Execute(search String,empty Param,empty Param, OLETRUE,empty Param, empty Param,empty Param,empty Param,empty Param,empty Param, empty Param,empty Param,empty Param,empty Param,empty Param); if found then begin not Found := FALSE; search Range. Without start =end_ the searching terminates, but with this, keeps searching beyond the portion I want. I don't know VBA so I cant set a var type range to hold a copy of 2 or 3 doc's portions. Every time I found and replace something, as I see in your code, I must set again the start/end_ of the search Range but the end_ is changed due to replacement. An easy way is to make a bookmark, and set the end of the searchrange to the end (or start) of that. Insert Before(' Leave this old leave this old'); SR. Automation is intrinsically slow, and any way you have of reducing the calls from Delphi to Word will be good. But there might be other ways of increasing the speed of your searches - it's hard to say without seeing some code.

Does he really think big emotions come from big words? :) -- Deborah Pate (Team B) Open Directory - Regional: North America: United States: Washingtonabout dmoz - dmoz blog - report abuse/spam - help the entire directory only in United_States/Washington Description Top : Regional : North America ... Can El Nino Events Explain All of the Global Warming Since 1976?

" -- Ernest Hemingway about William Faulkner They change the names of methods, but their position in the interface remains the same. Canberra Dance Development Centre - dance, ballet and performing arts for everyone Choose as many classes as you wish...

I will start a definition of spell and grammar checkers, follow with a general overview of Automation and will pursue with more details on how this was project was achieved.

In computing, a spell checker (or spell check) is an application program that flags words in a document that may not be spelled correctly.

not quite: early binding is usually specific for a certain version of Office, whereas late bindings should work across all versions which support it. Look at a diff of perhaps Excel_2K.h and Excel_XP.h in $(BDS)\include\vcl for details. If I was able to solve them, there wasn't any reason to use OLE.