<br><br><div class="gmail_quote">2011/5/22 Zaher Dirkey <span dir="ltr"><<a href="mailto:parmaja@gmail.com">parmaja@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<div dir="ltr"><div class="gmail_quote"><div><div></div><div class="h5">2011/5/22 Max Vlasov <span dir="ltr"><<a href="mailto:max.vlasov@gmail.com" target="_blank">max.vlasov@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">


<br><br><div class="gmail_quote"><div>2011/5/22 Zaher Dirkey <span dir="ltr"><<a href="mailto:parmaja@gmail.com" target="_blank">parmaja@gmail.com</a>></span><br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">




<div dir="ltr"><div class="gmail_quote"><div><div></div><div><div>2011/5/22 Max Vlasov <span dir="ltr"><<a href="mailto:max.vlasov@gmail.com" target="_blank">max.vlasov@gmail.com</a>></span><br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">


<div>


<br><br><div class="gmail_quote"><div>2011/5/22 Zaher Dirkey <span dir="ltr"><<a href="mailto:parmaja@gmail.com" target="_blank">parmaja@gmail.com</a>></span><br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">







<div dir="ltr"><br><div class="gmail_quote"><div><div></div><div><div>2011/5/22 Max Vlasov <span dir="ltr"><<a href="mailto:max.vlasov@gmail.com" target="_blank">max.vlasov@gmail.com</a>></span><br></div>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div>


Hi,<br>I encountered a problem I don't know how to solve.<br><br></div><div>In Delphi I used the following trick. In the WM_Paint before inheried call I got update region with successive calls to GetUpdateRect (to determine if it exists) and GetUpdateRgn afterwards. This allowed to get the correct region before BeginPaint is called (it validates the region so getting it after BeginPaint makes no sense). <br>










<br>But in Lazarus WM_Paint handler already contains DC and also GetUpdateRect call is failed. As I understand, this is because the WindowProc from win32callback.inc already did BeginPaint and provided the dc for the following call to the control WM_Paint. <br>










<br></div><font color="#888888"><br>Max Vlasov<br>
</font><br></blockquote></div></div><div><br>Check Canvas.ClipRect <br> <br></div></div><br></div></blockquote></div><br><br>Zaher, thanks, <br>but this is irrelevant, clipping rects and regions is just  the way to define canvas/device context limiting area until explicitly canceled. It was used by Delphi and (probably) Lazarus to implement TGraphicControl, component working almost as TWinControl but without window handles. <br>


</div>




...<br>Max<br><font color="#888888"><br></font></blockquote></div></div><div><div><br>Not understand u, can u give us an example<br></div></div></div>Thanks<br>-- <br></div></blockquote></div><br><br>Ok, <br>simple form, one button. The following code works in Delphi (press button, redrawing with Alt-Tab or by dragging some other window over this window). In Lazarus it always goes to 'failed'. <br>




My version: with Delphi vcl logic BeginPaint will be inside inherited, with Lazarus it already was before in the non-object WindowProc <br><br>Max<br><br></blockquote></div></div><div><br>In Lazarus i used <br>
procedure Paint; override;<br>
<br>and<br><br>
Canvas.ClipRect;<br><br>It is work for me as Hans-Peter said in his message.<br>
<br></div></div>If you ask about Rgn (Region), it more complected to work on all platforms, i think it is not founded.<br clear="all"><br></div></blockquote></div><br><br>Thanks, I understand that I should avoid any platform-specific code if I want inter-platform compatibility. <br>

<br>Currently I tried to intervene calling SetWindowLong(... GWL_WNDPROC) and inside my "overriden" Window Proc I get the region and call WindowProc and it helped. If anyone knows more "official" way to do this, please let me know. <br>

<br>Max<br>