Проблема с ориентацией страницы.

Filimonov Dmitry
Дата: 04.05.2011 15:44:53
Писал проги под OpenOffice, все было прекрасно, а тут появился этот новый Libre, и все поехало.

В общем есть процедура делающая ориентацию страницы

------------------------
Type TOpenPO = (opoPortrait, opoLandscape);

procedure TPageAndPrint.SetPaperOrientation (Const Value: TOpenPO);
var Ar : variant;
i : integer;
begin
Ar := Document.GetPrinter;
for i:= 0 to VarArrayHighBound(Ar,1)
do if Ar[i].Name = 'PaperOrientation' then
begin
Ar[i].Value := Value;
Document.SetPrinter(Ar);
Break;
end;
Ar := Unassigned;
End;
----------------

Document определяется чуть раньше, через:

...
Desktop := OO.createInstance('com.sun.star.frame.Desktop');
Document := Desktop.LoadComponentFromURL
(
'private:factory/scalc', '_blank',
0,
VarArrayCreate([0, -1], varVariant)
);
Document.getCurrentController.getFrame.
getContainerWindow.setVisible(False);
Result := not (VarIsEmpty(Document) or VarIsNull(Document));
...

В OO все работало, а здесь программа в рунтайме ругается вот на эту строчку: "Ar[i].Value := Value;". Пишет "Invalid Variant Operation".