Difference between revisions of "NL/Documentation/BASIC Guide/Events"
(4 intermediate revisions by 2 users not shown) | |||
Line 8: | Line 8: | ||
{{DISPLAYTITLE:Gebeurtenissen}} | {{DISPLAYTITLE:Gebeurtenissen}} | ||
__NOTOC__ | __NOTOC__ | ||
− | {{ | + | {{AOo}} dialoogvensters en formulieren zijn gebaseerd op een gebeurtenis georiënteerd programmeermodel waar u '''gebeurtenis-behandelaars''' kunt toewijzen aan de besturingselementen. Een gebeurtenis-behandelaar voert een voorgedefinieerde procedure uit als een bepaalde actie plaatsvindt, zelfs als die actie een andere gebeurtenis is. U kunt ook documenten of geopende gegevensbronnen bewerken met gebeurtenis-behandeling net als andere besturingselementen benaderen. |
− | {{ | + | {{AOo}} besturingselementen herkennen verschillende typen van gebeurtenissen die kunnen worden geactiveerd in verschillende situaties. Deze typen gebeurtenis kunnen worden verdeeld in vier groepen: |
* '''Gecontroleerd door muis''': Gebeurtenissen die reageren op acties van de muis (bijvoorbeeld, eenvoudige muis-bewegingen of een klik op een bepaalde locatie op het scherm). | * '''Gecontroleerd door muis''': Gebeurtenissen die reageren op acties van de muis (bijvoorbeeld, eenvoudige muis-bewegingen of een klik op een bepaalde locatie op het scherm). | ||
* '''Gecontroleerd door toetsenbord''': Gebeurtenissen die worden geactiveerd door bepaalde toets-aanslagen. | * '''Gecontroleerd door toetsenbord''': Gebeurtenissen die worden geactiveerd door bepaalde toets-aanslagen. | ||
− | * '''Aanpassingen van de focus''': Gebeurtenissen die {{ | + | * '''Aanpassingen van de focus''': Gebeurtenissen die {{AOo}} uitvoert als besturingselementen worden geactiveerd of gedeactiveerd. |
* '''Specifieke gebeurtenissen voor besturingselementen''': Gebeurtenissen die alleen gebeuren in relatie met bepaalde besturingselementen. | * '''Specifieke gebeurtenissen voor besturingselementen''': Gebeurtenissen die alleen gebeuren in relatie met bepaalde besturingselementen. | ||
Als u werkt met gebeurtenissen, verzeker u er dan van dat u het bijbehorend dialoogvenster maakt in de ontwikkelomgeving van {{OOo}} en dat het de vereiste besturingselementen of documenten (als u de gebeurtenissen wilt toepassen op een formulier) bevat. | Als u werkt met gebeurtenissen, verzeker u er dan van dat u het bijbehorend dialoogvenster maakt in de ontwikkelomgeving van {{OOo}} en dat het de vereiste besturingselementen of documenten (als u de gebeurtenissen wilt toepassen op een formulier) bevat. | ||
− | [[Image:Documentation_basicguide_dlg_03.gif|none|thumb|500px|De | + | [[Image:Documentation_basicguide_dlg_03.gif|none|thumb|500px|De {{AOo}} BASIC ontwikkelomgeving (IDE)]] |
− | De bovenstaande afbeelding toont de {{ | + | De bovenstaande afbeelding toont de {{AOo}} BASIC ontwikkelomgeving met een dialoogvenster dat twee keuzelijsten bevat. U kunt de gegevens vanuit de ene lijst naar de andere verplaatsen met behulp van de knoppen tussen de twee keuzelijsten. |
− | Als u het ontwerp op het scherm wilt weergeven, dan zou u de geassocieerde procedures voor {{ | + | Als u het ontwerp op het scherm wilt weergeven, dan zou u de geassocieerde procedures voor {{AOo}} BASIC moeten maken zodat die kunnen worden aangeroepen door de gebeurtenisbehandelaars. Hoewel u deze procedures in elke module kunt gebruiken, is het beter hun gebruik tot twee modules te beperken. Om uw code makkelijker te kunnen lezen, zou u betekenisvolle namen moeten geven aan deze procedures. Direct springend naar een algemene programmaprocedure vanuit een macro kan onduidelijke code opleveren. In plaats daarvan, om onderhoud van de code en probleemoplossing te vereenvoudigen, zou u een andere procedure moeten maken om te dienen als startpunt voor gebeurtenisbehandeling – zelfs als het alleen maar één enkele aanroep naar de doelprocedure uitvoert. |
− | De code in het volgende voorbeeld verplaatst een invoer vanuit de linker naar de | + | De code in het volgende voorbeeld verplaatst een invoer vanuit de linker- naar de rechterlijst van een dialoogvenster. |
− | < | + | <syntaxhighlight lang="oobas"> |
Sub cmdSelecteren_Initiated | Sub cmdSelecteren_Initiated | ||
Line 44: | Line 44: | ||
End Sub | End Sub | ||
− | </ | + | </syntaxhighlight> |
− | Als deze procedure werd gemaakt in {{ | + | Als deze procedure werd gemaakt in {{AOo}} BASIC kunt u die toewijzen aan een vereiste gebeurtenis met behulp van het venster voor de eigenschappen van de editor voor dialoogvensters. |
− | [[Image:documentation_basicguide_dlg_02.gif|none|thumb|400px|Het dialoogvenster | + | [[Image:documentation_basicguide_dlg_02.gif|none|thumb|400px|Het dialoogvenster Actie toewijzen]] |
Het dialoogvenster voor toewijzing somt alle beschikbare gebeurtenissen op. Om een macro toe te wijzen aan een gebeurtenis: | Het dialoogvenster voor toewijzing somt alle beschikbare gebeurtenissen op. Om een macro toe te wijzen aan een gebeurtenis: | ||
Line 60: | Line 60: | ||
Het plaatsvinden van een bepaalde gebeurtenis is niet altijd genoeg voor een gewenste reactie. Aanvullende informatie kan nodig zijn. Bijvoorbeeld: u zou mogelijk de positie op het scherm waar op de muis werd gedrukt nodig kunnen hebben om een muisklik te verwerken. | Het plaatsvinden van een bepaalde gebeurtenis is niet altijd genoeg voor een gewenste reactie. Aanvullende informatie kan nodig zijn. Bijvoorbeeld: u zou mogelijk de positie op het scherm waar op de muis werd gedrukt nodig kunnen hebben om een muisklik te verwerken. | ||
− | In {{ | + | In {{AOo}} BASIC kunt u parameters voor objecten gebruiken om meer informatie aan een procedure te verschaffen over een gebeurtenis, bijvoorbeeld: |
− | < | + | <syntaxhighlight lang="oobas"> |
Sub GebeurtenisVerwerken(Event As Object) | Sub GebeurtenisVerwerken(Event As Object) | ||
End Sub | End Sub | ||
− | </ | + | </syntaxhighlight> |
De structuur en eigenschappen van het object <tt>Event</tt> zijn afhankelijk van het type gebeurtenis dat de aanroep van de procedure activeert. | De structuur en eigenschappen van het object <tt>Event</tt> zijn afhankelijk van het type gebeurtenis dat de aanroep van de procedure activeert. | ||
Line 76: | Line 76: | ||
== Gebeurtenissen voor de muis == | == Gebeurtenissen voor de muis == | ||
− | {{ | + | {{AOo}} BASIC herkent de volgende gebeurtenissen voor de muis: |
;<tt>Muis verplaatst</tt>:gebruiker verplaatst de muis | ;<tt>Muis verplaatst</tt>:gebruiker verplaatst de muis | ||
;<tt>Muis verplaatst met ingedrukte toets</tt>:gebruiker sleept muis met ingedrukte toets | ;<tt>Muis verplaatst met ingedrukte toets</tt>:gebruiker sleept muis met ingedrukte toets | ||
;<tt>Muisknop ingedrukt</tt>:gebruiker drukt op een muisknop | ;<tt>Muisknop ingedrukt</tt>:gebruiker drukt op een muisknop | ||
− | {{ | + | {{Note|Deze gebeurtenis wordt ook gebruikt voor het weergeven van een verzoek in een pop-up contextmenu op het besturingselement. In dat geval zal het lid <tt>PopupTrigger</tt> van de gebeurtenis dat aan uw macrofunctie wordt doorgegeven <tt>TRUE</tt> zijn. In het bijzonder, als zo'n verzoek wordt gedaan door te drukken op de rechter muisknop van het besturingselement, zal de gebeurtenis twee keer wordne geactiveerd: eenmaal voor het verzoek in de pop-up en eenmaal voor de echte gebeurtenis van de muis. Als u alleen geïnteresseerd bent in de klik met de muisklik zou uw macro alle aanroepen met <tt>PopupTrigger</tt> is <tt>TRUE</tt> moeten negeren.}} |
;<tt>Muisknop losgelaten</tt>:gebruiker laat ingedrukte muisknop los | ;<tt>Muisknop losgelaten</tt>:gebruiker laat ingedrukte muisknop los | ||
;<tt>Muis buiten</tt>:gebruiker verplaatst muis buiten het huidige venster | ;<tt>Muis buiten</tt>:gebruiker verplaatst muis buiten het huidige venster | ||
Line 94: | Line 94: | ||
De constanten gedefinieerd in <idl>com.sun.star.awt.MouseButton</idl> voor de muisknoppen zijn: | De constanten gedefinieerd in <idl>com.sun.star.awt.MouseButton</idl> voor de muisknoppen zijn: | ||
− | ;<tt>LEFT</tt>: | + | ;<tt>LEFT</tt>:linkermuisknop |
− | ;<tt>RIGHT</tt>: | + | ;<tt>RIGHT</tt>:rechtermuisknop |
;<tt>MIDDLE</tt>:middelste muisknop | ;<tt>MIDDLE</tt>:middelste muisknop | ||
Het volgende voorbeeld geeft zowel de muispositie als de ingedrukte muisknop weer: | Het volgende voorbeeld geeft zowel de muispositie als de ingedrukte muisknop weer: | ||
− | < | + | <syntaxhighlight lang="oobas"> |
Sub MuisOmhoog(Gebeurtenis As Object) | Sub MuisOmhoog(Gebeurtenis As Object) | ||
Line 123: | Line 123: | ||
End Sub | End Sub | ||
− | </ | + | </syntaxhighlight> |
− | {{Documentation/VBAnote|De gebeurtenissen <tt>Click</tt> en <tt>Doubleclick</tt> in VBA zijn niet beschikbaar {{OOo}} BASIC. Gebruik in plaats daarvan de gebeurtenis <tt>MouseUp</tt> van {{ | + | {{Documentation/VBAnote|De gebeurtenissen <tt>Click</tt> en <tt>Doubleclick</tt> in VBA zijn niet beschikbaar {{OOo}} BASIC. Gebruik in plaats daarvan de gebeurtenis <tt>MouseUp</tt> van {{AOo}} BASIC de gebeurtenis <tt>click</tt> en imiteer de gebeurtenis <tt>Doubleclick</tt> door de logica van de toepassing te wijzigen.}} |
== Gebeurtenissen voor het toetsenbord == | == Gebeurtenissen voor het toetsenbord == | ||
− | De volgende gebeurtenissen voor het toetsenbord zijn beschikbaar in {{ | + | De volgende gebeurtenissen voor het toetsenbord zijn beschikbaar in {{AOo}} BASIC: |
;<tt>Toets ingedrukt</tt>:gebruiker drukt een toets in. | ;<tt>Toets ingedrukt</tt>:gebruiker drukt een toets in. | ||
;<tt>Toets losgelaten</tt>:gebruiker laat toets los | ;<tt>Toets losgelaten</tt>:gebruiker laat toets los | ||
− | Beide gebeurtenissen hebben betrekking op de logische acties met toetsen en niet op de fysieke acties. Als de gebruiker verschillende toetsen indrukt om één enkel teken te maken (bijvoorbeeld om een accent aan een teken toe te voegen), dan maakt {{ | + | Beide gebeurtenissen hebben betrekking op de logische acties met toetsen en niet op de fysieke acties. Als de gebruiker verschillende toetsen indrukt om één enkel teken te maken (bijvoorbeeld om een accent aan een teken toe te voegen), dan maakt {{AOo}} BASIC slechts één gebeurtenis. |
Eén enkele actie met een toets op een toets voor besturing, zoals de Shifttoets of de Alttoets maakt niet een onafhankelijke gebeurtenis. | Eén enkele actie met een toets op een toets voor besturing, zoals de Shifttoets of de Alttoets maakt niet een onafhankelijke gebeurtenis. | ||
− | Informatie over de ingedrukte toets wordt verschaft door het object van de gebeurtenis dat {{ | + | Informatie over de ingedrukte toets wordt verschaft door het object van de gebeurtenis dat {{AOo}} BASIC levert aan de procedure voor gebeurtenisbehandeling. Het bevat de volgende eigenschappen: |
;<tt>KeyCode (short)</tt>:code van de ingedrukte toets (standaardwaarden overeenkomend met <idl>com.sun.star.awt.Key</idl>) | ;<tt>KeyCode (short)</tt>:code van de ingedrukte toets (standaardwaarden overeenkomend met <idl>com.sun.star.awt.Key</idl>) | ||
Line 145: | Line 145: | ||
Het volgende voorbeeld gebruikt de eigenschap <tt>KeyCode</tt> om vast te stellen of de Entertoets, de Tabtoets, of één van de andere toetsen voor besturing werd ingedrukt. Als één van deze toetsen werd ingedrukt, wordt de naam van de toets weergegeven, anders wordt het teken dat werd ingedrukt weergegeven: | Het volgende voorbeeld gebruikt de eigenschap <tt>KeyCode</tt> om vast te stellen of de Entertoets, de Tabtoets, of één van de andere toetsen voor besturing werd ingedrukt. Als één van deze toetsen werd ingedrukt, wordt de naam van de toets weergegeven, anders wordt het teken dat werd ingedrukt weergegeven: | ||
− | < | + | <syntaxhighlight lang="oobas"> |
Sub ToetsIngedrukt(Gebeurtenis As Object) | Sub ToetsIngedrukt(Gebeurtenis As Object) | ||
Line 173: | Line 173: | ||
End Sub | End Sub | ||
− | </ | + | </syntaxhighlight> |
Informatie over andere constanten voor het toetsenbord kan worden gevonden in de API verwijzing onder de groep van constanten <idl>com.sun.star.awt.Key</idl>. | Informatie over andere constanten voor het toetsenbord kan worden gevonden in de API verwijzing onder de groep van constanten <idl>com.sun.star.awt.Key</idl>. | ||
Line 187: | Line 187: | ||
De objecten <tt>Event</tt> voor de gebeurtenissen voor de focus zijn als volgt gestructureerd: | De objecten <tt>Event</tt> voor de gebeurtenissen voor de focus zijn als volgt gestructureerd: | ||
− | ;<tt>FocusFlags (short)</tt>: | + | ;<tt>FocusFlags (short)</tt>:oorzaak van de verandering van de focus (waarden overeenkomend met <idl>com.sun.star.awt.FocusChangeReason</idl> ) |
− | ;<tt>NextFocus (Object)</tt>:object | + | ;<tt>NextFocus (Object)</tt>:object dat de focus ontvangt (alleen voor de gebeurtenis <tt>Bij focusverlies</tt>) |
− | ;<tt>Temporary (Boolean)</tt>: | + | ;<tt>Temporary (Boolean)</tt>:de focus is tijdelijk verloren gegaan |
− | == | + | == Besturingselement-specifieke gebeurtenissen == |
− | In | + | In aanvulling op de voorgaande gebeurtenissen, welke worden ondersteunt door alle besturingselementen, zijn er ook enkele besturingselement-specifieke gebeurtenissen die alleen zijn gedefinieerd voor bepaalde besturingselementen. De meest belangrijke van die gebeurtenissen zijn: |
− | ;<tt> | + | ;<tt>Item gewijzigd</tt>:de waarde van een besturingselement wijzigt |
− | ;<tt> | + | ;<tt>Status gewijzigd</tt>:de status van een besturingselement wijzigt |
− | ;<tt> | + | ;<tt>Tekst gewijzigd</tt>:de tekst van een besturingselement wijzigt |
− | ;<tt> | + | ;<tt>Actie uitvoeren</tt>:een actie die kan wordne uitgevoerd als het besturingselement wordt geactiveerd (bijvoorbeeld een knop die wordt ingedrukt) |
− | + | Let er bij het werken met gebeurtenissen op dat sommige gebeurtenissen, zoals de gebeurtenis <tt>Actie uitvoeren</tt>, elke keer kan worden geactiveerd als u met de muis klikt op sommige besturingselementen (bijvoorbeeld op radioknoppen). Geen actie wordt uitgevoerd om te controleren of de status van het besturingselement daadwerkelijk is veranderd. Bewaar de oude waarde van het besturingselement in een globale variabele en controleer die dan, om te zien of de waarde is veranderd, als een gebeurtenis wordt uitgevoerd, om zulke “blinde gebeurtenissen” te vermijden. | |
− | + | De gebeurtenis <tt>Actie uitvoeren</tt> is ook om de volgende redenen vermeldenswaard: | |
− | * | + | *Deze gebeurtenis wordt geactiveerd ofwel door het indrukken van een toets of een muisknop. Dus verschaft het een consistente interface voor gebruikers die navigeren met de muis of met het toetsenbord. |
− | * | + | *Wanneer de eigenschap <tt>Repeat</tt> van een drukknop is ingesteld op <tt>True</tt>, is deze gebeurtenis die welke elke keer wordt verzonden, net zolang als de actie die hem activeerde (toets ingedrukt of muisknop ingedrukt) gehandhaafd blijft. |
− | + | De eigenschappen voor de gebeurtenis <tt>Status gewijzigd</tt> zijn: | |
− | ;<tt>Selected (long)</tt>: | + | ;<tt>Selected (long)</tt>:momenteel geselecteerd item |
− | ;<tt>Highlighted (long)</tt>: | + | ;<tt>Highlighted (long)</tt>:momenteel geaccentueerd item |
− | ;<tt>ItemId (long)</tt>:ID | + | ;<tt>ItemId (long)</tt>:ID van het item |
{{InterWiki Languages BasicGuide|articletitle=Documentation/BASIC Guide/Events}} | {{InterWiki Languages BasicGuide|articletitle=Documentation/BASIC Guide/Events}} | ||
{{PDL1}} | {{PDL1}} |
Latest revision as of 14:54, 10 February 2021
Apache OpenOffice dialoogvensters en formulieren zijn gebaseerd op een gebeurtenis georiënteerd programmeermodel waar u gebeurtenis-behandelaars kunt toewijzen aan de besturingselementen. Een gebeurtenis-behandelaar voert een voorgedefinieerde procedure uit als een bepaalde actie plaatsvindt, zelfs als die actie een andere gebeurtenis is. U kunt ook documenten of geopende gegevensbronnen bewerken met gebeurtenis-behandeling net als andere besturingselementen benaderen.
Apache OpenOffice besturingselementen herkennen verschillende typen van gebeurtenissen die kunnen worden geactiveerd in verschillende situaties. Deze typen gebeurtenis kunnen worden verdeeld in vier groepen:
- Gecontroleerd door muis: Gebeurtenissen die reageren op acties van de muis (bijvoorbeeld, eenvoudige muis-bewegingen of een klik op een bepaalde locatie op het scherm).
- Gecontroleerd door toetsenbord: Gebeurtenissen die worden geactiveerd door bepaalde toets-aanslagen.
- Aanpassingen van de focus: Gebeurtenissen die Apache OpenOffice uitvoert als besturingselementen worden geactiveerd of gedeactiveerd.
- Specifieke gebeurtenissen voor besturingselementen: Gebeurtenissen die alleen gebeuren in relatie met bepaalde besturingselementen.
Als u werkt met gebeurtenissen, verzeker u er dan van dat u het bijbehorend dialoogvenster maakt in de ontwikkelomgeving van Apache OpenOffice en dat het de vereiste besturingselementen of documenten (als u de gebeurtenissen wilt toepassen op een formulier) bevat.
De bovenstaande afbeelding toont de Apache OpenOffice BASIC ontwikkelomgeving met een dialoogvenster dat twee keuzelijsten bevat. U kunt de gegevens vanuit de ene lijst naar de andere verplaatsen met behulp van de knoppen tussen de twee keuzelijsten.
Als u het ontwerp op het scherm wilt weergeven, dan zou u de geassocieerde procedures voor Apache OpenOffice BASIC moeten maken zodat die kunnen worden aangeroepen door de gebeurtenisbehandelaars. Hoewel u deze procedures in elke module kunt gebruiken, is het beter hun gebruik tot twee modules te beperken. Om uw code makkelijker te kunnen lezen, zou u betekenisvolle namen moeten geven aan deze procedures. Direct springend naar een algemene programmaprocedure vanuit een macro kan onduidelijke code opleveren. In plaats daarvan, om onderhoud van de code en probleemoplossing te vereenvoudigen, zou u een andere procedure moeten maken om te dienen als startpunt voor gebeurtenisbehandeling – zelfs als het alleen maar één enkele aanroep naar de doelprocedure uitvoert.
De code in het volgende voorbeeld verplaatst een invoer vanuit de linker- naar de rechterlijst van een dialoogvenster.
Sub cmdSelecteren_Initiated Dim lstItems As Object Dim lstSelectie As Object lstItems = Dlg.getControl("lstItems") lstSelectie = Dlg.getControl("lstSelectie") If lstItems.SelectedItem > 0 Then lstSelectie.AddItem(lstItems.SelectedItem, 0) lstItems.removeItems(lstItems.SelectItemPos, 1) Else Beep End If End Sub
Als deze procedure werd gemaakt in Apache OpenOffice BASIC kunt u die toewijzen aan een vereiste gebeurtenis met behulp van het venster voor de eigenschappen van de editor voor dialoogvensters.
Het dialoogvenster voor toewijzing somt alle beschikbare gebeurtenissen op. Om een macro toe te wijzen aan een gebeurtenis:
- Selecteer de gebeurtenis
- Klik op Macro...
- Blader naar en selecteer de macro die u wilt toewijzen
- Klik op OK
Parameters
Het plaatsvinden van een bepaalde gebeurtenis is niet altijd genoeg voor een gewenste reactie. Aanvullende informatie kan nodig zijn. Bijvoorbeeld: u zou mogelijk de positie op het scherm waar op de muis werd gedrukt nodig kunnen hebben om een muisklik te verwerken.
In Apache OpenOffice BASIC kunt u parameters voor objecten gebruiken om meer informatie aan een procedure te verschaffen over een gebeurtenis, bijvoorbeeld:
Sub GebeurtenisVerwerken(Event As Object) End Sub
De structuur en eigenschappen van het object Event zijn afhankelijk van het type gebeurtenis dat de aanroep van de procedure activeert.
Ongeacht het type gebeurtenis, verschaffen alle objecten toegang tot het relevante besturingselement en diens model. Het besturingselement kan worden benaderd met behulp van Event.Source en het model ervan met behulp van Event.Source.Model. Het dialoogvenster kan worden benaderd met behulp van Event.Source.Context.
U kunt deze eigenschappen gebruiken om een gebeurtenis te activeren binnen een gebeurtenisbehandelaar.
Gebeurtenissen voor de muis
Apache OpenOffice BASIC herkent de volgende gebeurtenissen voor de muis:
- Muis verplaatst
- gebruiker verplaatst de muis
- Muis verplaatst met ingedrukte toets
- gebruiker sleept muis met ingedrukte toets
- Muisknop ingedrukt
- gebruiker drukt op een muisknop
- Muisknop losgelaten
- gebruiker laat ingedrukte muisknop los
- Muis buiten
- gebruiker verplaatst muis buiten het huidige venster
De structuur van de geassocieerde gebeurtenis-objecten wordt gedefinieerd in de structuur com.sun.star.awt.MouseEvent die de volgende informatie verschaft:
- Buttons (short)
- knop ingedrukt (één of meer constanten overeenkomend met com.sun.star.awt.MouseButton)
- X (long)
- X-coördinaat van de muis, gemeten in pixels vanaf de linker bovenzijde van het besturingselement
- Y (long)
- Y-coördinaat van de muis, gemeten in pixels vanaf de linker bovenzijde van het besturingselement
- ClickCount (long)
- aantal klikken geassocieerd met de gebeurtenis van de muis (als Apache OpenOffice snel genoeg kan reageren is ClickCount ook 1 voor een dubbelklik omdat slechts een individuele gebeurtenis wordt geactiveerd)
De constanten gedefinieerd in com.sun.star.awt.MouseButton voor de muisknoppen zijn:
- LEFT
- linkermuisknop
- RIGHT
- rechtermuisknop
- MIDDLE
- middelste muisknop
Het volgende voorbeeld geeft zowel de muispositie als de ingedrukte muisknop weer:
Sub MuisOmhoog(Gebeurtenis As Object) Dim Msg As String Msg = "Toetsen: " If Gebeurtenis.Buttons AND com.sun.star.awt.MouseButton.LEFT Then Msg = Msg & "LINKS " End If If Gebeurtenis.Buttons AND com.sun.star.awt.MouseButton.RIGHT Then Msg = Msg & "RECHTS " End If If Gebeurtenis.Buttons AND com.sun.star.awt.MouseButton.MIDDLE Then Msg = Msg & "MIDDELSTE " End If Msg = Msg & Chr(13) & "Positie: " Msg = Msg & Gebeurtenis.X & "/" & Gebeurtenis.Y MsgBox Msg End Sub
Gebeurtenissen voor het toetsenbord
De volgende gebeurtenissen voor het toetsenbord zijn beschikbaar in Apache OpenOffice BASIC:
- Toets ingedrukt
- gebruiker drukt een toets in.
- Toets losgelaten
- gebruiker laat toets los
Beide gebeurtenissen hebben betrekking op de logische acties met toetsen en niet op de fysieke acties. Als de gebruiker verschillende toetsen indrukt om één enkel teken te maken (bijvoorbeeld om een accent aan een teken toe te voegen), dan maakt Apache OpenOffice BASIC slechts één gebeurtenis.
Eén enkele actie met een toets op een toets voor besturing, zoals de Shifttoets of de Alttoets maakt niet een onafhankelijke gebeurtenis.
Informatie over de ingedrukte toets wordt verschaft door het object van de gebeurtenis dat Apache OpenOffice BASIC levert aan de procedure voor gebeurtenisbehandeling. Het bevat de volgende eigenschappen:
- KeyCode (short)
- code van de ingedrukte toets (standaardwaarden overeenkomend met com.sun.star.awt.Key)
- KeyChar (String)
- teken dat is ingevoerd (rekening houdend met de toetsen voor besturing)
Het volgende voorbeeld gebruikt de eigenschap KeyCode om vast te stellen of de Entertoets, de Tabtoets, of één van de andere toetsen voor besturing werd ingedrukt. Als één van deze toetsen werd ingedrukt, wordt de naam van de toets weergegeven, anders wordt het teken dat werd ingedrukt weergegeven:
Sub ToetsIngedrukt(Gebeurtenis As Object) Dim Msg As String Select Case Event.KeyCode Case com.sun.star.awt.Key.RETURN Msg = "Return ingedrukt" Case com.sun.star.awt.Key.TAB Msg = "Tab ingedrukt" Case com.sun.star.awt.Key.DELETE Msg = "Delete ingedrukt" Case com.sun.star.awt.Key.ESCAPE Msg = "Escape ingedrukt" Case com.sun.star.awt.Key.DOWN Msg = "Pijl naar beneden ingedrukt" Case com.sun.star.awt.Key.UP Msg = "Pijl naar boven ingedrukt" Case com.sun.star.awt.Key.LEFT Msg = "Pijl naar links ingedrukt" Case com.sun.star.awt.Key.RIGHT Msg = "Pijl naar rechts ingedrukt" Case Else Msg = "Teken " & Gebeurtenis.KeyChar & " ingevoerd" End Select MsgBox Msg End Sub
Informatie over andere constanten voor het toetsenbord kan worden gevonden in de API verwijzing onder de groep van constanten com.sun.star.awt.Key.
Gebeurtenissen voor de focus
Gebeurtenissen voor de focus geven aan of een besturingselement de focus ontvangt of verliest. U kunt deze gebeurtenissen, bijvoorbeeld, gebruiken om te bepalen of een gebruiker gereed is met het afwerken van een besturingselement zodat u andere elementen van een dialoogvenster kunt bijwerken. De volgende gebeurtenissen voor de focus zijn beschikbaar:
- Bij ontvangen focus
- element ontvangt de focus
- Bij focusverlies
- element verliest de focus
De objecten Event voor de gebeurtenissen voor de focus zijn als volgt gestructureerd:
- FocusFlags (short)
- oorzaak van de verandering van de focus (waarden overeenkomend met com.sun.star.awt.FocusChangeReason )
- NextFocus (Object)
- object dat de focus ontvangt (alleen voor de gebeurtenis Bij focusverlies)
- Temporary (Boolean)
- de focus is tijdelijk verloren gegaan
Besturingselement-specifieke gebeurtenissen
In aanvulling op de voorgaande gebeurtenissen, welke worden ondersteunt door alle besturingselementen, zijn er ook enkele besturingselement-specifieke gebeurtenissen die alleen zijn gedefinieerd voor bepaalde besturingselementen. De meest belangrijke van die gebeurtenissen zijn:
- Item gewijzigd
- de waarde van een besturingselement wijzigt
- Status gewijzigd
- de status van een besturingselement wijzigt
- Tekst gewijzigd
- de tekst van een besturingselement wijzigt
- Actie uitvoeren
- een actie die kan wordne uitgevoerd als het besturingselement wordt geactiveerd (bijvoorbeeld een knop die wordt ingedrukt)
Let er bij het werken met gebeurtenissen op dat sommige gebeurtenissen, zoals de gebeurtenis Actie uitvoeren, elke keer kan worden geactiveerd als u met de muis klikt op sommige besturingselementen (bijvoorbeeld op radioknoppen). Geen actie wordt uitgevoerd om te controleren of de status van het besturingselement daadwerkelijk is veranderd. Bewaar de oude waarde van het besturingselement in een globale variabele en controleer die dan, om te zien of de waarde is veranderd, als een gebeurtenis wordt uitgevoerd, om zulke “blinde gebeurtenissen” te vermijden.
De gebeurtenis Actie uitvoeren is ook om de volgende redenen vermeldenswaard:
- Deze gebeurtenis wordt geactiveerd ofwel door het indrukken van een toets of een muisknop. Dus verschaft het een consistente interface voor gebruikers die navigeren met de muis of met het toetsenbord.
- Wanneer de eigenschap Repeat van een drukknop is ingesteld op True, is deze gebeurtenis die welke elke keer wordt verzonden, net zolang als de actie die hem activeerde (toets ingedrukt of muisknop ingedrukt) gehandhaafd blijft.
De eigenschappen voor de gebeurtenis Status gewijzigd zijn:
- Selected (long)
- momenteel geselecteerd item
- Highlighted (long)
- momenteel geaccentueerd item
- ItemId (long)
- ID van het item
Content on this page is licensed under the Public Documentation License (PDL). |