Allgemeine Fragen zur PROFAN Programmierung
Views (Heute): 249127 (10563)
  Suchen
 Zurück zur Übersicht
 AutorThema: setdialogfont und drawtext
Jörg Sellmeyer
Datum:05.03.02 11:35 Antwortenals Email verschicken (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 Antwortenals Email verschicken (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 Antwortenals Email verschicken (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 Antwortenals Email verschicken (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