Форум: "Начинающим";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];
ВнизЗамена текста в 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.047 c