Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.23;
Скачать: CL | DM;

Вниз

Замена текста в OpenOffice   Найти похожие ветки 

 
_Guest_   (2007-11-29 15:24) [0]

При замене текста  в 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) [1]

http://delphimaster.net/view/1-1196340811/
спам



Страницы: 1 вся ветка

Текущий архив: 2007.12.23;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.018 c
15-1195867805
SerJaNT
2007-11-24 04:30
2007.12.23
Помогите составить SQL-запрос


2-1196157691
BattleCruser
2007-11-27 13:01
2007.12.23
Обработка сообщений в невизуалных класах.


2-1196464192
-=Р@Ф=-
2007-12-01 02:09
2007.12.23
Отчеты, млин...


2-1196229163
d@nger
2007-11-28 08:52
2007.12.23
Как узнать противоположный цвет?


15-1196144491
chem
2007-11-27 09:21
2007.12.23
Экспертная система (Химия)