[gelöst]Änderungen Eigenschaften von Dialogkontrollfeldern

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

Moderator: Moderatoren

F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

[gelöst]Änderungen Eigenschaften von Dialogkontrollfeldern

Beitrag von F3K Total »

Hallo zusammen,
ich habe folgendes Problem:
Wenn ich unter W7 einen Dialog erzeuge und die Hintergrundfarbe z.B. eines Labelfeldes der Hintergrundfarbe des Dialogs anpasse, dann sieht das ganze unter Windows XP nicht mehr schön aus:
Windows 7:
dialog1.png
Windows XP:
dialog2.png
Ich schaffe es zwar, die Hintergrundfarbe des Labelfeldes per Makro, beim Aufruf des jeweiligen Dialoges auf "transparent" einzustellen:

Code: Alles auswählen

oControl.model.BackGroundColor = Transparent
... damit ist das optische Problem weg.
Ist aber nicht dauerhaft, und wird beim nächsten Dialog vergessen.
Auch unter "Eigenschaften" des Labelfeldes bekomme ich es nicht hin, die Hintergrundfarbe auf "transparent" (-1) einzustellen.
Ich weiß, dass es für Dialoge die Methode "setDesignMode(true)" gibt. Aber trotzdem schaffe ich es nicht, die Änderung zu speichern.

Also die Frage: Wie kann man Änderungen an den Eigenschaften der Kontrollfelder eines Dialoges per Makro speichern?

Gruß Rik
Zuletzt geändert von F3K Total am Fr, 15.04.2011 18:06, insgesamt 1-mal geändert.
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Änderungen Eigenschaften von Dialogkontrollfeldern speic

Beitrag von DPunch »

Aloha
F3K Total hat geschrieben:Wenn ich unter W7 einen Dialog erzeuge und die Hintergrundfarbe z.B. eines Labelfeldes der Hintergrundfarbe des Dialogs anpasse
Warum lässt Du die Hintergrundfarbe des Labels nicht auf "Standard" stehen?
Ich weiss nicht, ob das bei Win 7 anders ist, aber unter XP ist dies quasi "Transparent".
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Änderungen Eigenschaften von Dialogkontrollfeldern speic

Beitrag von F3K Total »

Hallo DPunch,
na, das ist es ja gerade. Ich habe den Dialog unter W7 erstellt, Hintergrundfarbe Standard, Hintergundfarbe Labelfeld ebenfalls Standard.
Wenn ich ihn dann unter XP aufrufe sieht man den Schatten, wie unten dargestellt, und das ist unschön.
Mein Workaround ist es deshalb, beim Aufruf des Dialoges die Hintergrundfarbedes Labelfeldes auf transparent einzustellen.
Dann sieht man sowohl unter XP als auch unter W7 keinen Schatten.
Die Frage ist, ob man die Hintergrundfarbe per Makro auf transparent, bzw. -1 stellen kann, denn per GUI geht es nicht, um dann den geänderten Dialog zu speichern.
Oder eben allgemein, wie speichert man Änderungen an den Eigenschaften von Dialogen/Dialogkontrollfeldern per Makro?

Ich komme nicht drauf.

Beste Grüße von R
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Änderungen Eigenschaften von Dialogkontrollfeldern speic

Beitrag von DPunch »

Aloha

Wenn ich mal die Zeit dazu finde, kann ich mich da mal umschauen, aus dem Stehgreif kann ich Dir dazu nichts sagen, weil ich bisher weder das Bedürfnis hatte, Änderungen an einem erstellten Dialog per Makro vorzunehmen, noch mit Win 7 arbeite.
Allerdings sollte eine Zeile Code zum Ändern der Hintergrundfarbe beim Erstellen des Dialogs wohl kein Beinbruch sein ;)
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Änderungen Eigenschaften von Dialogkontrollfeldern speic

Beitrag von F3K Total »

Ja,
das wäre schön, wenn Du da etwas finden würdest, denn es sind schon ein paar mehr Zeilen:

Code: Alles auswählen

oControls=oDialog.Controls
for i=0 to uBound(oControls)
 oControl=oDialog.getByIdentifier(i)
 oControlServices=oControl.getSupportedServiceNames
 if oControlServices(1)=("com.sun.star.awt.UnoControlFixedText") or oControlServices(1)=("com.sun.star.awt.UnoControlRadioButton") or  oControlServices(1)=("com.sun.star.awt.UnoControlCheckBox")then
  oControl.model.BackGroundColor = Transparent
 endif
next i
Gruß R
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Änderungen Eigenschaften von Dialogkontrollfeldern speic

Beitrag von F3K Total »

Hallo DPunch,
Du hattest doch Recht:
Ich hatte die Hintergundfarbe der Labelfelder meiner Dialoge nicht auf "Standard" gestellt,
sondern der Standard-Hintergrundfarbe des Dialoges angepasst.
Grund: Die Labelfelder erscheinen im Design-Mode mit weißem Hintergrung auf grauem Grund. Habe nicht gewußt, dass sie bei Ausführung des Dialoges Transparent werden.
Also, Problem erledigt.
Danke Gruß R
Antworten