<div dir="ltr"><br><br><div class="gmail_quote">On Mon, Mar 8, 2010 at 12:12 AM, Felipe Monteiro de Carvalho <span dir="ltr"><<a href="mailto:felipemonteiro.carvalho@gmail.com">felipemonteiro.carvalho@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im">On Sun, Mar 7, 2010 at 9:21 AM, Michael Van Canneyt<br>
<<a href="mailto:michael@freepascal.org">michael@freepascal.org</a>> wrote:<br>
> It has always pained me to see lazarus' LCL re-introducing the Windows API<br>
> to such an extent.<br>
><br>
> If I was planning Lazarus' future (for clarity: I am not), I would lay out<br>
> for the LCL:<br>
<br>
</div>People need those routines to port component packages mostly. The<br>
Windows API routines are not an end in themselves and they are also<br>
not to be removed (without generating a lot of trouble for people that<br>
need them). The solution is much simpler and elegant: simply provide<br>
as well a native LCL class or extension of existing classes to also<br>
implement the functionality natively in the LCL as well. This can<br>
internally refer to the WinAPI routines, so we don't need 2<br>
implementations of the same thing while exposing 2 APIs for it.<br>
<br></blockquote><div>Yes that help me to port many component to Lazarus.<br>But it can make spicial unit only for those porting components, and for who have more time can replace the function taht call API function to call LCL function<br>
<br>API     FillRect(DC: HDC;....<br>to<br>LCL     FillRect(Canvas: TCanvas;....<br>to <br>Object   Canvas.FillRect(R:TR...)<br><br> <br>Ok i am very slow writing in english :)<br><br></div>-- <br></div>Zaher Dirkey<br>
</div>