Action Event per Code aufrufen

  1. 4 days ago

    Hallo,
    ich habe einer Check Box ein Action Event mit Code hinzugefügt. Im Action Event rufe per Code eine Methode auf, die eine Berechnungen startet. Diesen Code rufe ich aber auch von einer anderen Stelle auf und lasse die Berechnung durchführen. Wenn ich, nach dem die Berechnung von anderer Stelle aufgerufen wurde, anschließend das Action Event der Check Box durch einen Mausklick aufrufe wird die Berechnung erneut gestartet, aber stimmt die sie nicht mehr. Ich möchte nun den Berechnungscode in das Action Event legen und zu jeder Berechnung, egal ob vom Programmcode oder durch das Action Event die Berechnung starten.

    Nun zu meiner eigentlichen Frage: Wie löse ich per Programmcode das Action Event (also eine Simulation eines Mausklicks) der Check Box aus?

    Ich hoffe, ich habe mich verständlich ausgedrückt. Und habt mit der Antwort bitte Rücksicht, da ich in Xojo noch blutiger Einsteiger bin.

  2. Martin T

    May 22 Testers Germany

    Hallo Arno,

    Du kannst eine eigene Methode anlegen und diese dann von beliebigen Stellen im Programm aufrufen. Beispiel:

    Private Function MeineAddition(a As Integer, b As Integer) As Integer
      Return a + b
    End Function
    
    Sub Window1.Open()
      Self.Title = MeineAddition(10, 5).ToString
    End Sub
    
    Sub PushButton1.Action()
      MessageBox(MeineAddition(10, 5).ToString)
    End Sub
  3. Hallo Martin,
    danke für deine Antwort.
    Ich habe eine Methode angelegt. Diese rufe ich einerseits über das Action Event der Check Box auf (per Mausklick) und andererseits durch eine Stelle im Programm.
    Solange ich die Methode über das Action Event aufrufe funktioniert alles, aber sobald die Methode auch von der anderen Stelle aufrufe kommt die Berechnung durcheinander.
    Ich möchte nun per Programmcode einen Mausklick auf die Check Box simulieren um zu schauen, ob dann die Berechnungen korrekt durchgeführt werden. Wie mache ich das?

  4. Wolfgang M

    May 22 Munich - Germany

    Eine Simulation des Mausklicks kannst Du mit folgendem Code auslösen:

    if MyCheckbox.Value then
    MyCheckbox.Value = false
    else
    MyCheckbox.Value = true
    end if
  5. Hallo,

    danke für deine Hilfe.

    Das würde aber dann auch bedeuten, dass wenn ich den Value-Wert der Checkbox aus einer Datenbank vergebe, dass dann das Action Event der Check Box automatisch ausgeführt wird. Oder?

  6. Beatrix W

    May 22 Testers, Third Party Store Europe (Germany)

    Ähem... der Code kann vereinfacht werden zu:

    myCheckbox.value = not myCheckbox.value

    Lege eine Property isUpdating as boolean an. Im Datenbank-Code machst Du:

    isUpdating = true
    'Datenbank-Code
    isUpdating = false

    Und in der Checkbox im Action-Event machst Du dann:

    if isUpdating then return
  7. Hallo
    Danke an alle.
    Mit dem Wissen, dass das Action Event der Check Box bei Zuweisung des Value-Wertes automatisch ausgeführt wird, konnte ich mein Problem lösen.
    Aber auch den Code von Beatrix werde ich bei Gelegenheit ausprobieren.

    Danke und bis demnächst. Es werden sicherlich noch ein paar Fragen kommen

  8. Wolfgang M

    May 22 Munich - Germany

    @Beatrix

    Ähem... der Code kann vereinfacht werden zu:

    myCheckbox.value = not myCheckbox.value

    Danke - das ist natürlich perfekt. So lerne ich hoffentlich auch logischer zu denken.

    @Arno
    Mit der Beschreibung von Beatrix kannst Du im Code selbst bestimmen, ob der Action Event ausgelöst werden soll oder nicht.

or Sign Up to reply!