Dziś próbując uruchomić NieDziel na OOo 3.2.1 dostaję ten sam błąd co Sei. Jest tak, jakby wywoływana funkcja nie dostawała od systemu swojego argumentu. To samo dotyczy zresztą oryginalnej czeskiej Vlnki.
Ten sam efekt widzę także na OOo 2.4.1, 3.0.1 i 3.2.1. Ciekawe, przecież w 2.x i 3.0 Python był inny.
Zresztą, nie gra tam wiele rzeczy:
* wywołuje się funkcję getAwtToolkit(), która MUSI mieć argument, by zadziałała, zaś makra Pythona MUSZĄ być w OOo bezargumentowe;
* getAwtToolkit() robi pewną pomocniczą rzecz, która zresztą nie jest nigdzie potem wykorzystywana. Na pewno nie uruchamia generatora poprawek, a zdaje mi się, że jest tylko zbędną pozostałością z kodu Danny'ego Brewera, z którego zaczerpnęli Czesi;
* tak naprawdę liczą się dwie ostatnie (zakomentowane) linie kodu. Utworzyć obiekt odpowiedniej klasy i zmusić go do działania. Tyle że ten zakomentowany kod jest przeznaczony do wywoływania spoza OpenOffice;
* ten same kod jest, przynajmniej w zamyśle, automagicznie wywoływany przez unohelper. Tylko że ja w tym momencie nie rozumiem do końca, jak to działa...
Jeśli dodać do kodu na poziomie głównym
Kod: Zaznacz cały
def niedziel():
ctx = XSCRIPTCONTEXT.getComponentContext()
n = NieDziel(ctx)
n.trigger( () )
Pozostaje pytanie, dlaczego nam to kiedyś działało? Grzegorzu, co o tym myślisz jako autor i realizator pomysłu?
Za mało wiem o unohelper, by zgadnąć od razu co się za tym kryje. Zaś unohelper jest zbyt specjalistyczny, by mnie pociągał. Może kiedyś...
Btw. Sei, kiedy robisz zrzut ekranu, nie używaj formatu jpeg. Najlepszy jest png, dopuszczalny jest gif. Spróbuj, zobaczysz różnicę.
Off: uff, ale się nam wątek rozlazł...