Seite 1 von 1

gelöst - Buttonfarbe in Dialogen

Verfasst: Sa 15. Okt 2011, 13:56
von Ralf.H
Hallo allerseits, zuerst einmal Grüße an alle Moderatoren und Nutzer !
Ich hoffe als Newbee auf ein wenig Nachsicht ;-)

Mein Problem besteht in der Hintergrundfarbe von Buttons in Dialogen.

Ich habe einen Dialog mit 20 CommandButtons.

In einer Schleife weise ich den Buttons dynamisch Labels zu - das klappt dauerhaft.
Ebenfalls will ich in dieser Schleife den Buttons Farben zuweisen - das klappt nicht, jedenfalls nicht dauerhaft.
Hier der Code:

1. dlg.getControl(dlg_name).getModel().backgroundColor = RGB(255, 0, 0)
2. dlg.getControl(dlg_name).Model.backgroundColor = RGB(255, 0, 0)
3. dlg.getControl(dlg_name).Model.setPropertyValue("BackgroundColor", RGB(0,0,255) )

Alle drei Alternativen bringen das gleiche Ergebnis:

Die Buttons werden während der Schleife kurz eingefärbt, nach "dlg.execute()" sind alle Buttons wieder grau (standard).
Selbst die direkte Farbzuweisung in den Eigenschaften funktioniert nicht, bei mir jedenfalls nicht.

Is it a bug?

Ich nutze LibreOffice 3.3.1, OOO330m19 (Build:8), tag libreoffice-3.3.1.2 unter OpenSuse11.3

Danke vorab für Eure Hilfe und ja, ich hatte vorher gesucht aber nicht gefunden !

EDIT:
Die Farbwerte sind offensichtlich gespeichert: Wenn ich bei geöffnetem Dialog mit der Maus über die Buttons "wische" blinken sie manchmal kurz in der zugewiesenen Farbe auf, um gleich darauf wieder grau (Standard) zu erscheinen!

Re: Buttonfarbe in Dialogen

Verfasst: Sa 15. Okt 2011, 14:41
von Freelancer
Hallo Ralf,
Ralf.H hat geschrieben:Is it a bug?
Yes.

Abhilfe schafft:

Code: Alles auswählen

	DialogLibraries.LoadLibrary("Standard")
	oForm = DialogLibraries.Standard.Dialog1
	oDialog1 = CreateUnoDialog(oForm)
	oDialog1.Model.GetByName("CommandButton1").Backgroundcolor = RGB(225,0,0)
	Dim bNativeLook as Boolean
	bNativeLook = False
	oDialog1.getPeer().setProperty( "NativeWidgetLook", bNativeLook )    
	oDialog1.execute
Gruß
Freelancer

Re: Buttonfarbe in Dialogen

Verfasst: Sa 15. Okt 2011, 14:50
von Ralf.H
Freelancer hat geschrieben:Hallo Ralf,
Ralf.H hat geschrieben:Is it a bug?
Yes.

Abhilfe schafft:

Code: Alles auswählen

	DialogLibraries.LoadLibrary("Standard")
	oForm = DialogLibraries.Standard.Dialog1
	oDialog1 = CreateUnoDialog(oForm)
	oDialog1.Model.GetByName("CommandButton1").Backgroundcolor = RGB(225,0,0)
	Dim bNativeLook as Boolean
	bNativeLook = False
	oDialog1.getPeer().setProperty( "NativeWidgetLook", bNativeLook )    
	oDialog1.execute
Gruß
Freelancer

Danke, das war's!
Hoffentlich kann das OpenOffice auch, die Anwendung soll möglichst auch unter OO laufen ...
Ich setze den Status auf gelöst

Edit (aus dem OpenOffice-Forum):
Beitrag von balu » Heute 15:15
Hallo Ralf,

ich bestätige das der Code aus dem LibreOffice-Forum auch unter WinXP mit OOo 3.2.1 tadellos funktioniert :D.
Och menno! Wenn ich das doch nur früher gewusst hätte....

Gruß
balu
PS:
Möglicherweise nervts den einen oder anderen, wenn Beiträge zwischen den "konkurrierenden" Foren ausgetauscht oder crossgepostet werden.
Ich glaube aber, dass ich nicht der einzige bin, der mit beiden Suiten arbeitet/arbeiten muss und ich glaube auch, dass die beiden forks irgendwann wieder zueinander finden.
Die Hoffnung stirbt bekanntermaßen zuletzt!