Odgovori 
Dijalog

Poštovanje,
Pravi jedan dijalog i želim da, kada je diajlog (prozor) otvoren,
da mogu i da radim na listu (Calc). Trenutno mogu samo da radim
sa dijalogom, a ne paralelno sa listom, kada je dijalog otvoren.

Sada ga otvaram sa sledećim kodom:
Dim Dlg As Object
DialogLibraries.LoadLibrary("MAKROI")
Dlg = CreateUnoDialog(DialogLibraries.MAKROI.Dialog1)
Dlg.Execute()

Na jednom sajtu mi je sugerisano da umesto Dlg.Execute
pokušavm sa *Dlg.setVisible(True) *
međutim, tada se dijalog samo na milisekund otvori i
odamh zatvori. Da li zna neko rešenje za ovo?

--
Srdačan pozdrav,
Stevanović Vladislav
Citiraj ovu poruku u odgovoru

Ovo naprimer:


Global g_Dlg, g_Stop as Boolean
Sub Main
...
REM test status every second:
do until gStop
wait 1000
loop
g_Dlg.setVisible(False)
...

Sub someEvent()
g_Stop = True
End Sub


Ljubomir

Vladislav Stevanovic wrote:
> Poštovanje,
> Pravi jedan dijalog i želim da, kada je diajlog (prozor) otvoren,
> da mogu i da radim na listu (Calc). Trenutno mogu samo da radim
> sa dijalogom, a ne paralelno sa listom, kada je dijalog otvoren.
>
> Sada ga otvaram sa sledećim kodom:
> Dim Dlg As Object
> DialogLibraries.LoadLibrary("MAKROI")
> Dlg = CreateUnoDialog(DialogLibraries.MAKROI.Dialog1)
> Dlg.Execute()
>
> Na jednom sajtu mi je sugerisano da umesto Dlg.Execute
> pokušavm sa *Dlg.setVisible(True) *
> međutim, tada se dijalog samo na milisekund otvori i
> odamh zatvori. Da li zna neko rešenje za ovo?
>
Citiraj ovu poruku u odgovoru

Primenio sam taj kod i radio je lepo prvi put. Sledeći put kad sam hteo da
otvorim dijalog otvorio se samo za časak. Možda treba da se drugačije
formuliše akcija za isključivanje dijaloga. Možda sa if petljom?

2010/9/30 Ljubomir Ljubojevic <office@plcomputers.net>

> Ovo naprimer:
>
>
> Global g_Dlg, g_Stop as Boolean
> Sub Main
> ...
> REM test status every second:
> do until gStop
> wait 1000
> loop
> g_Dlg.setVisible(False)
> ...
>
> Sub someEvent()
> g_Stop = True
> End Sub
>
>
> Ljubomir
>
>
> Vladislav Stevanovic wrote:
>
>> Poštovanje,
>> Pravi jedan dijalog i želim da, kada je diajlog (prozor) otvoren,
>> da mogu i da radim na listu (Calc). Trenutno mogu samo da radim
>> sa dijalogom, a ne paralelno sa listom, kada je dijalog otvoren.
>>
>> Sada ga otvaram sa sledećim kodom:
>> Dim Dlg As Object
>> DialogLibraries.LoadLibrary("MAKROI")
>> Dlg = CreateUnoDialog(DialogLibraries.MAKROI.Dialog1)
>> Dlg.Execute()
>>
>> Na jednom sajtu mi je sugerisano da umesto Dlg.Execute
>> pokušavm sa *Dlg.setVisible(True) *
>> međutim, tada se dijalog samo na milisekund otvori i
>> odamh zatvori. Da li zna neko rešenje za ovo?
>>
>>
>


--
Srdačan pozdrav,
Stevanović Vladislav
Citiraj ovu poruku u odgovoru

Ne, nema to veze. Verovatno je potrebno vratiti g_Dlg na ono sto je bilo
na pocetku. Posto ne programiram macro-e u OOo, ne znam gde sta tacno
treba, ali je programerska praksa da se sve varijable na pocetku
inicijalizuju sa pocetnom vrednoscu.


Naprimer:

funkcija pocetak
prikazi=1

if i=1 then
..
....
prikazi= 0
...
...
kraj funkcije

e sada, ako se ponovo pokrene funkcija, varijabla "prikazi" ce na
pocetku UVEK biti = 1. Ako se to ne uradi, inicijalizacija, varijabla
"prikazi" moze da bude i 1 i 0 i da se dobiju nepredvideni rezultati.

znaci pre pokretanja dijaloga, obavezno postaviti setVisible na zeljenu
vrednost, da li na pocetku funkcije ili neposredno pre pozivanja funkcije.

Vladislav Stevanovic wrote:
> Primenio sam taj kod i radio je lepo prvi put. Sledeći put kad sam hteo da
> otvorim dijalog otvorio se samo za časak. Možda treba da se drugačije
> formuliše akcija za isključivanje dijaloga. Možda sa if petljom?
>
> 2010/9/30 Ljubomir Ljubojevic <office@plcomputers.net>
>
>> Ovo naprimer:
>>
>>
>> Global g_Dlg, g_Stop as Boolean
>> Sub Main
>> ...
>> REM test status every second:
>> do until gStop
>> wait 1000
>> loop
>> g_Dlg.setVisible(False)
>> ...
>>
>> Sub someEvent()
>> g_Stop = True
>> End Sub
>>
>>
>> Ljubomir
>>
>>
>> Vladislav Stevanovic wrote:
>>
>>> Poštovanje,
>>> Pravi jedan dijalog i želim da, kada je diajlog (prozor) otvoren,
>>> da mogu i da radim na listu (Calc). Trenutno mogu samo da radim
>>> sa dijalogom, a ne paralelno sa listom, kada je dijalog otvoren.
>>>
>>> Sada ga otvaram sa sledećim kodom:
>>> Dim Dlg As Object
>>> DialogLibraries.LoadLibrary("MAKROI")
>>> Dlg = CreateUnoDialog(DialogLibraries.MAKROI.Dialog1)
>>> Dlg.Execute()
>>>
>>> Na jednom sajtu mi je sugerisano da umesto Dlg.Execute
>>> pokušavm sa *Dlg.setVisible(True) *
>>> međutim, tada se dijalog samo na milisekund otvori i
>>> odamh zatvori. Da li zna neko rešenje za ovo?
>>>
>>>
>
>
Citiraj ovu poruku u odgovoru

Našao sam na nekom forumu da se isključivanje dijaloga mora obaviti preko
toggle button-a. Samo da mi neko pojasni kakvo je to dugme.
Citiraj ovu poruku u odgovoru

Malo sam ispitivao kako radi dijalog u ne-modalnom stanju
kada se izvršavaju neki makroa aktivirani u listu.
Makro koji sam aktivirao sa lista (za to vreme je uključen
dijalog u ne-modalnom stanju) radi tako da se poništava
čekanje (wait) ukoliko postoji u kodu makroa sa lista.
Hteo sam da proverim da li će prestati da se izvršava i
makro sa lista ako za to vreme želim da isključim dijalog, jer
sam u muci oko isključivanja dijaloga to rešio sa
Sub stopMacro
Stop
End sub
Stavio sam wait 5000 u makro sa lista, da bih imao vremena da
kad pokrenem makro sa lista da kurzorom aktiviram isključivanje
dijaloga. Međutim, makro sa lista je odradio kao lud (čak mi se čini
da je radio brže nego obično!). Kada sam ugasio dijalog, pustio sam
u rad isti makro sa lista i onda je opcija wait funkcionisala.
E sad da li ovo treba prijavljivati kao problem...


2010/10/1 Vladislav Stevanovic <stevanovicvladislav@gmail.com>

> Našao sam na nekom forumu da se isključivanje dijaloga mora obaviti preko
> toggle button-a. Samo da mi neko pojasni kakvo je to dugme.
>



--
Srdačan pozdrav,
Stevanović Vladislav
Citiraj ovu poruku u odgovoru

2010/9/30 Vladislav Stevanovic <stevanovicvladislav@gmail.com>

> Poštovanje,
> Pravi jedan dijalog i želim da, kada je diajlog (prozor) otvoren,
> da mogu i da radim na listu (Calc). Trenutno mogu samo da radim
> sa dijalogom, a ne paralelno sa listom, kada je dijalog otvoren.
> ...


Poštovani,

Dugo nisam zavirio u OOoBasic ali možete pogledati kako je ovo rešeno u
OOoTranslit-u kako za Pisac, tako i za Račun → http://oootranslit.info/

Pozdrav,

Aleksandar Urošević
http://urosevic.net

Vežbanka za školarce :: http://www.vezbanka.com
Citiraj ovu poruku u odgovoru

Hvala Aleksandre, konačno rešeno, zahvaljujući vama.
Za one koji bi hteli recept, on glasi:

Sub OpenDialog
lFinished = False
version = " 0.1"
DialogLibraries.LoadLibrary("Standard")
oDlg = createUnoDialog(DialogLibraries.Standard.Dialog1)
oDlg.Title = "OVO BRE RADI" & version
oDlg.setVisible( True )
oListener = CreateUnoListener("oDlg_",
"com.sun.star.awt.XTopWindowListener")
oDlg.addTopWindowListener(oListener)

While Not lFinished
Wait 100
Wend
oDlg.setVisible( False )
End Sub

Srdačan pozdrav,
Stevanović Vladislav
Citiraj ovu poruku u odgovoru

Mislim da sam poranio sa veseljem. KAda sam ponovo
uključio komp i pokušao da pokrenem dijalog pojavio mi
se prozor koji me obaveštava da argument nije nađen &(ARG1)
Kada sam hteo da odem na ooTranslit da vidim kod, onda je
i makro proradio u vezi mog dijaloga!
Dakle, nešto nedostaje u kod za otvaranje i zatvaranje mog
dijaloga što se pojavi kada uđem u kod ooTranslite. Čupavo...

2010/10/2 Vladislav Stevanovic <stevanovicvladislav@gmail.com>

> Hvala Aleksandre, konačno rešeno, zahvaljujući vama.
> Za one koji bi hteli recept, on glasi:
>
> Sub OpenDialog
> lFinished = False
> version = " 0.1"
> DialogLibraries.LoadLibrary("Standard")
> oDlg = createUnoDialog(DialogLibraries.Standard.Dialog1)
> oDlg.Title = "OVO BRE RADI" & version
> oDlg.setVisible( True )
> oListener = CreateUnoListener("oDlg_",
> "com.sun.star.awt.XTopWindowListener")
> oDlg.addTopWindowListener(oListener)
>
> While Not lFinished
> Wait 100
> Wend
> oDlg.setVisible( False )
> End Sub
>
> Srdačan pozdrav,
> Stevanović Vladislav
>



--
Srdačan pozdrav,
Stevanović Vladislav
Citiraj ovu poruku u odgovoru

ok , pronašao sam.
treba u kod ubaciti:

Sub oDlg_windowActivated(oEv)
End Sub
Sub oDlg_windowDeactivated(oEv)
End Sub
Sub oDlg_windowOpened(oEv)
End Sub
Sub oDlg_windowClosing(oEv)
CloseDialog()
End Sub
Sub oDlg_windowClosed(oEv)
End Sub
Sub oDlg_windowMinimized(oEv)
End Sub
Sub oDlg_windowNormalized(oEv)
End Sub
Sub oDlg_disposing(oEv)
End Sub


2010/10/3 Vladislav Stevanovic <stevanovicvladislav@gmail.com>

> Mislim da sam poranio sa veseljem. KAda sam ponovo
> uključio komp i pokušao da pokrenem dijalog pojavio mi
> se prozor koji me obaveštava da argument nije nađen &(ARG1)
> Kada sam hteo da odem na ooTranslit da vidim kod, onda je
> i makro proradio u vezi mog dijaloga!
> Dakle, nešto nedostaje u kod za otvaranje i zatvaranje mog
> dijaloga što se pojavi kada uđem u kod ooTranslite. Čupavo...
>
> 2010/10/2 Vladislav Stevanovic <stevanovicvladislav@gmail.com>
>
> Hvala Aleksandre, konačno rešeno, zahvaljujući vama.
>> Za one koji bi hteli recept, on glasi:
>>
>> Sub OpenDialog
>> lFinished = False
>> version = " 0.1"
>> DialogLibraries.LoadLibrary("Standard")
>> oDlg = createUnoDialog(DialogLibraries.Standard.Dialog1)
>> oDlg.Title = "OVO BRE RADI" & version
>> oDlg.setVisible( True )
>> oListener = CreateUnoListener("oDlg_",
>> "com.sun.star.awt.XTopWindowListener")
>> oDlg.addTopWindowListener(oListener)
>>
>> While Not lFinished
>> Wait 100
>> Wend
>> oDlg.setVisible( False )
>> End Sub
>>
>> Srdačan pozdrav,
>> Stevanović Vladislav
>>
>
>
>
> --
> Srdačan pozdrav,
> Stevanović Vladislav
>



--
Srdačan pozdrav,
Stevanović Vladislav
Citiraj ovu poruku u odgovoru
Odgovori 




Kontakt | otvorenidokument.com | Povratak na vrh | Povratak na sadržaj | RSS