ist es möglich ein "Click"-Event einer List Box manuell auszulösen damit der im "Ereignisse"-Register eingestellte Handler ausgeführt wird?
Event auslösen
Moderator: Moderatoren
Event auslösen
Hallo,
ist es möglich ein "Click"-Event einer List Box manuell auszulösen damit der im "Ereignisse"-Register eingestellte Handler ausgeführt wird?
ist es möglich ein "Click"-Event einer List Box manuell auszulösen damit der im "Ereignisse"-Register eingestellte Handler ausgeführt wird?
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Event auslösen
Ja: klicke mit der Maus in die Listbox.lastraven hat geschrieben:ist es möglich ein "Click"-Event einer List Box manuell auszulösen
Hast Du das gemeint?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Event auslösen
Vielleicht habe ich mich nicht genau/falsch ausgedrückt.Ja: klicke mit der Maus in die Listbox.
Mit "manuell Event auslösen" meinte ich, dies mit Hilfe von Basic zu machen. Dies soll nicht nur beim Klicken auf die ListBox geschehen, sondern auch unter anderen Bedingungen:
Ich habe ein Event für eine Zelle erstellt. Sobald Veränderungen an dieser Zelle vorgenommen werden, soll der Handler dieser Zelle ein
Click-Event der ListBox auslösen. (ich weiß, eigentlich ist es automatisiertes Auslösen eines Events)
Dieses Auslösen des Click-Events der ListBox (über OOo Basic) ist mein derzeitiges Problem.
Re: Event auslösen
und wozu soll das gut sein? Für mich ist nicht erkennbar warum Du nicht an dieser Stelle gleich den Event auslöst der dem Click-Event der Listbox zugeordnet ist, zumal das garantiert nur eine Code-Zeile ist (der Eintrag des Sub des Click-Events der box) wohingegen Deine Forderung u.U. mehrere Code-Zeilen erfordert.Ich habe ein Event für eine Zelle erstellt. Sobald Veränderungen an dieser Zelle vorgenommen werden, soll der Handler dieser Zelle ein
Click-Event der ListBox auslösen.
Der Effekt wäre meines ERachtens exakt derselbe - aber vielleicht übersehe ich was.
Eine Deiner genauen Nachfrage entsprechende Lösung kann ich Dir aktuell nicht nennen.
Gruß
Stephan
Re: Event auslösen
Zur Erklärung:und wozu soll das gut sein?
In meinem Beispiel spielen 2 Zellen(<<Zelle A>> und <<Zelle B>>) und eine ListBox eine Rolle.
Je nach Auswahl einer Option in der ListBox wird duch den Click-Event der ListBox das Ergebnis einer
Berechnung(in der der Wert der <<Zelle A>> einbezogen wird) in die <<Zelle B>> geschrieben.
Wird jetzt nun der Wert der <<Zelle A>> verändert, muss die Berechnung erneut ausgeführt werden. Dies passiert aber nicht automatisiert.
Ich muss erst wieder einen Eintrag aus der ListBox wählen (damit das Click-Event ausgelöst wird) um das Ergebnis der <<Zelle B>> neu zu berechnen.
Ich möchte bei einer Veränderung der <<Zelle A>> ein Click-Event der ListBox auslösen, damit der Handler der ListBox ausgeführt wird und somit die Berechnung für die <<Zelle B>> erneut durchführt wird.
Ich hoffe ich konnte es verständlich erläutern.
Re: Event auslösen
Nein, das konntest Du nicht, denn Du hast Dich inhaltlich nur wiederholt.Ich hoffe ich konnte es verständlich erläutern.
Und wozu DIESER Weg?Ich möchte bei einer Veränderung der <<Zelle A>> ein Click-Event der ListBox auslösen, damit der Handler der ListBox ausgeführt wird und somit die Berechnung für die <<Zelle B>> erneut durchführt wird.
WArum führst Du nicht den 'Handler' der Listbox direkt aus? Mir jedenfalls ist zunächst kein Grund bekannt warum statt:
1. Zelle A1 verändert sich
2. Veränderung der Zelle A1 bewirkt Auslösen des Click-Ereignisses der Listbox
3. weil das KLickeeignis ausgelöst wurde läuft nun das dazugehörige Makro ab
nicht der direkte Weg:
1. Zelle A1 verändert sich
2. Veränderung der Zelle A1 bewirkt Ausführung des gleichen Makros, welches auch durch den Click-Event der Listbox ausgelöst wird
verwendet werden könnte.
Gruß
Stephan
Re: Event auslösen
in dem Makro, verwende ich das Even-Objekt.WArum führst Du nicht den 'Handler' der Listbox direkt aus? Mir jedenfalls ist zunächst kein Grund bekannt warum statt:
Code: Alles auswählen
function meineFunktion(event as Object)Code: Alles auswählen
listBox = event.SourceWürde ich dieselbe Funktion über den Handler einer Zelle(<<Zelle A>>) ausführen, dann würde das Event-Objekt nicht mehr die ListBox sondern die Zelle beinhalten (da diese das Event ausgelöst hat).
Natürlich könnte ich auch meine Funktion anpassen, aber dieser Aufwand schien mir höher zu sein (ich konnte nicht rausfinden wie ich z.B. direkt auf die Eigenschaft SelectedItemPos der ListBox zugreife)
Deshalb wollte ich einfach nur wissen, ob man ein Click-Event einer ListBox per Makro auslösen kann. Ich denke es wäre auch nicht viel Quelltext um auf deine Begündung zurückzukommen.
Re: Event auslösen
Das heißt es sind mehrere Listboxen vorhanden, denn sonst verstehe ich die notwendigkeit des ganzen nicht, da man ja den Code dem entsprechenden EReignis der konkreten Listbox direkt zuweisen könnte.in dem Makro, verwende ich das Even-Objekt.
Bist Du denn sicher das diese Eigenschaft existiert? Meines Erachtens existiert nur die Methode .getSelectedItemsPos, welche wie folgt nutzbar sein sollte:ich konnte nicht rausfinden wie ich z.B. direkt auf die Eigenschaft SelectedItemPos der ListBox zugreife
Code: Alles auswählen
listBox = event.Source
PositionDesEintrags = listBox.getSelectedItemsPosDa kann ich dann leider nur nochmals sagen das ich keine entsprechende Lösung kenne. (was nicht sagen soll es gäbe keine sondern nur heißt das ich keine weiß)Deshalb wollte ich einfach nur wissen, ob man ein Click-Event einer ListBox per Makro auslösen kann. Ich denke es wäre auch nicht viel Quelltext um auf deine Begündung zurückzukommen.
Gruß
Stephan
Re: Event auslösen
Ja, bei mir sind es insgesamt 7 ListBoxen die alle denselben Handler nutzen.Das heißt es sind mehrere Listboxen vorhanden
Ja, das Attribut existiert. Die Methode getSelectedItemsPos gibt nur das Attrubut SelectedItemsPos zurück.Bist Du denn sicher das diese Eigenschaft existiert? Meines Erachtens existiert nur die Methode .getSelectedItemsPos
Leider habe ich noch nicht herausfinden können, wie ich auf einen ListBox, die direkt im Tabellenblatt plaziert worden ist, zugreifen kann.da man ja den Code dem entsprechenden EReignis der konkreten Listbox direkt zuweisen könnte
Vielleicht kannst du mir da einen Denkanstoß geben.
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Event auslösen
Formularelemente in einer Calc-Datei liegen auf der "Drawpage" des Tabellenblatts
Hilft Dir das weiter?
Code: Alles auswählen
Sub de39839
oDok = ThisComponent
' Grafiken des ersten Tabellenblatts
oGdT = oDok.getSheets().getByIndex( 0 ).getDrawPage()
' Formularelemente
oCalcForm = oGdT.getForms().getByName( "Standard" )
' nach Name zugreifen
oListbox = oCalcForm.getByName( "ListBox" )
print oListbox.Name
End Sub
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Event auslösen
Danke!Hilft Dir das weiter?
Da ich noch nicht herausgefunden habe wie ich ein Click-Event per Makro auslöse, ist es momentan genau die Lösung die mir noch übrig bleibt (ist halt nur etwas mehr Quellcode).
Eine kleine Änderung musste jedoch noch gemacht werden. Die ListBox ist nicht im Modul "Standard", sondern im Modul "Formular", dh. aus
Code: Alles auswählen
oCalcForm = oGdT.getForms().getByName( "Standard" )Code: Alles auswählen
oCalcForm = oGdT.getForms().getByName( "Formular" )- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Event auslösen
Alle benannten Elemente können von Dir im Entwurfsmodus neu benannt werden... dann müssen selbstverständlich auch die Ansprachen entsprechend eingestellt werden.
Weiterhin viel Erfolg!
Weiterhin viel Erfolg!
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)