Français
Source/ Codesnippets

Choosefont Dialog

 

Uwe
''Pascal''
Niemeier
Hi gens!

ici un Snippet aus einem aktuellen projet: un Dialog zur sélection einer Schriftart.
KompilierenMarqueSéparation
window 400,400
 $H Windows.ph
 $H Messages.ph
usermessages 16
var Ini$="X:Test.ini"************************* Pfad bitte anpassen!

subproc rtf.SetColor------------------------------------rtf.SetColor

    parameters Edit&,Color&
    declare rtf#:dim rtf#,60--CHARFORMAT
    long rtf#,0=60,$40000000,0,0,0,Color&
    sendmessage(Edit&,1092,0,rtf#)-EM_SETCHARFORMAT
    dispose rtf#
    endproc-------------------------------------------------------------

    proc ChooseFont-------------------------------------------ChooseFont

        parameters Log#
        declare a#:dim a#,60--CHOOSEFONT
        long a#,0=60,%hwnd,0,Log#,0,$541,long(Log#,60)
        var Size%=long(Log#,0)
        long b#,0=Size%*~GetDeviceCaps(%hdc,~LOGPIXELSY)/108
        var Ok&=external("comdlg32","ChooseFontA",a#)
        long Log#,0=if(Ok&,long(a#,16)*0.15,Size%)
        long Log#,60=long(a#,24)
        dispose a#
        return Ok&
        endproc-------------------------------------------------------------
        declare b#:dim b#,60+4--LOGFONT + Textfarbe
        var Edit&=create("RichEdit",%hwnd,"RichEdit
        LaberLaber",10,50,300,100)
        var Result&=~GetPrivateProfileStruct("Config","Font",b#,64,addr(Ini$))

        ifnot Result&------------Vorgaben, falls Ini noch nicht vorhanden

            long b#,0=18----------Height (im Dialog angezeigte Größe * 1.5)
            long b#,16=0----------Bold (gesetzt: 700)
            byte b#,20=1,1,0------Italic, Underline, Strikeout
            string b#,28="Arial"--FontName (max. 32 Bytes)
            long b#,60=128--------Farbe

        endif

        var Font&=~CreateFontIndirect(b#)
        setfont Edit&,Font&
        var Color&=long(b#,60)
        rtf("SetColor",Edit&,Color&)

        while 1

            waitinput
            case %umessage=16:break
            Result&=ChooseFont(b#)

            if Result&

                deleteobject Font&
                Font&=~CreateFontIndirect(b#)
                setfont Edit&,Font&
                Color&=long(b#,60)
                rtf("SetColor",Edit&,Color&)

            endif

        endwhile

        deleteobject Font&
        ~WritePrivateProfileStruct("Config","Font",b#,64,addrs2>(Ini$))

Pour Bestätigen des Dialoges wird qui daran übergebene LOGFONT-Struktur aktualisiert;
daraus wird ensuite per API direct qui Font generiert et sur une SubProc qui la couleur im
RichEdit gesetzt.
chez finissons wird cet Struktur velours angehängter la couleur direct dans un Ini geschrieben
et beim prochain Start wieder ausgelesen, si Font et la couleur tout de suite wieder zur
Disposition stehen.

Heureux Fest euch allen!
Pascal
 
23.12.2009  
 



Hehe très gentil!
 
23.12.2009  
 




Frank
Abbing
Funktioniert.

je bastle justement quoi Eigenes, weil je tout de suite une Texteingabe en supplément besoin: [...] 
 
23.12.2009  
 



Zum Quelltext


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

2.366 Views

Untitledvor 0 min.
E.T.25.06.2023
RudiB.11.04.2022
rquindt01.05.2018
Andre Rohland28.12.2014

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie