_ChooseFont ohne Schriftgrad, größe und Farbe aufrufen

  • Moin moin,

    möchte gerne die Schriftenauswahl ohne den Schriftgrad, größe und anderen Parametern aufrufen.
    brauche nur die Schriftenauswahl.

    Gibt es für _ChooseFont noch Parameter wo diese Dinge weggelassen werden ?
    Habe da in der Hilfe nichts gefunden.


    mfg
    oh-ha

    Es gibt drei Wahrheiten: deine Wahrheit, meine Wahrheit und die Wahrheit

    Einmal editiert, zuletzt von oh-ha (19. November 2011 um 22:04)

    • Offizieller Beitrag

    brauche nur die Schriftenauswahl.


    Na dann rufst du eben nur

    [autoit]

    _ChooseFont("Arial") ; oder welche Schriftart es sein soll

    [/autoit]

    auf. Alle Parameter dieser Funktion sind optional - steht auch so in der Hilfe - Lesen bildet. ;)

    Ahh, mir schwant, was du meinst: Im Auswahl-Dialog soll nur die Schriftart stehen? Wenn du das möchtest,mußt du es selbst erstellen.

  • Ich glaube er meint einen Dialog in dem man nur die Schriftarten auswählen kann, ohne das noch Schriftgröße ect. einstellbar ist.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Hallo BugFix,

    habe ich mich wohl etwas unverständlich Ausgedrückt (mal wieder)

    [autoit]

    If $Radioschrift And BitAND(GUICtrlRead($Radioschrift), $GUI_CHECKED) = $GUI_CHECKED Then;Schriftart einstellen
    $c = RegRead ( "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\International\Scripts","Default_Script")
    If $c = 0 Then
    RegWrite ("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\International\Scripts\" ,"Default_Script", "REG_BINARY", 03)
    EndIf
    $a = RegRead ( "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\International\Scripts","Default_Script")
    $schriftordner = Number($a) ; Wird die null vor der zahl weggemacht
    $a_font = _ChooseFont()
    If (@error) Then
    MsgBox(0, "", "Error _ChooseFont: " & @error)
    Else
    RegWrite ("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\International\Scripts\" ,"Default_Script", "REG_BINARY", 03)
    RegWrite ("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\International\Scripts\" & $schriftordner ,"IEPropFontName", "REG_SZ", $a_font[2])
    EndIf
    EndIf

    [/autoit]

    Das ist ein Auschnitt aus meinen Skript.
    Da wird die Auswahl der Schriften mit " $a_font = _ChooseFont() " aufgerufen und in gerade dieser Auswahl habe ich auch die Größe, schriftgrad usw.
    sieht dann so aus:
    autoit.de/wcf/attachment/14601/
    Möchte aber nur die Schriftenauswahl haben. In etwa so nur halt mit ok und abbrechen dabei:
    autoit.de/wcf/attachment/14602/


    mfg
    oh-ha

  • Hi,

    dazu brauchst Du:

    • Ein Dialogfenster mit einer ComboBox oder einer ListBox zum Auflisten der Schriften (logisch)
    • Eine Callbackfunktion in der Du die aufzulisteten Schriften der Combo/ListBox hinzufügst (DllCallbackRegister)
    • Einen Aufruf der Funktion EnumFontFamiliesEx

    Das war es eigentlich auch schon, wenn ich mich recht erinnere ...


    Gruß
    Greenhorn


  • Danke dir,

    werde mir das mal anschauen und versuchen das hinzubekommen, hatte bisher noch keine dll angesprochen.
    Dachte ich komme an einer extra Gui vorbei und hätte in der Hilfe nur die Parameter nicht gefunden.


    mfg
    oh-ha

    Es gibt drei Wahrheiten: deine Wahrheit, meine Wahrheit und die Wahrheit

  • Moin,

    ich poste hier mal den Schnippsel aus einem meiner Programme wo ich genau das machen - eine Listbox wo der Benutzer nur die Schriftart wählen darf,
    habs nur schnell zusammenkopiert und eine Demo umzugebaut - bitte nicht auf Schönheit schauen aber es funzt:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>
    #include <StaticConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=C:\_AutoIT\AutoIt.de\DemoSchrifetnauswahlForm1.kxf
    $Form1 = GUICreate("Form1", 615, 455, 607, 124)
    $ListSchriftenauswahl = GUICtrlCreateList("", 96, 32, 409, 344)
    $Label1 = GUICtrlCreateLabel("Dies ist ein Test-Text", 96, 400, 300, 28)
    GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;Schrifarten zusammenstellen
    Dim $sAllFonts = @CRLF
    Dim $setschleife = 1
    Dim $sFont, $tempsetSchriftart
    While True
    $sFont = RegEnumVal("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts", $setschleife)
    If @error Then ExitLoop
    $setschleife = $setschleife + 1
    $sAllFonts &= $sFont & @CRLF
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    $aTrueType = StringRegExp($sAllFonts, '(.+?\(TrueType\))\r', 3)
    _ArraySort($aTrueType)
    _GUICtrlListBox_BeginUpdate($ListSchriftenauswahl)
    For $i = 0 To UBound($aTrueType) - 1
    _GUICtrlListBox_AddString($ListSchriftenauswahl, StringReplace($aTrueType[$i], " (TrueType)", ""))
    Next
    _GUICtrlListBox_EndUpdate($ListSchriftenauswahl)
    _GUICtrlListBox_SelectString($ListSchriftenauswahl, $tempsetSchriftart)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $ListSchriftenauswahl
    $tempsetSchriftart = GUICtrlRead($ListSchriftenauswahl)
    GUICtrlSetFont($Label1, 14, 400, 0, $tempsetSchriftart)
    EndSwitch
    WEnd

    [/autoit]

    Die Schriften werden aus der Registry gelesen - und es wird auf TrueType Fonst gefiltert. Ganz ohne DLL aufrufe.
    Die Methode hatte ich selbst irgendwo gefunden (wahrscheinlich sogar in diesem Forum)

  • Sorry das ich mich erst jetzt wieder melde.
    War bis eben noch daran das mit den dll´s zu verstehen>>>>>>>>>habe es immer noch nicht hinbekommen. :rolleyes:
    Was nicht ist kann ja noch werden, nur eine Frage der Zeit.

    BLinz,
    genau das habe ich gesucht und dann wird die Schrift auch noch so angezeigt :thumbup:

    Greenhorn,
    Sitze da jetzt schon einen ganzen Tag und die halbe Nacht dran nur mit dem Verstehen haperts noch ein wenig.
    Kann dein Skript aber jetzt gut als Vergleich gebrauchen bei dem was ich da schon raus gefunden hatte.


    mfg
    oh-ha

    Es gibt drei Wahrheiten: deine Wahrheit, meine Wahrheit und die Wahrheit