Zugriff auf die Beschriftung einer Schaltfläche
Verfasst: Sa, 29.01.2011 14:16
Wie bekommt man mit einem Makro Zugriff auf die Beschriftung einer Schaltfläche?
deutsches Forum rund um Apache OpenOffice und LibreOffice
https://de.openoffice.info/
Code: Alles auswählen
thiscomponent.drawpage(0).control.label = "EUREKA!"
Code: Alles auswählen
GlobalScope.BasicLibraries.loadLibrary( "XrayTools" )
Code: Alles auswählen
xray ThisComponent
xray meineVariable
Code: Alles auswählen
REM ***** BASIC *****
Const rot = 16711680, gruen = 32768, EIN = "EIN", AUS = "AUS", _
HilfetextEIN = "Befehlsweitergabe EINGESCHALTET. Die grüne Taste drücken, um die Zeitfelder zu bearbeiten.", _
HilfetextAUS = "Befehlsweitergabe AUSGESCHALTET. Die Zeitfelder können bearbeitet werden. Die rote Taste drücken, um die Befehlsweitergabe einzuschalten."
Global initialisiert as boolean, LabelEIN, LabelAUS, HilfetextEIN, HilfetextAUS as string
Sub Main
versuche
End Sub
sub Initialisiere
LabelEIN = "Befehlsweitergabe EINGESCHALTET" & Chr(10) & "Die grüne Taste drücken, um die Zeitfelder zu bearbeiten."
LabelAUS = "Befehlsweitergabe AUSGESCHALTET. Die Zeitfelder können bearbeitet werden." & Chr(10) & "Die rote Taste drücken, um die Befehlsweitergabe einzuschalten."
initialisiert = true
end sub
sub SchalteFarbeUm
if NOT initialisiert then Initialisiere
if thiscomponent.drawpage(0).control.backgroundcolor = gruen then
thiscomponent.drawpage(0).control.backgroundcolor = rot
thiscomponent.drawpage(0).control.label = AUS
thiscomponent.drawpage(0).control.helptext = HilfetextAUS
thiscomponent.drawpage(1).control.label = LabelAUS
else
thiscomponent.drawpage(0).control.backgroundcolor = gruen
thiscomponent.drawpage(0).control.label = EIN
thiscomponent.drawpage(0).control.helptext = HilfetextEIN
thiscomponent.drawpage(1).control.label = LabelEIN
end if
end sub
sub versuche
Dummy = thiscomponent.drawpage(0).control
Dummy = thiscomponent.drawpage(0).size
thiscomponent.drawpage(0).size.width = 4000
Dummy = thiscomponent.drawpage(2)
Dummy = thiscomponent.drawpage(2).position
thiscomponent.drawpage(2).position.x = 3000
end sub
Code: Alles auswählen
"Befehlsweitergabe EINGESCHALTET" & Chr(10) & "Die grüne Taste drücken, um die Zeitfelder zu bearbeiten."
Auch von mir die Frage: Wo kann man Position und Größe, so eines Labels zumindest auslesen. Beim Objekt (über die Drawpage) ist es nicht gespeichert. Mittels des Event-Objekts geht es, (stardiv.Toolkit.UnoFixedTextControl), aber auf die anderen Label-Kontrollelemente des Formulars konnte ich so nicht zugreifen.Die Änderung der Position und der Größe funktioniert aber nicht
Code: Alles auswählen
oshapesenum=thiscomponent.drawpage.createEnumeration
while oshapesenum.hasmoreelements
oshape= oshapesenum.nextelement
xray oshape
wend
Code: Alles auswählen
oshapesenum=thiscomponent.drawpage.createEnumeration
while oshapesenum.hasmoreelements
oshape= oshapesenum.nextelement
if oshape.control.ServiceName ="stardiv.one.form.component.FixedText" then msgbox oshape.control.name
wend
Code: Alles auswählen
oshapesenum=thiscomponent.drawpage.createEnumeration
while oshapesenum.hasmoreelements
oshape= oshapesenum.nextelement
if oshape.control.name="lblKunden-ID" then msgbox "X: "+oshape.position.X+" Y: "+oshape.position.Y
wend
Code: Alles auswählen
dim oposition as new com.sun.star.awt.Point
oposition.X=5000 '5cm
oposition.Y=5000 '5cm
oshapesenum=thiscomponent.drawpage.createEnumeration
while oshapesenum.hasmoreelements
oshape= oshapesenum.nextelement
if oshape.control.name="txtKunden-ID" then oshape.position=oposition
wend