[Gambas-user] Sig #11 when DrawingArea.Width is increased

timothy timothy.marshal-nichols at ...247...
Tue Nov 21 11:48:19 CET 2006


> -----Original Message-----
> From: gambas-user-bounces at lists.sourceforge.net [mailto:gambas-user-
> bounces at lists.sourceforge.net] On Behalf Of Eilert
> Sent: 21 November 2006 09:10
> To: mailing list for gambas users
> Subject: [Gambas-user] Sig #11 when DrawingArea.Width is increased
> 
> Good morning everyone!
> 
> This is happening in the current 1.0 version.
> 
> Here is a piece of code from my current project, "Seite" is a
> DrawingArea where I'm writing text on:
> 
>    draw.Begin(Seite)
> 
>      x = 10 + draw.TextWidth(String.Left(txt[cZ], cS - 1)) - 1
>      y = ((zl - 1) * zh) + 1
> 
>      IF Seite.Width < draw.TextWidth(txt[zl]) + 10 THEN
>        Seite.Width = 10 + draw.TextWidth(txt[zl])
>      END IF
> 
> 
> When it comes to the case that the TextWidth is greater than the
> DrawingArea and it tries to increase it, I get a Sig #11 saying
> 
> QPaintDevice: Cannot destroy paint device that is being painted
> 
> I looked if I might have nested several Draw.Begin()s, but this isn't
> the case here. (It happens at another part and runs through flawlessly
> there.)
> 
> So thank you for all your comments.
> 
> Rolf
>

You can not change the size of a drawing object once you have started
drawing to it with the Draw.Begin(...) method. You will have to stop
drawing to change the size of the object.

	Draw.Begin(Seite)
	x = 10 + draw.TextWidth(String.Left(txt[cZ], cS - 1)) - 1
	y = ((zl - 1) * zh) + 1

	IF Seite.Width < draw.TextWidth(txt[zl]) + 10 THEN
		newWidth = draw.TextWidth(txt[zl])
		Draw.End
		Seite.Width = 10 + newWidth
		Draw.Begin(Seite)
	END IF

Though you could try and re-order things to make it look a lot less ugly
than this!

Thanks

8-{)} Timothy Marshal-Nichols
<mailto: timothy.marshal-nichols at ...247...>








More information about the User mailing list