Seite 1 von 1

Formatwähler

Verfasst: Do 4. Feb 2016, 23:31
von scientific
Hi!

Wie ich den FolderPicker oder den FilePicker aufrufe und verwende weiß ich. Aber wie komme ich zum Format-Wähler für Zeichenformate/Fonts?

Ich möchte über ein Dialogfeld verschiedene Einstellungen zu Datenbank-Exporten machen können. Eine der Einstellungen ist Font und Fontformat für die Exporte nach Calc. Und dazu möchte ich eben den Dialog aufrufen, wo ich Font und Forntformat einstellen kann, und diese dann in mein Config-Cacl schreiben. Aber irgendwie finde ich dazu nichts...

Re: Formatwähler

Verfasst: Mo 8. Feb 2016, 13:20
von mikele
Hallo,
den Dialog
Den Dialog zur Formatierung von Zeichen kannst du über den Dispatcher aufrufen:

Code: Alles auswählen

oProvider = ThisComponent.CurrentController.Frame
oDispHelper = createUnoService("com.sun.star.frame.DispatchHelper")
oDispHelper.executeDispatch(oProvider,".uno:CharFontName","", , Array())
Für den Absatzdialog wäre es entsprechend ".uno:ParagraphDialog".
Ich bin mir aber nicht sicher, ob es das ist was du eigentlich willst.

Re: Formatwähler

Verfasst: Mo 8. Feb 2016, 23:31
von scientific
Vielen Dank. Ich hab mittlerweile eine Lösung gefunden. Ich möchte eigentlich nur Font und Schriftgröße auswählen können. Dazu lese ich die installierten Schriften aus. Die Fontgrößen gebe ich nur in bestimmten brauchbaren Größen in einer eigenen Liste vor.

Code: Alles auswählen

Function GetFontliste(Fontliste())
  Dim iFonts As Integer
  Dim oWindow As Object
  Dim oFonts As Object
'  Dim aFontlist As Object
'  Dim aFontlistUniq As Object
  Dim i As Integer
  Dim j As Integer
  Dim sFont$
  oWindow  = thisComponent.getCurrentController().getFrame().getContainerWindow()
  oFonts() = oWindow.getFontDescriptors()
  iFonts = Ubound(oFonts())
  Dim aFontlist(iFonts)
  For i = 0 To iFonts
  	aFontlist(i) = oFonts(i).Name
  Next i 
  BubbleSortList(aFontlist)
  sFont = aFontlist(0)
  Dim aFontListUniq(iFonts)
  aFontListUniq(0) = aFontlist(0)
  j=1
  For i = 1 To iFonts
  	If sFont <> aFontlist(i) Then
  		aFontListUniq(j) = aFontList(i)
        sFont = aFontList(i)
  		j=j+1
  	End If	
    i=i+1
  Next i
  ReDim Preserve aFontlistUniq(j-1)
  Fontliste = aFontlistUniq
End Function
Dieses Codeschnipsel habe ich von Andrew Pitonyak (ich glaub, so schreibt man ihn. )

lg scientific