[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