![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Замена текста в OpenOffice [D6, XP]
_Guest_ © (2007-11-29 15:24:00)При замене текста в OpenOffice получаю ошибку: InterfaceOleWrapper_Impl::doInvoke
Литературу почитал, примеры посмотрел, макрос создал, в чем дело понять не могу. Вот код, неудобоваримый из-за того что убрал все промежуточные процедуры, что бы было понятно чего откуда, проверки тоже убрал пока.
procedure TFormEMBasis.oo2Click(Sender: TObject);
var
StarOffice, StarDesktop, Document, ooFrame, Struct, dispatcher : Variant;
VariantArr, VariantArr1 : variant;
begin
StarOffice := CreateOleObject( 'com.sun.star.ServiceManager' );
StarDesktop := StarOffice.createInstance('com.sun.star.frame.Desktop');
Document := StarDesktop.LoadComponentFromURL(
'private:factory/swriter' , '_blank' , 0,
VarArrayCreate([0, -1], varVariant));
ooFrame := Document.getCurrentController.getFrame;
Dispatcher := StarOffice.CreateInstance('com.sun.star.frame.DispatchHelper');
VariantArr1 := VarArrayCreate([0, 0], varVariant);
Struct := StarOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
Struct.Name := 'Text';
Struct.Value := '!!';
VariantArr1[0] := Struct;
dispatcher.executeDispatch(ooFrame, '.uno:InsertText', '', 0, VariantArr1);
VariantArr := VarArrayCreate([0, 18], varVariant);
VariantArr[0] := StarOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
VariantArr[0].Name := 'SearchItem.StyleFamily';
VariantArr[0].Value := 2;
VariantArr[1] := StarOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
VariantArr[1].Name := 'SearchItem.CellType';
VariantArr[1].Value := 0;
VariantArr[2] := StarOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
VariantArr[2].Name := 'SearchItem.RowDirection';
VariantArr[2].Value := true;
VariantArr[3] := StarOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
VariantArr[3].Name := 'SearchItem.AllTables';
VariantArr[3].Value := false;
VariantArr[4] := StarOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
VariantArr[4].Name := 'SearchItem.Backward';
VariantArr[4].Value := false;
VariantArr[5] := StarOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
VariantArr[5].Name := 'SearchItem.Pattern';
VariantArr[5].Value := false;
VariantArr[6] := StarOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
VariantArr[6].Name := 'SearchItem.Content';
VariantArr[6].Value := false;
VariantArr[7] := StarOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
VariantArr[7].Name := 'SearchItem.AsianOptions';
VariantArr[7].Value := false;
VariantArr[8] := StarOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
VariantArr[8].Name := 'SearchItem.AlgorithmType';
VariantArr[8].Value := 0;
VariantArr[9] := StarOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
VariantArr[9].Name := 'SearchItem.SearchFlags';
VariantArr[9].Value := 65536;
VariantArr[10] := StarOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
VariantArr[10].Name := 'SearchItem.SearchString';
VariantArr[10].Value := '!!';
VariantArr[11] := StarOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
VariantArr[11].Name := 'SearchItem.ReplaceString';
VariantArr[11].Value := '22';
VariantArr[12] := StarOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
VariantArr[12].Name := 'SearchItem.Locale';
VariantArr[12].Value := 255;
VariantArr[13] := StarOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
VariantArr[13].Name := 'SearchItem.ChangedChars';
VariantArr[13].Value := 2;
VariantArr[14] := StarOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
VariantArr[14].Name := 'SearchItem.DeletedChars';
VariantArr[14].Value := 2;
VariantArr[15] := StarOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
VariantArr[15].Name := 'SearchItem.InsertedChars';
VariantArr[15].Value := 2;
VariantArr[16] := StarOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
VariantArr[16].Name := 'SearchItem.TransliterateFlags';
VariantArr[16].Value := 1024;
VariantArr[17] := StarOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
VariantArr[17].Name := 'SearchItem.Command';
VariantArr[17].Value := 0;
VariantArr[18] := StarOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
VariantArr[18].Name := 'Quiet';
VariantArr[18].Value := true;
dispatcher.executeDispatch(ooFrame, '.uno:ExecuteSearch', '', 0, VariantArr);
StarOffice := Unassigned;
end;
Ошибка возникает при выполненииdispatcher.executeDispatch(ooFrame, '.uno:ExecuteSearch', '', 0, VariantArr);
Документ с "!!" создается.
Кто может, помогите пожалуйста.
Да и еще: VariantArr[0].value если смотреть отладчиком возвращает Unknown type: 17
То же для VariantArr[1], VariantArr[8], VariantArr[13]-VariantArr[15], VariantArr[17]
sniknik (2007-11-29 15:59:00) [1]http://www.delphimaster.ru/cgi-bin/forum.pl?id=1196340811&n=0
спам