Difference between revisions of "NL/Documentation/BASIC Guide/Other Instructions"

From Apache OpenOffice Wiki
Jump to: navigation, search
(Created page with "{{DISPLAYTITLE:Andere instructies}} {{NL/Documentation/BASICGuideTOC/v2 |ShowPrevNext=block |ShowPrevPage=block |PrevPage=NL/Documentation/BASIC Guide/Error Handling |NextPage...")
 
m (Voorbeeld 2: argument Case)
(10 intermediate revisions by the same user not shown)
Line 11: Line 11:
 
=== Struct ===
 
=== Struct ===
  
Een ''struct'' is een geordende collectie van gegevensvelden, die kunnen wordne bewerkt als één enkel item. Met andere woorden: u kunt aan een struct denken als aan een record, of gedeelte van een record.
+
Een ''struct'' is een geordende collectie van gegevensvelden, die kunnen worden bewerkt als één enkel item. Met andere woorden: u kunt aan een struct denken als aan een record, of gedeelte van een record.
  
De [[Documentation/BASIC Guide/API Intro|API]] gebruikt vaal vooraf gedefinieerde structs, maar dat zijn ''UNO structs'', een zeer gespecialiseerd soort struct.
+
De [[Documentation/BASIC Guide/API Intro|API]] gebruikt vaak vooraf gedefinieerde structs, maar dat zijn ''UNO structs'', een zeer gespecialiseerd soort struct.
  
 
=== Definitie ===
 
=== Definitie ===
Line 38: Line 38:
 
=== Bereik ===
 
=== Bereik ===
  
Zoals weergegeven in het voorbeeld hieronder kan de definitie <tt>Type</tt> aan het begin van ene module worden geschreven (vóór de eerste <tt>Sub</tt> of <tt>Function</tt>). De definitie zal dan beschikbaar zijn voor alle routines in de module.
+
Zoals weergegeven in het voorbeeld hieronder kan de definitie <tt>Type</tt> aan het begin van een module worden geschreven (vóór de eerste <tt>Sub</tt> of <tt>Function</tt>). De definitie zal dan beschikbaar zijn voor alle routines in de module.
  
 
Vanaf {{PRODUCTNAME}} versie 3.0 is er, anders dan met variabelen, geen manier om de definitie toegankelijke te maken buiten de module.
 
Vanaf {{PRODUCTNAME}} versie 3.0 is er, anders dan met variabelen, geen manier om de definitie toegankelijke te maken buiten de module.
Line 47: Line 47:
  
 
== '''<tt>With...End With</tt>''' ==
 
== '''<tt>With...End With</tt>''' ==
=== Qualifiers ===
+
=== Kwalificaties ===
In general, Basic does not look inside a container, such as an <tt>Object</tt>, to see what names might be defined there. If you want to use such a name, you must tell Basic where to look. You do that by using the name of the object as a ''qualifier''. Write it before the inner name, and separate it by a period:
+
In het algemeen kijkt BASIC niet in een container, zoals een <tt>Object</tt>, om te zien welke namen daar zouden kunnen zijn gedefinieerd. Als u een dergelijke naam wilt gebruiken, zult u BASIC moeten vertellen waar het moet kijken. U doet dat door de naam van het object te gebruiken als een ''kwalificatie''. Schrijf het vóór de binnenste naam en scheidt ze met een punt:
  
  MyObject.SomeName
+
  MijnObject.EenNaam
  
Since containers may hold other containers, you may need more than one qualifier. Write the qualifiers in order, from outer to inner:
+
Omdat containers ander containers zouden kunnen bevatten, zou u misschien meer dan één kwalificatie nodig hebben. Schrijf de kwalificaties in volgorde, van buiten naar binnen:
  
  OuterObject.InnerObject.FarInsideObject.SomeName
+
  BuitensteObject.BinnensteObject.VerBinnenObject.EenNaam
  
These names may also be described as, "concatenated with the dot-operator ('.')".
+
Deze namen kunnen ook worden beschreven als "samengevoegd met de operator punt ('.')".
  
=== The <tt>With</tt> Alternative ===
+
=== Het alternatief <tt>With</tt> ===
  
The <tt>With...End With</tt> bracketing statements provide an alternative to writing out all the qualifiers, every time and some of the qualifiers in the API can be quite long. You specify the qualifiers in the <tt>With</tt> statement. Until Basic encounters the <tt>End With</tt> statement, it looks for ''partly-qualified'' names: names that begin with a period (unary dot-operator). The compiler uses the qualifiers from the <tt>With</tt> as though they were written in front of the partly-qualified name.
+
De door haakjes omsloten argumenten <tt>With...End With</tt> verschaffen een alternatief voor het, elke keer, uitschrijven van alle kwalificaties en sommige van de kwalificaties in de API kunnen vrij lang zijn. U specificeert de kwalificaties in het argument <tt>With</tt>. Totdat BASIC het argument <tt>End With</tt> tegen komt, zoekt het naar ''gedeeltelijk-gekwalificeerde'' namen: namen die beginnen met een punt (unaire operator punt). De compiler gebruikt de kwalificaties uit de <tt>With</tt> alsof zij werden geschreven vóór de gedeeltelijk gekwalificeerde namen.
  
=== Example 1: A User-defined Struct ===
+
=== Voorbeeld 1: Een gebruikergedefinieerde Struct ===
  
This example shows how you may define and use a struct, and how to reference the items within it, both with and without <tt>With</tt>. Either way, the names of the data fields (from the <tt>Type</tt> definition) must be qualified by the name of the instance (from the <tt>Dim</tt> statement).
+
Dit voorbeeld geeft weer hoe u een struct kunt definiëren en gebruiken, en hoe naar de items erin te verwijzen, zowel met als zonder <tt>With</tt>. In beide gevallen moeten de namen van de gegevensvelden (uit de definitie <tt>Type</tt>) worden gekwalificeerd door de naam van de instantie (uit het argument <tt>Dim</tt>).
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 73: Line 73:
 
      
 
      
 
Sub Main
 
Sub Main
     'Create an instance of the user-defined struct.
+
     'Maak een instantie van de gebruikergedefinieerde struct.
     ' Note the keyword, "New".
+
     ' Onthoud het sleutelwoord: "New".
 
     Dim maItem as New aMenuItem
 
     Dim maItem as New aMenuItem
 
     With maItem
 
     With maItem
 
         .aCommand = ".uno:Copy"
 
         .aCommand = ".uno:Copy"
         .aText = "~Copy"
+
         .aText = "~Kopiëren"
 
     End With
 
     End With
 
      
 
      
     MsgBox    "Command: " & maItem.aCommand & Chr(13) _
+
     MsgBox    "Opdracht: " & maItem.aCommand & Chr(13) _
             & "Text: " & maItem.aText
+
             & "Tekst: " & maItem.aText
 
End Sub
 
End Sub
 
</source>
 
</source>
  
=== Example 2: Case statement ===
+
=== Voorbeeld 2: argument Case ===
  
In [[Documentation/BASIC_Guide/Cells and Ranges|Cells and Ranges]], the following example has the qualifiers in the <tt>Case</tt> statements written out completely, for clarity. You can write it more easily, this way:
+
In [[NL/Documentation/BASIC_Guide/Cells and Ranges|Cellen en bereiken]] zijn in het volgende voorbeeld de kwalificaties in de argumenten <tt>Case</tt>, voor de duidelijkheid, volledig uitgeschreven. U kunt het, op deze manier, eenvoudiger schrijven:
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 97: Line 97:
 
Doc = ThisComponent
 
Doc = ThisComponent
 
Sheet = Doc.Sheets(0)
 
Sheet = Doc.Sheets(0)
Cell = Sheet.getCellByPosition(1,1) 'Cell "B2" (0-based!)
+
Cell = Sheet.getCellByPosition(1,1) 'Cel "B2" (gebaseerd op 0!)
  
 
Cell.Value = 1000
 
Cell.Value = 1000
Line 104: Line 104:
 
   Select Case Cell.Type
 
   Select Case Cell.Type
 
     Case .EMPTY  
 
     Case .EMPTY  
       MsgBox "Content: Empty"
+
       MsgBox "Inhoud: Leeg"
 
     Case .VALUE
 
     Case .VALUE
       MsgBox "Content: Value"
+
       MsgBox "Inhoud: Waarde"
 
     Case .TEXT
 
     Case .TEXT
       MsgBox "Content: Text"
+
       MsgBox "Inhoud: Tekst"
 
     Case .FORMULA
 
     Case .FORMULA
    MsgBox "Content: Formula"
+
      MsgBox "Inhoud: Formule"
 
   End Select
 
   End Select
 
End With
 
End With
 
</source>
 
</source>
Notice that the <tt>With</tt> construct must be entirely outside of the <tt>Select</tt> construct.
+
Merk op dat de constructie <tt>With</tt> geheel buiten de constructie <tt>Select</tt> moet staan.
  
 
{{InterWiki Languages BasicGuide|articletitle=Documentation/BASIC Guide/Other Instructions}}
 
{{InterWiki Languages BasicGuide|articletitle=Documentation/BASIC Guide/Other Instructions}}
 
{{PDL1}}
 
{{PDL1}}

Revision as of 13:25, 26 January 2013

Book.png

Type...End Type

Struct

Een struct is een geordende collectie van gegevensvelden, die kunnen worden bewerkt als één enkel item. Met andere woorden: u kunt aan een struct denken als aan een record, of gedeelte van een record.

De API gebruikt vaak vooraf gedefinieerde structs, maar dat zijn UNO structs, een zeer gespecialiseerd soort struct.

Definitie

Met de argumenten Type...End Type kunt u uw eigen (niet-UNO) structs definiëren:

Type aMenuItem			'toewijzen van de naam van het type
    'Definieer de gegevensvelden binnen de struct. Elke
    ' definitie ziet er uit als een argument Dim, zonder de "Dim".
    aCommand as String		
    aText as String
End Type			'sluit de definitie

Instantie

De definitie Type is slechts een patroon of sjabloon, geen verzameling van echte variabelen. Gebruik het argument Dim as New om een instance te maken van het type — echte variabelen die kunnen worden gelezen en opgeslagen —:

Dim maItem as New aMenuItem

Bereik

Zoals weergegeven in het voorbeeld hieronder kan de definitie Type aan het begin van een module worden geschreven (vóór de eerste Sub of Function). De definitie zal dan beschikbaar zijn voor alle routines in de module.

Vanaf OpenOffice.org versie 3.0 is er, anders dan met variabelen, geen manier om de definitie toegankelijke te maken buiten de module.

Een instantie van het nieuwe type is een variabele en volgt de gebruikelijke regels voor het bereik van variabelen (bekijk Bereik en levensduur van variabelen).

Een voorbeeld van het gebruiken van de definitie, en hoe naar de velden in een instantie te verwijzen, staat in het gedeelte over With...End With.

With...End With

Kwalificaties

In het algemeen kijkt BASIC niet in een container, zoals een Object, om te zien welke namen daar zouden kunnen zijn gedefinieerd. Als u een dergelijke naam wilt gebruiken, zult u BASIC moeten vertellen waar het moet kijken. U doet dat door de naam van het object te gebruiken als een kwalificatie. Schrijf het vóór de binnenste naam en scheidt ze met een punt:

MijnObject.EenNaam

Omdat containers ander containers zouden kunnen bevatten, zou u misschien meer dan één kwalificatie nodig hebben. Schrijf de kwalificaties in volgorde, van buiten naar binnen:

BuitensteObject.BinnensteObject.VerBinnenObject.EenNaam

Deze namen kunnen ook worden beschreven als "samengevoegd met de operator punt ('.')".

Het alternatief With

De door haakjes omsloten argumenten With...End With verschaffen een alternatief voor het, elke keer, uitschrijven van alle kwalificaties – en sommige van de kwalificaties in de API kunnen vrij lang zijn. U specificeert de kwalificaties in het argument With. Totdat BASIC het argument End With tegen komt, zoekt het naar gedeeltelijk-gekwalificeerde namen: namen die beginnen met een punt (unaire operator punt). De compiler gebruikt de kwalificaties uit de With alsof zij werden geschreven vóór de gedeeltelijk gekwalificeerde namen.

Voorbeeld 1: Een gebruikergedefinieerde Struct

Dit voorbeeld geeft weer hoe u een struct kunt definiëren en gebruiken, en hoe naar de items erin te verwijzen, zowel met als zonder With. In beide gevallen moeten de namen van de gegevensvelden (uit de definitie Type) worden gekwalificeerd door de naam van de instantie (uit het argument Dim).

Type aMenuItem
    aCommand as String
    aText as String
End Type
 
Sub Main
    'Maak een instantie van de gebruikergedefinieerde struct.
    ' Onthoud het sleutelwoord: "New".
    Dim maItem as New aMenuItem
    With maItem
        .aCommand = ".uno:Copy"
        .aText = "~Kopiëren"
    End With
 
    MsgBox     "Opdracht: " & maItem.aCommand & Chr(13) _
            & "Tekst: " & maItem.aText
End Sub

Voorbeeld 2: argument Case

In Cellen en bereiken zijn in het volgende voorbeeld de kwalificaties in de argumenten Case, voor de duidelijkheid, volledig uitgeschreven. U kunt het, op deze manier, eenvoudiger schrijven:

Dim Doc As Object
Dim Sheet As Object
Dim Cell As Object
 
Doc = ThisComponent
Sheet = Doc.Sheets(0)
Cell = Sheet.getCellByPosition(1,1)	'Cel "B2" (gebaseerd op 0!)
 
Cell.Value = 1000
 
With com.sun.star.table.CellContentType
  Select Case Cell.Type
    Case .EMPTY 
      MsgBox "Inhoud: Leeg"
    Case .VALUE
      MsgBox "Inhoud: Waarde"
    Case .TEXT
      MsgBox "Inhoud: Tekst"
    Case .FORMULA
      MsgBox "Inhoud: Formule"
  End Select
End With

Merk op dat de constructie With geheel buiten de constructie Select moet staan.


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