Difference between revisions of "EN/Documentation/BASIC Guide/Working With Forms"
(New page: {{EN/Documentation/BASICGuideTOC/v2 |ShowPrevNext=block |ShowPrevPage=block |PrevPage=Documentation/BASIC Guide/Forms |NextPage=Documentation/BASIC Guide/Control Element Forms |form=block ...) |
|||
Line 6: | Line 6: | ||
|form=block | |form=block | ||
}} | }} | ||
− | {{DISPLAYTITLE: | + | {{DISPLAYTITLE:Uso dei formulari}} |
− | |||
− | {{OOo}} | + | I formulari di {{OOo}} possono contenere campi di testo, caselle di riepilogo, pulsanti di scelta e una serie di altri elementi di controllo, che vengono inseriti direttamente in un testo o in un foglio elettronico. Per la modifica dei formulari viene utilizzata la barra dei simboli Funzioni formulario. |
− | + | Un formulario di {{OOo}} può usufruire di una delle due modalità seguenti: bozza e visualizzazione. Nel primo caso, la posizione degli elementi di controllo può essere modificata e le relative proprietà modificate utilizzando una finestra delle proprietà. | |
− | + | Per passare da una modalità all'altra potete utilizzare anche la barra degli strumenti Funzioni formulario. | |
− | {{OOo}} | + | == Determinazione degli oggetti formulario == |
+ | |||
+ | {{OOo}} posiziona gli elementi di controllo di un formulario al livello degli oggetti di disegno. Si accede all'oggetto formulario dall'elenco Forms al livello disegno. Nei documenti di testo si accede agli oggetti nel modo seguente: | ||
<source lang="oobas"> | <source lang="oobas"> | ||
Line 28: | Line 29: | ||
</source> | </source> | ||
− | <tt> | + | Il metodo <tt>GetByIndex</tt> restituisce il formulario con il numero d'indice 0. |
− | + | Quando si lavora con i fogli elettronici, è necessaria una fase intermedia tramite l'elenco Sheets perché i livelli di disegno non sono situati direttamente nel documento, ma nei singoli fogli: | |
<source lang="oobas"> | <source lang="oobas"> | ||
Line 44: | Line 45: | ||
</source> | </source> | ||
− | <tt>GetByIndex</tt> | + | Come suggerito dal nome del metodo <tt>GetByIndex</tt> un documento può contenere diversi formulari. Ciò risulta utile, ad esempio, se all'interno di un unico documento vengono visualizzati i contenuti di diversi database o se è visualizzata in un formulario una relazione di database 1:n. A tal fine è disponibile anche l'opzione di creare formulari secondari. |
− | == | + | == I tre aspetti degli elementi di controllo di un formulario == |
− | + | Gli elementi di controllo di un formulario sono composti da tre aspetti: | |
− | * | + | * Il '''modello''' dell'elemento di controllo è l'oggetto chiave per il programmatore in {{OOo}} Basic che opera con gli elementi di controllo dei formulari. |
− | * | + | * La sua controparte è la '''vista''' dell'elemento di controllo, che gestisce le informazioni da visualizzare. |
− | * | + | * Dato che gli elementi di controllo dei formulari nei documenti vengono gestiti come un elemento di disegno di tipo speciale, esiste anche un '''oggetto forma''' che riflette le proprietà specifiche dell'elemento disegno dell'elemento di controllo (in particolare, la sua posizione e le dimensioni). |
− | == | + | == Accesso al modello degli elementi di controllo dei formulari == |
− | + | I modelli degli elementi di controllo di un formulario sono disponibili tramite il metodo <tt>GetByName</tt> dell'Object form: | |
<source lang="oobas"> | <source lang="oobas"> | ||
Line 68: | Line 69: | ||
</source> | </source> | ||
− | + | L'esempio determina il modello dell'elemento di controllo <tt>MyListBox</tt>, situato nel primo formulario del documento di testo attualmente aperto. | |
− | + | Se non si è certi dell'elemento di controllo, utilizzate l'opzione di ricerca in tutti i formulari per individuare l'elemento di controllo richiesto: | |
<source lang="oobas"> | <source lang="oobas"> | ||
Line 91: | Line 92: | ||
</source> | </source> | ||
− | + | L'esempio utilizza il metodo <tt>HasByName</tt> per controllare tutti i formulari di un documento di testo per determinare se contengono un modello di elemento di controllo denominato <tt>MyListBox</tt>. Se viene individuato un modello corrispondente, il riferimento a questo modello viene salvato nella variabile <tt>Ctl</tt> e la ricerca è terminata. | |
− | == | + | == Accesso alla vista degli elementi di controllo dei formulari == |
− | + | Per accedere alla vista degli elementi di controllo di un formulario, è necessario prima disporre del modello associato. La vista dell'elemento di controllo può essere determinata con l'ausilio del modello e utilizzando il controller del documento. | |
<source lang="oobas"> | <source lang="oobas"> | ||
Line 120: | Line 121: | ||
</source> | </source> | ||
− | + | Il codice riportato nell'esempio è molto simile al codice dell'esempio precedente per determinare un modello di elemento di controllo. Utilizza non solo l'oggetto documento <tt>Doc</tt> ma anche l'oggetto controller <tt>DocCrl</tt> del documento che fa riferimento alla finestra del documento corrente. Con l'ausilio di questo oggetto controller e del modello dell'elemento di controllo, utilizza il metodo <tt>GetControl</tt> per determinare la vista (variabile <tt>CtlView</tt>) degli elementi di controllo dei formulari. | |
− | == | + | == Accesso all'oggetto forma degli elementi di controllo dei formulari == |
− | + | Il metodo per accedere agli oggetti forma di un elemento di controllo si avvale anche del livello disegno corrispondente del documento. Per determinare uno speciale elemento di controllo, occorre eseguire una ricerca tra tutti gli elementi del livello disegno. | |
<source lang="oobas"> | <source lang="oobas"> | ||
Line 143: | Line 144: | ||
</source> | </source> | ||
− | + | L'esempio controlla tutti gli elementi di disegno per determinare se supportano l'interfaccia <idl>com.sun.star.drawing.XControlShape</idl> necessaria per gli elementi di controllo dei formulari. In caso positivo, la proprietà <tt>Control.Name</tt> controlla se il nome dell'elemento di controllo è <tt>MyListBox</tt>. Se sì, la funzione termina la ricerca. | |
− | === | + | === Determinazione delle dimensioni e della posizione degli elementi di controllo === |
− | + | Come menzionato in precedenza, è possibile determinare le dimensioni e la posizione degli elementi di controllo utilizzando l'oggetto <tt>shape</tt>. La forma dell'elemento di controllo, come molti altri oggetti <tt>shape</tt>, fornisce a tal fine le proprietà <tt>Size</tt> e <tt>Position</tt>: | |
− | ;<tt>Size (struct)</tt>: | + | ;<tt>Size (struct)</tt>:Dimensioni dell'elemento di controllo (struttura di dati <idl>com.sun.star.awt.Size</idl>) |
− | ;<tt>Position (struct)</tt>: | + | ;<tt>Position (struct)</tt>:Posizione dell'elemento di controllo (struttura di dati <idl>com.sun.star.awt.Point</idl>) |
− | + | L'esempio seguente mostra come impostare la posizione e le dimensioni di un elemento di controllo utilizzando l'oggetto forma associato: | |
<source lang="oobas"> | <source lang="oobas"> | ||
Line 166: | Line 167: | ||
</source> | </source> | ||
− | + | Perché il codice funzioni, l'oggetto <tt>shape</tt> dell'elemento di controllo deve già essere noto. In caso contrario, dovrete determinarlo utilizzando il codice di cui sopra. | |
{{PDL1}} | {{PDL1}} | ||
{{InterWiki_Languages_BasicGuide|articletitle=Documentation/BASIC Guide/Working With Forms}} | {{InterWiki_Languages_BasicGuide|articletitle=Documentation/BASIC Guide/Working With Forms}} |
Latest revision as of 18:22, 25 June 2009
Template:EN/Documentation/BASICGuideTOC/v2
I formulari di Apache OpenOffice possono contenere campi di testo, caselle di riepilogo, pulsanti di scelta e una serie di altri elementi di controllo, che vengono inseriti direttamente in un testo o in un foglio elettronico. Per la modifica dei formulari viene utilizzata la barra dei simboli Funzioni formulario.
Un formulario di Apache OpenOffice può usufruire di una delle due modalità seguenti: bozza e visualizzazione. Nel primo caso, la posizione degli elementi di controllo può essere modificata e le relative proprietà modificate utilizzando una finestra delle proprietà.
Per passare da una modalità all'altra potete utilizzare anche la barra degli strumenti Funzioni formulario.
Contents
Determinazione degli oggetti formulario
Apache OpenOffice posiziona gli elementi di controllo di un formulario al livello degli oggetti di disegno. Si accede all'oggetto formulario dall'elenco Forms al livello disegno. Nei documenti di testo si accede agli oggetti nel modo seguente:
Dim Doc As Object Dim DrawPage As Object Dim Form As Object Doc = StarDesktop.CurrentComponent DrawPage = Doc.DrawPage Form = DrawPage.Forms.GetByIndex(0)
Il metodo GetByIndex restituisce il formulario con il numero d'indice 0.
Quando si lavora con i fogli elettronici, è necessaria una fase intermedia tramite l'elenco Sheets perché i livelli di disegno non sono situati direttamente nel documento, ma nei singoli fogli:
Dim Doc As Object Dim Sheet As Object Dim DrawPage As Object Dim Form As Object Doc = StarDesktop.CurrentComponent Sheet = Doc.Sheets.GetByIndex(0) DrawPage = Sheet.DrawPage Form = DrawPage.Forms.GetByIndex(0)
Come suggerito dal nome del metodo GetByIndex un documento può contenere diversi formulari. Ciò risulta utile, ad esempio, se all'interno di un unico documento vengono visualizzati i contenuti di diversi database o se è visualizzata in un formulario una relazione di database 1:n. A tal fine è disponibile anche l'opzione di creare formulari secondari.
I tre aspetti degli elementi di controllo di un formulario
Gli elementi di controllo di un formulario sono composti da tre aspetti:
- Il modello dell'elemento di controllo è l'oggetto chiave per il programmatore in Apache OpenOffice Basic che opera con gli elementi di controllo dei formulari.
- La sua controparte è la vista dell'elemento di controllo, che gestisce le informazioni da visualizzare.
- Dato che gli elementi di controllo dei formulari nei documenti vengono gestiti come un elemento di disegno di tipo speciale, esiste anche un oggetto forma che riflette le proprietà specifiche dell'elemento disegno dell'elemento di controllo (in particolare, la sua posizione e le dimensioni).
Accesso al modello degli elementi di controllo dei formulari
I modelli degli elementi di controllo di un formulario sono disponibili tramite il metodo GetByName dell'Object form:
Dim Doc As Object Dim Form As Object Dim Ctl As Object Doc = StarDesktop.CurrentComponent Form = Doc.DrawPage.Forms.GetByIndex(0) Ctl = Form.getByName("MyListBox")
L'esempio determina il modello dell'elemento di controllo MyListBox, situato nel primo formulario del documento di testo attualmente aperto.
Se non si è certi dell'elemento di controllo, utilizzate l'opzione di ricerca in tutti i formulari per individuare l'elemento di controllo richiesto:
Dim Doc As Object Dim Forms As Object Dim Form As Object Dim Ctl As Object Dim I as Integer Doc = StarDesktop.CurrentComponent Forms = Doc.Drawpage.Forms For I = 0 To Forms.Count - 1 Form = Forms.GetbyIndex(I) If Form.HasByName("MyListBox") Then Ctl = Form.GetbyName("MyListBox") Exit Function End If Next I
L'esempio utilizza il metodo HasByName per controllare tutti i formulari di un documento di testo per determinare se contengono un modello di elemento di controllo denominato MyListBox. Se viene individuato un modello corrispondente, il riferimento a questo modello viene salvato nella variabile Ctl e la ricerca è terminata.
Accesso alla vista degli elementi di controllo dei formulari
Per accedere alla vista degli elementi di controllo di un formulario, è necessario prima disporre del modello associato. La vista dell'elemento di controllo può essere determinata con l'ausilio del modello e utilizzando il controller del documento.
Dim Doc As Object Dim DocCrl As Object Dim Forms As Object Dim Form As Object Dim Ctl As Object Dim CtlView As Object Dim I as Integer Doc = StarDesktop.CurrentComponent DocCrl = Doc.getCurrentControler() Forms = Doc.Drawpage.Forms For I = 0 To Forms.Count - 1 Form = Forms.GetbyIndex(I) If Form.HasByName("MyListBox") Then Ctl = Form.GetbyName("MyListBox") CtlView = DocCrl.GetControl(Ctl) Exit Function End If Next I
Il codice riportato nell'esempio è molto simile al codice dell'esempio precedente per determinare un modello di elemento di controllo. Utilizza non solo l'oggetto documento Doc ma anche l'oggetto controller DocCrl del documento che fa riferimento alla finestra del documento corrente. Con l'ausilio di questo oggetto controller e del modello dell'elemento di controllo, utilizza il metodo GetControl per determinare la vista (variabile CtlView) degli elementi di controllo dei formulari.
Accesso all'oggetto forma degli elementi di controllo dei formulari
Il metodo per accedere agli oggetti forma di un elemento di controllo si avvale anche del livello disegno corrispondente del documento. Per determinare uno speciale elemento di controllo, occorre eseguire una ricerca tra tutti gli elementi del livello disegno.
Dim Doc As Object Dim Shape as Object Dim I as integer Doc = StarDesktop.CurrentComponent For i = 0 to Doc.DrawPage.Count - 1 Shape = Doc.DrawPage(i) If HasUnoInterfaces(Shape, "com.sun.star.drawing.XControlShape") Then If Shape.Control.Name = "MyListBox" Then Exit Function End If End If Next
L'esempio controlla tutti gli elementi di disegno per determinare se supportano l'interfaccia com.sun.star.drawing.XControlShape necessaria per gli elementi di controllo dei formulari. In caso positivo, la proprietà Control.Name controlla se il nome dell'elemento di controllo è MyListBox. Se sì, la funzione termina la ricerca.
Determinazione delle dimensioni e della posizione degli elementi di controllo
Come menzionato in precedenza, è possibile determinare le dimensioni e la posizione degli elementi di controllo utilizzando l'oggetto shape. La forma dell'elemento di controllo, come molti altri oggetti shape, fornisce a tal fine le proprietà Size e Position:
- Size (struct)
- Dimensioni dell'elemento di controllo (struttura di dati com.sun.star.awt.Size)
- Position (struct)
- Posizione dell'elemento di controllo (struttura di dati com.sun.star.awt.Point)
L'esempio seguente mostra come impostare la posizione e le dimensioni di un elemento di controllo utilizzando l'oggetto forma associato:
Dim Shape As Object Point.x = 1000 Point.y = 1000 Size.Width = 10000 Size.Height = 10000 Shape.Size = Size Shape.Position = Point
Perché il codice funzioni, l'oggetto shape dell'elemento di controllo deve già essere noto. In caso contrario, dovrete determinarlo utilizzando il codice di cui sopra.
Content on this page is licensed under the Public Documentation License (PDL). |