Loadfont wechseln

Anfängerfragen zum Programmieren mit PureBasic.
PB42
Beiträge: 243
Registriert: 13.10.2005 03:21

Loadfont wechseln

Beitrag 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.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Loadfont wechseln

Beitrag 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?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
PB42
Beiträge: 243
Registriert: 13.10.2005 03:21

Re: Loadfont wechseln

Beitrag 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.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Loadfont wechseln

Beitrag 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()
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Re: Loadfont wechseln

Beitrag 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
PB42
Beiträge: 243
Registriert: 13.10.2005 03:21

Re: Loadfont wechseln

Beitrag von PB42 »

@RSBasic
Manchmal steht man echt auf dem Schlauch. Werde mir merken, wie's geht. Danke, auch bei TomS.
Benutzeravatar
CSHW89
Beiträge: 489
Registriert: 14.12.2008 12:22

Re: Loadfont wechseln

Beitrag 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
Bild Bild Bild
http://www.jasik.de - Windows Hilfe Seite
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
Antworten