stringwidth() pb / center label text
BlitzPlus Forums/BlitzPlus Programming/stringwidth() pb / center label text| 
 | ||
| Hi ! Try the following code, i've an 'invalid blitz2d buffer Handle' error message. Could you explain why ? Perhaps have you another idea to center the text into the label ? Thanks ! 
Function Show_info_window(Message$)
	f = LoadFont ("arial",14)
	
	x = (GadgetWidth(Desktop())- 300) / 2
	y = (GadgetHeight(Desktop())- 50) / 2
	Win3 = CreateWindow("Hubitron",x,y,300,50,Desktop(),17)
	SetFont f
	
	w = StringWidth(Message$) ; <- ERROR : invalid blitz2d buffer Handle 
	Lbl = CreateLabel("",(300-w)/2,10,w,20,Win3,0)
	SetGadgetFont lbl, f
	SetGadgetText Lbl, Message$
End Function
Show_info_window("test")
 | 
| 
 | ||
| StringWidth() measures the width in pixels of the internal string image in B+ and B2D/3D.  It isn't used for gadget text. I'm sure there were some commands added to deal with this, but I can't find documentation for them now. | 
| 
 | ||
| You get the error because you don't have a Buffer to draw to. Inserting the following lines after your 'SetFont' statement should fix it: canvas = CreateCanvas ( 0,0,10,10,Desktop() ) HideGadget canvas SetBuffer CanvasBuffer( canvas )This is probably a bug tho' (at least as far as I can tell), so you might want to post it in the bugreport forum aswell. |