Ciao @gino62
provo a risponderti io, per quanto possibile ed in base alle mie conoscenze.
- Posizione finestra
Non ho riscontrato il problema da te segnalato. Alla modifica delle coordinate x e y, corrisponde una posizione diversa della finestra. Per quanto ne so, l'istruzione oDialogControl.Execute() non influisce sulla posizione della finestra...
In alternativa poi provare ad usare
Codice: Seleziona tutto
With oDialogModel
.setPropertyValue("PositionX",100)
.setPropertyValue("PositionY",300)
.setPropertyValue("Width",120)
.setPropertyValue("Height",120)
.setPropertyValue("Title","Titolo della finestra di dialogo")
.setPropertyValue("Name","NomeFinestra1")
.setPropertyValue("DesktopAsParent",True)
End With
oppure inserire dopo oDialogControl.setModel( oDialogModel ) questa riga
Codice: Seleziona tutto
oDialogControl.setPosSize(100,300, , ,com.sun.star.awt.PosSize.POS) 'x=100,y=300,w="",h=""
che modifica le sole coordinate x e y della finestra.
- Chiusura finestra con "x" nella barra del titolo
Il pulsante "x" nella barra del titolo è attivo solamente nelle finestre modali; nelle finestre non modali è disattivato e credo non attivabile.
- Errore nella chiusura della finestra abbinata a Sub FinestraDialogoNonModale2
Nel tuo caso specifico hai dichiarato la variabile oDialogControl come Private e pertanto al termine della Sub FinestraDialogoNonModale2, detta variabile cessa di vivere. Quando chiami la Sub NomeTasto2_actionPerformed( oEvent ) , con la pressione del pulsante presente in finestra, l'oggetto oDialogControl non è più definito quindi ti evidenzia l'errore. Per ovviare a ciò devi dichiarare la variabile oDialogControl come Global.
- Finestre modali
Le finestre modali si eseguono con .Execute() e si chiudono sempre con .endExecute() . Preferibilmente create con Basic IDE.
Le finestre modali non consentono nessun'altra azione del programma fino alla loro chiusura (sospendono l'esecuzione della macro). Alla chiusura della finestra, la macro riprende fino al naturale termine. Le variabili definite nella macro (siano esse locali o private) sono ancora utilizzabili dopo la chiusura della finestra.
- Finestre non modali
Le finestre non modali si visualizzano con .setVisible(True) e si chiudono sempre con .setVisible(False). Si possono creare anche con codice.
Le finestre non modali non sospendono la macro e sono utilizzabili solamente al suo termine. Le variabili definite nella macro sono utilizzabili solamente se dichiarate Global.
Scusate la lungaggine nella spiegazione...
Auguri a tutti
Geo