Hallo Ray,
ich habe selbst schon danach gesucht, aber nichts gefunden.
Es ist und bleibt wohl so, dass diese Eigenschaften fest mit dem Betriebssystem verknüpft sind.
Mein Test ergab zwar, dass mir
Xray die zugewiesenen Fonteigen-
schaften angezeigt hat, aber der Dialog unverändert blieb.
Erzeugt einen dynamischen Dialog mit Steuerelementen
Code: Alles auswählen
REM ***** BASIC *****
Option Explicit
REM Deklaration der Variablen
'Dim oDocW as Object ' Writer-Dokument
'Dim oCC as Object ' CurrentController
'Dim oVC as Object ' ViewCursor
Dim oWin as Object
Dim bTrue as Boolean
Dim yTop as Integer
Dim xLeft as Integer
REM Deklaration der Objektvariablen des Programmdialogs
Dim oDlgMod as Object ' Modell des Dialogs
Dim oDlg as Object
REM Deklaration der Objektvariablen des CommandButtons
Dim oBut1Mod as Object ' Button1-Model
REM Deklaration der Objektvariablen der ComboBoxen
Dim oCbo1Mod as Object
Dim oCbo2Mod as Object
REM ═══════════════════════════════════════════════════════════════════════════════════════════════════════
REM Initialisierung: Dialog und Steuerelemente
Sub DlgInit
REM ═══════════════════════════════════════════════════════════════════════════════════════════════════════
' LibreOffice Makros & Dialoge -> Tools
' Lädt die TOOLS-Bibliothek mit vorgefertigten Hilfsfunktionen
' IF-Anweisung prüft ob die Bibliothek bereits geladen wurde:
' Wenn JA, dann passiert nichts
' SONST wird die Bibliothek geladen
If NOT GlobalScope.BasicLibraries.isLibraryLoaded( "Tools" ) Then
GlobalScope.BasicLibraries.LoadLibrary( "Tools" )
End If
REM ═══════════════════════════════════════════════════════════════════════════════════════════════════════
REM Steuerelement-Positionierung
xLeft=20
yTop=10
REM ═══════════════════════════════════════════════════════════════════════════════════════════════════════
REM das Dialogmodell initialisieren
oDlgMod = createUnoService("com.sun.star.awt.UnoControlDialogModel")
REM Eigenschaften zuweisen
With oDlgMod
.PositionX= 80
.PositionY= 50
.Width= 150
.Height= 80
.BackgroundColor= RGB(140,140,140) 'Hintergrundfarbe
.Title= "Dialog-Test"
.FontName="Times Roman"
.FontHeight=15
' .HelpText="Obst"
End With
'xray oDlgMod
REM ═══════════════════════════════════════════════════════════════════════════════════════════════════════
REM OK-Button initialisieren
oBut1Mod = oDlgMod.createInstance("com.sun.star.awt.UnoControlButtonModel")
REM Eigenschaften zuweisen
With oBut1Mod
.Name= "btnOK"
.Width= 85
.Height= 18
.BackgroundColor= RGB(200,0,0) 'Hintergrundfarbe
' OK-Button zentriert in Dialog
.PositionX=oDlgMod.Width/2-oBut1Mod.Width/2
.PositionY= oDlgMod.Height-25
.Label= "OK"
.HelpText="Datenübernahme"
End With
' Button laden
oDlgMod.insertByName("btnOK", oBut1Mod)
REM ═══════════════════════════════════════════════════════════════════════════════════════════════════════
REM ComboBox1 initialisieren
oCbo1Mod = oDlgMod.createInstance("com.sun.star.awt.UnoControlComboBoxModel")
With oCbo1Mod
.Name= "cbo1"
.Width= 90
.Height= 12
.PositionX= oDlgMod.Width/2-oCbo1Mod.Width/2
.PositionY= yTop
.BackgroundColor= RGB(200,200,200) 'Hintergrundfarbe
.Dropdown=True
' cbo ausblenden?
.EnableVisible=True
End With
' ComboBox1 laden
oDlgMod.insertByName("cbo1", oCbo1Mod)
' mri oCbo1Mod
REM ═══════════════════════════════════════════════════════════════════════════════════════════════════════
REM ComboBox2 initialisieren
oCbo2Mod = oDlgMod.createInstance("com.sun.star.awt.UnoControlComboBoxModel")
With oCbo2Mod
.Name= "cbo2"
.Width= 90
.Height= 12
.PositionX= oDlgMod.Width/2-oCbo1Mod.Width/2
.PositionY= yTop+20
.BackgroundColor= RGB(255,24,24) 'Hintergrundfarbe
.Dropdown=True
' cbo ausblenden?
.EnableVisible=True
End With
' ComboBox2 laden
oDlgMod.insertByName("cbo2", oCbo2Mod)
REM ═══════════════════════════════════════════════════════════════════════════════════════════════════════
REM Dialog ertellen
oDlg = CreateUnoService("com.sun.star.awt.UnoControlDialog")
oDlg.setModel(oDlgMod)
REM Fenster erzeugen und den Dialog zuweisen
oWin = createUnoService("com.sun.star.awt.Toolkit")
oDlg.createPeer(oWin, null)
' oDlg.getPeer().setProperty ( "NativeWidgetLook" , false)
' oDlg.getPeer().setProperty ( "NativeWidgetLook" , True)
oDlg.execute
End Sub
REM ═══════════════════════════════════════════════════════════════════════════════════════════════════════
In VB habe ich mal ein Tool programmiert, wo ich auf das Gleiche Problem gestoßen bin.
Ich habe dann einen Dialog ohne Titelleiste programmiert und an Stelle der Titelleiste ein
Textfeld (inklusive Schließen-Kreuz, etc.) gesetzt. So konnte ich die Fonteigenschaften ändern.
In Starbasic habe ich dies noch nicht versucht.