Event auslösen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Event auslösen

Re: Event auslösen

von komma4 » Mo, 05.07.2010 15:21

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!

Re: Event auslösen

von lastraven » Mo, 05.07.2010 14:51

Hilft Dir das weiter?
Danke!
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" )
wurde

Code: Alles auswählen

oCalcForm = oGdT.getForms().getByName( "Formular" )

Re: Event auslösen

von komma4 » Mo, 05.07.2010 11:58

Formularelemente in einer Calc-Datei liegen auf der "Drawpage" des Tabellenblatts

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
Hilft Dir das weiter?

Re: Event auslösen

von lastraven » Mo, 05.07.2010 11:01

Das heißt es sind mehrere Listboxen vorhanden
Ja, bei mir sind es insgesamt 7 ListBoxen die alle denselben Handler nutzen.
Bist Du denn sicher das diese Eigenschaft existiert? Meines Erachtens existiert nur die Methode .getSelectedItemsPos
Ja, das Attribut existiert. Die Methode getSelectedItemsPos gibt nur das Attrubut SelectedItemsPos zurück.
da man ja den Code dem entsprechenden EReignis der konkreten Listbox direkt zuweisen könnte
Leider habe ich noch nicht herausfinden können, wie ich auf einen ListBox, die direkt im Tabellenblatt plaziert worden ist, zugreifen kann.
Vielleicht kannst du mir da einen Denkanstoß geben.

Re: Event auslösen

von Stephan » Mo, 05.07.2010 09:13

in dem Makro, verwende ich das Even-Objekt.
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.
ich konnte nicht rausfinden wie ich z.B. direkt auf die Eigenschaft SelectedItemPos der ListBox zugreife
Bist Du denn sicher das diese Eigenschaft existiert? Meines Erachtens existiert nur die Methode .getSelectedItemsPos, welche wie folgt nutzbar sein sollte:

Code: Alles auswählen

listBox = event.Source
PositionDesEintrags = listBox.getSelectedItemsPos
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.
Da 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ß)


Gruß
Stephan

Re: Event auslösen

von lastraven » Mo, 05.07.2010 07:17

WArum führst Du nicht den 'Handler' der Listbox direkt aus? Mir jedenfalls ist zunächst kein Grund bekannt warum statt:
in dem Makro, verwende ich das Even-Objekt.

Code: Alles auswählen

function meineFunktion(event as Object)
Über das Event-Objekt komme ich an die ListBox heran:

Code: Alles auswählen

listBox = event.Source
Erst dann greife ich auf die Attribute/Methoden der ListBox zu.

Wü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

von Stephan » Sa, 03.07.2010 19:46

Ich hoffe ich konnte es verständlich erläutern.
Nein, das konntest Du nicht, denn Du hast Dich inhaltlich nur wiederholt.
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.
Und wozu DIESER Weg?

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

von lastraven » Sa, 03.07.2010 18:26

und wozu soll das gut sein?
Zur Erklärung:

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

von Stephan » Sa, 03.07.2010 12:19

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.
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.
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

von lastraven » Sa, 03.07.2010 11:35

Ja: klicke mit der Maus in die Listbox.
Vielleicht habe ich mich nicht genau/falsch ausgedrückt.
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. :cry:

Re: Event auslösen

von komma4 » Fr, 02.07.2010 11:59

lastraven hat geschrieben:ist es möglich ein "Click"-Event einer List Box manuell auszulösen
Ja: klicke mit der Maus in die Listbox.


Hast Du das gemeint?

Event auslösen

von lastraven » Fr, 02.07.2010 11:55

Hallo,

ist es möglich ein "Click"-Event einer List Box manuell auszulösen damit der im "Ereignisse"-Register eingestellte Handler ausgeführt wird? :-?

Nach oben