Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

[Access] Coördinaten muis .OnMouseDown

MichielPH
6 antwoorden
  • Hey,

    Ik ben in MS Access 2000 bezig met het ontwikkelen van een database. Met VBA genereer ik een formulier waar meerdere labels op staan. Ik stel bij elk label in dat .OnMouseDown '=ShowOrderInfo()' is.

    Als je op een label klikt wordt de functie uitgevoerd, dit gaat goed. Nu wil ik weten welke coördinaten de muis heeft. Als je er de standaard '[Gebeurtenisprocedure]' gebruikt, kan je bij het event MouseDown oa. de variabelen X en Y opvragen.

    Dit kan ik echter niet gebruiken, omdat er meerdere labels gemaakt worden en dus naar een specifike functie moet verwijzen. (Toch?) Hoe kom ik toch achter de oördinaten?

    Hoe moet ik dit oplossen?
    Bedankt!
  • Je kun toch ook elke label naar die specifieke functie laten verwijzen??
    Dan hoef je niet elke x de coordinaten te hebben
  • Ik wil juist de coördinaten hebben. Alle labels verwijzen nu naar '=ShowOrderInfo()', waardoor ik ze niet op kan vragen.
  • Wat ga je dan met die coordinaten doen? In een array opzoeken op welk label was geklikt? In dat geval kun je beter een parameter voor de functie maken en bij ieder label de labelnaam meegeven:

    Public Function ShowOrderInfo(labelnaam As String)
    Select Case labelnaam
    Case "label1"

    Case "label2"

    Case "label3"

    End Select
    End Function

    =ShowOrderInfo("label1")
    =ShowOrderInfo("label2")
    =ShowOrderInfo("label3")

    Coordinaten opvragen is denk ik wel achter te komen als ik zo de resultaten op google zie nav "access coordinates form"
  • Ben nog altijd bezig met die planning, dus het zullen altijd minimaal 40 orders zijn.

    Ik zoek met [i:9a779c2b1f]For Each Control[/i:9a779c2b1f] op welk label het is. De orders moeten verplaatst kunnen worden, dus wil ik dat de labels gesleept kunnen worden. Met [i:9a779c2b1f]_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)[/i:9a779c2b1f] gaat dit prima.
  • Als je onMouseDown een functie wil aanroepen, dan kan dat ook vanuit de gebeurtenisprocedure zelf. Dat hoeft dus niet per se via de expressie die je nu gebruikt. Ipv:
    =ShowOrderInfo()
    Gebruik je dan dus een procedure waarin je de X en Y meegeeft aan de functie:

    Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    ShowOrderInfo X, Y
    End Sub

    Public Function ShowOrderInfo(X As Single, Y As Single)

    End Function

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.