Hallo zusammen!
Ich möchte einen Button via Makro hinzufügen.
Der Code von
Axel Richter funktioniert auch einwandfrei (vielen Dank an der Stelle schonmal

)
Ich zitiere an dieser Stelle am Besten nochmal den Code:
Code: Alles auswählen
sub addButton
oSheet = thiscomponent.sheets(0)
oPage = oSheet.drawpage
Dim aPoint As New com.sun.star.awt.Point
Dim aSize As New com.sun.star.awt.Size
aPoint.x = 10000
aPoint.y = 10000
aSize.Width = 10000
aSize.Height = 1600
btn = thiscomponent.createInstance("com.sun.star.drawing.ControlShape")
oControlModel = thiscomponent.createInstance( "com.sun.star.form.component.CommandButton" )
btn.control = oControlModel
btn.Size = aSize
btn.Position = aPoint
btn.Control.Label = "Klick mich!"
oPage.add(btn)
oForm = btn.control.parent
nIndex = oForm.Count-1 'Der Button wurde soeben eingefügt, deshalb ist es sehr wahrscheinlich, dass er das letzte Element der Controls-Liste der Form ist.
Dim oEvent as new com.sun.star.script.ScriptEventDescriptor
oEvent.ListenerType = "com.sun.star.awt.XActionListener"
oEvent.EventMethod = "actionPerformed"
oEvent.ScriptType = "StarBasic"
oEvent.ScriptCode = "vnd.sun.star.script:Standard.Module1.test"
oForm.registerScriptEvent(nIndex, oEvent)
thiscomponent.currentcontroller.setformdesignmode(false)
end sub
sub test(oEvent)
xray oEvent
end sub
Was ich aber (noch) möchte, ist folgendes:
Ich habe ein Sheet in das eine dynamische Anzahl an Reihen eingefügt wird. Am Ende jeder Reihe soll ein Button erscheinen, der das Bearbeiten der jeweiligen Zeile ermöglichen soll.
Wie schaffe ich es also, dass
1. Der Button auf der richtigen Höhe erscheint? Ich könnte zwar "hardcoded" die y-Position festlegen, aber sobald ich die Höhe einer Zeile veränder kommt das System durcheinander und die Buttons sind nicht mehr auf der richtigen Höhe.
Ideal wäre, wenn ich quasi eine Zelle mit einem Button "füllen" könnte, dass mein Button also z.B. das Feld "A1" füllt ? (ich hoffe es ist verständlich was ich meine)
2. beim Klick des jeweiligen Buttons die Information, wo er sich befindet mit übergeben wird, sodass der Button eine Sub modifyRow(rownumber as Integer) aufrufen kann?
Wäre über Hilfe sehr dankbar!