Wie finde herraus welcher Button ein ein Makro gestartet hat?

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

tom2

Wie finde herraus welcher Button ein ein Makro gestartet hat?

Beitrag von tom2 » Fr, 06.01.2017 17:07

Ich bin neu in diesem Forum und möchte einen Versuch starten mein Problem zu lösen nachdem zahlreiche Recherche und Experimente mit xray nicht weiter geholfen haben. Mein Problem ist:

In einem Dialog sollen mehrere Zeilen sein die aus einer Textbox und einem Button bestehen, ungefähr so:

1) Textbox_1 Button_1
2) Textbox_2 Button_2
3) etc.

Wenn ein Button gedrückt wird, dann soll mit der Textbox in der gleichen Zeile etwas geschehen, über ein Makro.
Damit der Programmkode nicht zu lang wird möchte ich nur ein Makro für alle Buttons verwenden. Dann muss aber das aufgerufene Makro irgendwie feststellen können von welchem Butten aus es gestartet wurde damit es anschließend die Textbox der entsprechenden Zeile bearbeiten kann.

Karolus
********
Beiträge: 7026
Registriert: Mo, 02.01.2006 19:48
Kontaktdaten:

Re: Wie finde herraus welcher Button ein ein Makro gestartet hat?

Beitrag von Karolus » Fr, 06.01.2017 17:36

Hallo

Der "aufrufende Button" wird als Argument durchgereicht an das aufgerufene Makro, du musst es halt nur in der Makrosignatur als solches aufnehmen:

Code: Alles auswählen

sub mein_tolles_makro( event )
    mri( event )
end sub 
AOO4, LO4.3, LO4.4 LinuxMint17.2

tom2

Re: Wie finde herraus welcher Button ein ein Makro gestartet hat?

Beitrag von tom2 » Fr, 06.01.2017 19:08

Hallo Karolus,

vielen Dank für die hilfreiche Antwort. Tatsächlich so einfach kann es sein. Das ganze Button-Objekt steckt wohl in "Source". Ich habe ein wenig gebraucht um mich durch das Objekt zu graben. Die passende Information ist - bezogen auf den Objektnamen "event" - in:

event.Source.Model.Name

Der Vollständigkeit halber will ich noch erwähnen, das es 3 weitere Properties gibt in denen die Beschriftung des Button steht:

event.Source.AccessibleContext.AccessibleName
event.Source.AccessibleContext.Text
event.Source.Model.Label

Gruß, tom2

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast