Allgemeine Fragen zur PROFAN Programmierung

Views (Heute): 249127 (10563)

| Suchen
| Zurück zur Übersicht

Autor | Thema: setdialogfont und drawtext
Jörg Sellmeyer
| Datum:05.03.02 11:35 (joerse@gmx.de) |
Hallo, Wenn ich Buttons u. s. w. erzeuge und ihnen mit setdialogfont 1 einen anderen als den Systemfont zuweise, verändert sich die Schriftart nach einem Drawtext-Befehl. Allerdings nur wenn ich vorher mit usefont .... eine ander Schriftgröße auswähle. Ich kann mir nicht vorstellen, daß das so muß, weiß aber auch nicht wie es in älteren Versionen war. Ich benutze 7.5. Hier mal ein Beispiel:
    cls
    UseFont "MS Sans Serif",13,0,0,0,0
    SetDialogFont 1
    Declare b&
    b&=CreateButton(%hwnd,"Test",100,10,150,24)
    While 1
    WaitInput
    	UseFont "MS Sans Serif",130,0,0,0,0
    	DrawText 100,100,"Test"
    	UseFont "MS Sans Serif",13,0,0,0,0
    	If GetFocus(b&)
    		SetText b&,"So'n Mist"
    		DrawText 10,40,"Und das ist auch so, wenn der Buttontext nicht verändert wird"
    		SetDialogFont 1'das nützt auch nix
    	EndIf
    Wend
Wer weiß Abhilfe ? Ach ja, wenn ich jedem Control einen eigenen Font zuweise passiert das nicht. Gruß Jörg
Alexander Schoenfeld
| Datum:05.03.02 12:41 (alexander.schoenfeld@chronologic.de) |
Hallo Jörg ! Warum änderst du eigentlich den Font mittem im Programm? Wenn du einem einzelnen Dialogelement einen neuen Font zuweisen willst, kannst du das mit
    <...>
    hKnopf% = @Create("Button",hDlg%,"Testtext",20,20,80,24)
    hFont% = @Create("Font","Arial",20,12,0,0,0)
    SetFont hKnopf%,hFont%
    <...>
    DeleteObject hFont%
    End
Mit freundlichem Gruss, Alexander Schönfeld
Jörg Sellmeyer
| Datum:05.03.02 13:20 (joerse@gmx.de) |
Hallo Alexander, Ich will den Font ja gar nicht wechseln ! Vielleicht habe ich mich mißverständlich ausgedrückt: Der Buttonfont ändert sich selbstständig - und das soll er nicht Auch bei diesem Beispiel ändert er sich:
    cls
    UseFont "MS Sans Serif",13,0,0,0,0
    SetDialogFont 1
    Declare b&
    b&=CreateButton(%hwnd,"Test",100,10,150,24)
    While 1
    WaitInput
    	UseFont "MS Sans Serif",130,0,0,0,0
    	DrawText 100,100,"Test"
    	If GetFocus(b&)
    		SetText b&,"So'n Mist"
    	EndIf
    Wend
Und das mit setfont ist mir auch klar, aber warum gibt es einen so Zeilensparenden Befehl wie setdialogfont, wenn er dann nutzlos ist. Gruß Jörg
Roland G. Hülsmann
| Datum: 05.03.02 13:36 (rgh-soft@t-online.de) |
Hallo! SETDDIALOGFONT 1 bewirkt, daß anstelle des Systemfonts der mit USEFONT eingestellte Font benutzt wird. Das heißt also auch, daß es Auswirkungen hat, wenn mit USEFONT ein weiterer Font eingestellt wird. Beim nächsten Neuzeichnen des Objektes wird dann nämlich genau dieser benutzt. SETDIALOGFONT 1 macht nur Sinn, wenn eben anstelle des Systemfonts konsequent EIN anderer Font benutzt werden soll. Für Deinen Zweck mußt Du daher die von Alexander vorgeschlagene Lösung mit CREATE("Font",...) und SETFONT benutzen. Gruß Roland

| Zurück zur Übersicht