Seite 1 von 1

Loadfont wechseln

Verfasst: 04.04.2011 19:28
von PB42
Hallo,

wie wechselt man für das TextGadget(X) den Loadfont? Es kann doch nicht sein, daß der zuerst gewählte Loadfont zum Verrecken nicht zu änern ist, sodaß man im gesamten Programm für das Gadget(X) immer nur eine einzige Schriftgröße verwenden kann!

Das Schema

Code: Alles auswählen

LoadFont(1,"arial",14)
SetGadgetFont(#PB_Default,FontID(1))
SetGadgetText(X,"blabla") 
und dann später für einen längeren Text

Code: Alles auswählen

LoadFont(2,"arial",10)
SetGadgetFont(#PB_Default,FontID(2))
SetGadgetText(X,"blabla") 
Die Schriftgröße bleibt groß. Wie ändert man das? Danke.

Re: Loadfont wechseln

Verfasst: 04.04.2011 19:42
von RSBasic
Also bei mir funktioniert es:

Code: Alles auswählen

EnableExplicit

Define EventID

If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  TextGadget(1,10,10,100,20,"Text",0)
  
  LoadFont(1,"arial",12)
  SetGadgetFont(1,FontID(1))
  SetGadgetText(1,"blabla") 
  
  LoadFont(2,"arial",6)
  SetGadgetFont(1,FontID(2))
  SetGadgetText(1,"blabla") 

  Repeat
    EventID=WaitWindowEvent()
    If EventID = #PB_Event_CloseWindow
      End
    EndIf
  ForEver
EndIf
Oder habe ich dich falsch verstanden?

Re: Loadfont wechseln

Verfasst: 04.04.2011 20:08
von PB42
Ich wollte die Schriftgröße innerhalb der Repeatschleife ändern und das geht vielleicht wirklich nicht. Mittlerweile will ich allerdings das eigentliche Problem, was dahintersteckt, anders lösen, sodaß ich die verschiedenen Schriftgrößen gar nicht mehr brauche. Danke nochmals.

Re: Loadfont wechseln

Verfasst: 04.04.2011 20:13
von RSBasic
Du willst also deine alte, geladene Schriftart überschreiben?
Das kannst du ja machen, indem du die gleiche FontID benutzt.

Code: Alles auswählen

LoadFont(1,"arial",12)
LoadFont(1,"arial",30)
Dann hast du immer nur eine geladene Schriftart, die du immerwieder verwenden kannst.
Andernfalls kannst du eine geladene Schriftart auch wieder freigeben und zwar mit: FreeFont()

Re: Loadfont wechseln

Verfasst: 04.04.2011 20:13
von TomS
Geht doch!

Code: Alles auswählen

EnableExplicit

Define EventID

If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
	
	
	
	TextGadget(1,10,10,100,20,"Text",0)
	ButtonGadget(2, 400,0,100,30,"ChangeFont")
	
	LoadFont(1,"arial",12)
	SetGadgetFont(1,FontID(1))
	SetGadgetText(1,"blabla")
	
	LoadFont(2,"arial",6)
	
	
	Repeat
		EventID=WaitWindowEvent()
		If EventID = #PB_Event_CloseWindow
			End
			
		ElseIf EventID = #PB_Event_Gadget
			
			If EventGadget() = 2
				SetGadgetFont(1,FontID(2))
			EndIf 
			
			
		EndIf
	ForEver
EndIf

Re: Loadfont wechseln

Verfasst: 04.04.2011 20:38
von PB42
@RSBasic
Manchmal steht man echt auf dem Schlauch. Werde mir merken, wie's geht. Danke, auch bei TomS.

Re: Loadfont wechseln

Verfasst: 05.04.2011 00:53
von CSHW89
Du hattest übrigens im ersten Post

Code: Alles auswählen

SetGadgetFont(#PB_DEFAULT, FontID(1))
verwendet. Da hätte aber statt #PB_Default die Gadget-ID-Nummer stehen müssen, also

Code: Alles auswählen

SetGadgetFont(X, FontID(1))
Dann hätte es auch funktioniert. #PB_Default ändert den Font für alle Gadget's die nach diesem Aufruf erstellt werden.

lg kevin