Uso delle finestre di dialogo

From Apache OpenOffice Wiki
Jump to: navigation, search


Le finestre di dialogo di OpenOffice.org Basic sono formate da una finestra di dialogo contenente campi di testo, caselle di riepilogo, pulsanti di scelta e altri elementi di controllo.

È possibile creare e strutturare le finestre di dialogo avvalendosi del Dialog Editor di OpenOffice.org:

Creazione e strutturazione di finestre di dialogo nel Dialog Editor

È possibile trascinare gli elementi di controllo dalla tavolozza di progettazione (a destra) nell'area delle finestre di dialogo in cui definire posizione e dimensioni.

L'esempio mostra una finestra di dialogo contenente un'etichetta e una casella di riepilogo.

Finestra di dialogo contenente un'etichetta e una casella di riepilogo

Per aprire una finestra di dialogo potete utilizzare il codice seguente:

Dim Dlg As Object
 
DialogLibraries.LoadLibrary("Standard")
Dlg = CreateUnoDialog(DialogLibraries.Standard.DlgDef)
Dlg.Execute()
Dlg.dispose()

CreateUnoDialog crea un oggetto denominato Dlg che fa riferimento alla finestra di dialogo associata. Prima di creare la finestra di dialogo, accertarsi che la libreria utilizzata (in questo esempio, la libreria Standard) sia caricata. È il metodo LoadLibrary ad eseguire questa operazione.

Una volta inizializzato l'oggetto Dlg, potete utilizzare il metodo Execute per visualizzare la finestra di dialogo. Le finestre di dialogo come questa sono descritte come modali perché non consentono nessun'altra azione del programma fino alla loro chiusura. Con la finestra di dialogo aperta, il programma rimane nella chiamata Execute.

Il metodo dispose alla fine del codice approva le risorse utilizzate dalla finestra di dialogo al termine del programma.

Chiusura con OK o con Annulla

Se una finestra di dialogo contiene un pulsante OK o Annulla, è possibile chiuderla automaticamente con la pressione di uno di questi pulsanti. Per ulteriori informazioni sull'utilizzo di questi pulsanti, consultate la sezione Dettagli sugli elementi di controllo delle finestre di dialogo.

Se si chiude una finestra di dialogo facendo clic sul pulsante OK, il metodo Execute restituisce il valore 1, altrimenti viene restituito il valore 0.

Dim Dlg As Object
 
DialogLibraries.LoadLibrary("Standard")
Dlg = CreateUnoDialog(DialogLibraries.Standard.MyDialog)
Select Case Dlg.Execute() 
Case 1
  MsgBox "Ok pressed"
Case 0 
  MsgBox "Cancel pressed"
End Select

Chiusura con il pulsante Chiudi nella barra del titolo

Se lo si desidera, è possibile chiudere una finestra di dialogo facendo clic sul pulsante Chiudi nella barra del titolo della finestra di dialogo. Il metodo Execute della finestra di dialogo restituisce il valore 0, equivalente alla pressione del pulsante Annulla.

Chiusura con una chiamata esplicita del programma

Per chiudere una finestra di dialogo aperta è possibile procedere anche con il metodo endExecute:

Dlg.endExecute()

Accesso ai singoli elementi di controllo

Una finestra di dialogo può contenere qualsiasi numero di elementi di controllo. Si accede a questi elementi tramite il metodo getControl che restituisce il nome dell'elemento di controllo.

Dim Ctl As Object
 
Ctl = Dlg.getControl("MyButton")
Ctl.Label = "New Label"

Questo codice determina l'oggetto per l'elemento di controllo MyButton e quindi inizializza la variabile oggetto Ctl con un riferimento all'elemento. Infine, il codice imposta la proprietà Label dell'elemento di controllo sul valore New Label.

Documentation note.png A differenza degli identificatori di OpenOffice.org, per i nomi degli elementi di controllo viene applicata la distinzione tra maiuscole e minuscole.

Uso del modello di finestre di dialogo ed elementi di controllo

La divisione tra elementi del programma visibili (Vista) e dati o documenti retrostanti (Modello) si verifica in molti punti dell'API di OpenOffice.org. Oltre ai metodi e alle proprietà degli elementi di controllo, gli oggetti finestre di dialogo e gli elementi di controllo dispongono di un oggetto Model subordinato, che permette di accedere direttamente ai contenuti di una finestra di dialogo o di un elemento di controllo.

Nelle finestre di dialogo, la distinzione tra dati e raffigurazione non è sempre così chiara come in altre aree dell'API di OpenOffice.org. Gli elementi dell'API sono disponibili tramite la Vista e il Modello.

La proprietà Model fornisce un accesso controllato da programma al modello degli oggetti finestra di dialogo ed elemento di controllo.

Dim cmdNext As Object
 
cmdNext = Dlg.getControl("cmdNext")
cmdNext.Model.Enabled = False

Questo esempio disattiva il pulsante cmdNtext nella finestra di dialogo Dlg con l'ausilio dell'oggetto modello di cmdNtext.

Content on this page is licensed under the Public Documentation License (PDL).
Personal tools