Difference between revisions of "IT/Documentation/BASIC Guide/Other Instructions"
Sseminario (Talk | contribs) (→Qualificatori) |
|||
Line 115: | Line 115: | ||
Osservare che il costrutto <tt>With</tt> deve essere interamente esterno rispetto al costrutto <tt>Select</tt>. | Osservare che il costrutto <tt>With</tt> deve essere interamente esterno rispetto al costrutto <tt>Select</tt>. | ||
+ | {{InterWiki Languages BasicGuide|articletitle=Documentation/BASIC Guide/Other Instructions}} | ||
{{PDL1}} | {{PDL1}} |
Latest revision as of 11:04, 18 September 2009
- Presentazione dei programmi in Basic
- Utilizzo delle variabili
- Variabili a stringa
- Variabili numeriche
- Variabili booleane
- Variabili data
- Matrici
- Campo di applicazione e vita utile delle variabili
- Costanti
- Operatori
- Istruzioni condizionali
- Cicli
- Procedure e funzioni
- Gestione degli errori
- Altre istruzioni
Type...End Type
Uno struct è una raccolta di campi di dati, gestibili come elemento unico. Nella terminologia precedente, lo struct corrisponde a un record o a parte di un record.
L'API utilizza spesso struct predefiniti, ma questi sono struct UNO, un tipo di struct altamente specializzato.
Definizione
Mediante le istruzioni Type...End Type, potete definire struct (non UNO) personalizzati:
Type aMenuItem 'assign the name of the type 'Define the data fields within the struct. Each ' definition looks like a Dim statement, without the "Dim". aCommand as String aText as String End Type 'close the definition
Istanza
La definizione Type è soltanto un modello, e non un set di vere variabili. Per creare un'istanza del tipo, costituita di variabili reali, leggibili e memorizzabili, utilizzate l'istruzione Dim as New:
Dim maItem as New aMenuItem
Ambito
Come mostrato nell'esempio seguente, la definizione Type può essere inserita all'inizio di un modulo (prima della prima istruzione Sub o Function). La definizione sarà quindi disponibile per tutte le routine del modulo.
A partire da OpenOffice.org 3.0, e a differenza di quanto accade per le variabili, non è possibile consentire l'accesso alla definizione al di fuori del modulo.
Un'istanza del nuovo tipo è una variabile, e segue le regole consuete per il campo di applicazione delle variabili (vedere Campo di applicazione e vita utile delle variabili).
Un esempio della modalità di utilizzo della definizione e del riferimento ai campi all'interno di un'istanza è disponibile nella sezione relativa a With...End With.
With...End With
Qualificatori
In generale, Basic non verifica un contenitore, quale Object, per rilevare i nomi eventualmente definiti nel contenitore stesso. Per utilizzare questo tipo di nome, è necessario indirizzare la ricerca in Basic. Per fare ciò il nome dell'oggetto va utilizzato come qualificatore. Scrivere il nome prima del nome interno, separandolo con un punto:
MyObject.SomeName
Dato che i contenitori possono a loro volta includere altri contenitori, potrebbero essere necessari più qualificatori. Scrivere i qualificatori in ordine, dal più esterno al più interno:
OuterObject.InnerObject.FarInsideObject.SomeName
Questi nomi possono essere descritti anche come concatenati mediante l'operatore punto ('.').
Soluzione alternativa con With
Le istruzioni di delimitazione With...End With offrono un'alternativa alla scrittura ripetuta di tutti i qualificatori, alcuni dei quali possono risultare particolarmente lunghi. Potete specificare i qualificatori nell'istruzione With. Fino a quando Basic non trova l'istruzione End With, ricerca nomi parzialmente qualificati, ovvero nomi che iniziano con il punto (operatore unario punto). Il compilatore utilizza i qualificatori dell'istruzione With come se fossero scritti prima del nome parzialmente qualificato.
Esempio 1: struct definito dall'utente
Questo esempio mostra come definire e utilizzare uno struct, e come creare riferimenti agli elementi in esso contenuti, utilizzando o meno With.
Type aMenuItem aCommand as String aText as String End Type Sub Main 'Create an instance of the user-defined struct. ' Note the keyword, "New". Dim maItem as New aMenuItem With maItem .aCommand = ".uno:Copy" .aText = "~Copy" End With MsgBox "Command: " & maItem.aCommand & Chr(13) _ & "Text: " & maItem.aText End Sub
Esempio 2: istruzione Case
In Celle e intervalli, dall'esempio seguente sono stati esclusi completamente i qualificatori nelle istruzioni Case, per maggior chiarezza. Il codice può essere scritto in modo più semplice come segue:
Dim Doc As Object Dim Sheet As Object Dim Cell As Object Doc = StarDesktop.CurrentComponent Sheet = Doc.Sheets(0) Cell = Sheet.getCellByPosition(1,1) 'Cell "B2" (0-based!) Cell.Value = 1000 With com.sun.star.table.CellContentType Select Case Cell.Type Case .EMPTY MsgBox "Content: Empty" Case .VALUE MsgBox "Content: Value" Case .TEXT MsgBox "Content: Text" Case .FORMULA MsgBox "Content: Formula" End Select End With
Osservare che il costrutto With deve essere interamente esterno rispetto al costrutto Select.
Content on this page is licensed under the Public Documentation License (PDL). |