Seite 1 von 1

Windows installierte Schriftarten auswählen

Verfasst: 28.04.2011 13:13
von Velindos
Hallo,
brauche Hilfe! Wie komme ich an die installierten Schriftarten unter Windows um Sie für Stringgadget und Editorgadget getrennt einzustellen, wegen der Überschrift und so?
Gruss ... Velindos

Re: Windows installierte Schriftarten auswählen

Verfasst: 28.04.2011 13:15
von RSBasic
FontRequester()?

Oder selber manuell auflisten?

Code: Alles auswählen

EnableExplicit

Procedure EnumFontFamProc(*lpelf.ENUMLOGFONT, *lpntm.NEWTEXTMETRIC, FontType, lParam) 
  AddGadgetItem(1,-1,PeekS(@*lpelf\elfLogFont\lfFaceName[0]),0,0)
  ProcedureReturn 1 
EndProcedure 

Procedure SysInfo_Fonts()
  EnumFontFamilies_(GetDC_(GetDesktopWindow_()),0,@EnumFontFamProc(),0) 
  ReleaseDC_(GetDesktopWindow_(),GetDC_(GetDesktopWindow_())) 
EndProcedure 

If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  ListViewGadget(1,10,10,480,230,0)
  
  SysInfo_Fonts()
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf

Re: Windows installierte Schriftarten auswählen

Verfasst: 28.04.2011 13:19
von Velindos
Hallo RSBasic!
Das geht ja flux, also Danke für deinen raschen Vorschlag. Hab natürlich mein Beispiel vergessen. Hab keine Ahnung wie ich die Schrifart und Grösse getrennt einstellen kann:

Code: Alles auswählen

; Windows installierte Schriftarten auswählen
; wie kriege ich ins zweite Schriftfeld

Enumeration
  #FrameMain
EndEnumeration

;-Constant
Enumeration
  #S_Anzeige
  #S_Notiz
  #SchriftAnzeige
  #Font_Anzeige
  #Font_AnzeigeButton
  #Font_NotizButton
  #Grad_Anzeige
  #SchriftNotiz
  #Font_Notiz
  #Grad_Notiz
  #Font_Window
EndEnumeration

Global FontID1
Global FontID2
Enumeration
  #Font_String_1
  #Font_String_2
EndEnumeration

Procedure EnumFontFamProc(*lpelf.ENUMLOGFONT, *lpntm.NEWTEXTMETRIC, FontType, lParam)
  AddGadgetItem(#Font_Anzeige,-1,PeekS(@*lpelf\elfLogFont\lfFaceName[0]),0,0)
  ProcedureReturn #Font_Anzeige
EndProcedure

Procedure SysInfo_Fonts()
  EnumFontFamilies_(GetDC_(GetDesktopWindow_()),0,@EnumFontFamProc(),0)
  ReleaseDC_(GetDesktopWindow_(),GetDC_(GetDesktopWindow_()))
EndProcedure



If OpenWindow(#FrameMain,683, 0,620, 600,"Schriften Einstellen",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  StringGadget(#S_Anzeige,10,20,600,40,"Meine Überschrift")
  EditorGadget(#S_Notiz,10,80,600,200)
  AddGadgetItem(#S_Notiz, -1,"Mein Text vom "+FormatDate("%dd.%mm.%yyyy", Date())+Chr(13))
  TextGadget(#SchriftAnzeige,10, 300, 195, 20,"Schrift Anzeige")
  ComboBoxGadget(#Font_Anzeige, 95, 300, 195, 20)
  ComboBoxGadget(#Grad_Anzeige, 305, 300, 50, 20)
    AddGadgetItem(#Grad_Anzeige, -1, "12")
  AddGadgetItem(#Grad_Anzeige, -1, "16")
  AddGadgetItem(#Grad_Anzeige, -1, "24")
  AddGadgetItem(#Grad_Anzeige, -1, "32")
  AddGadgetItem(#Grad_Anzeige, -1, "48")
  AddGadgetItem(#Grad_Anzeige, -1, "58")
  AddGadgetItem(#Grad_Anzeige, -1, "76")

  ButtonGadget(#Font_AnzeigeButton,360,300,100,20,"font Überschrift")
  ButtonGadget(#Font_NotizButton,465,300,100,20,"font Notiz")
  TextGadget(#SchriftNotiz,10, 330, 195, 20,"Schrift Notiz")
  ComboBoxGadget(#Font_Notiz, 95, 330, 195, 20)
  ComboBoxGadget(#Grad_Notiz, 305, 330, 50, 20)
  ListViewGadget(#Font_Window,95,360,480,230,0)
EndIf


SysInfo_Fonts()

;AddGadgetItem(#Font_Anzeige, -1,"ComboBox item ")

Repeat
 
  EventID=WaitWindowEvent()
 
  Select EventID
     
    Case #PB_Event_CloseWindow
      Break
     
    Case #PB_Event_Gadget
      Gadget = EventGadget()
      Select Gadget
        Case #Font_AnzeigeButton
          Schriftart$=GetGadgetText(#Font_Anzeige)
          Schriftgrad=Val(GetGadgetText(#Grad_Anzeige))
          FontID1 = LoadFont(#Font_String_1, Schriftart$, Schriftgrad, #PB_Font_Bold|#PB_Font_HighQuality)
          SetGadgetFont(#S_Anzeige, FontID1)
        Case #Font_NotizButton
          Schriftart$=GetGadgetText(#Font_Anzeige)
          Schriftgrad=Val(GetGadgetText(#Grad_Anzeige))
          FontID2 = LoadFont(#Font_String_2, Schriftart$, Schriftgrad, #PB_Font_Bold|#PB_Font_HighQuality)
          SetGadgetFont(#S_Notiz, FontID2)
      EndSelect
       EndSelect
ForEver
Dein Beispiel ist Supi, habe es eingearbeitet, wie komme ich an die Grösse der in Windows verwendeten Schriften bzw. muss man die selbst festlegen?
Gruss ... Velindos