<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
        {font-family:"\@SimSun";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
span.EmailStyle17
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;
        color:black;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body bgcolor=white lang=EN-NZ link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:12.0pt;color:#1F497D'>I did go from Delphi 5 to Delphi 7 some time ago, but that’s it.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:12.0pt;color:#1F497D'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext'>From:</span></b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext'> delphi-bounces@listserver.123.net.nz [mailto:delphi-bounces@listserver.123.net.nz] <b>On Behalf Of </b>Pieter De Wit<br><b>Sent:</b> Tuesday, 29 October 2013 7:13 p.m.<br><b>To:</b> delphi@listserver.123.net.nz<br><b>Subject:</b> Re: [DUG] Applicarion.ProcessMessage<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>On 29/10/2013 17:02, Ross Levis wrote:<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal><span style='font-size:12.0pt;color:#1F497D'>I’m wondering if any experts out there can help with this issue.</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:12.0pt;color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-size:12.0pt;color:#1F497D'>I’m loading a 3<sup>rd</sup> party DLL which needs to have Windows messages sent to the DLL from my app for navigation purposes. It has been 10 years since I implemented this code which someone else gave me...</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:12.0pt;color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-size:12.0pt;color:#1F497D'>procedure TEngine.ProcessMessage(var Msg: tagMSG; var Handled: Boolean);</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:12.0pt;color:#1F497D'>begin</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:12.0pt;color:#1F497D'> if not IsChild(Engine.Handle,Msg.hwnd) then</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:12.0pt;color:#1F497D'> try</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:12.0pt;color:#1F497D'> Handled := IsDialogMessage(GetParent(msg.hwnd),Msg);</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:12.0pt;color:#1F497D'> except</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:12.0pt;color:#1F497D'> Handled := False;</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:12.0pt;color:#1F497D'> end;</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:12.0pt;color:#1F497D'>end;</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:12.0pt;color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-size:12.0pt;color:#1F497D'>Application.OnMessage := ProcessMessage;</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:12.0pt;color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-size:12.0pt;color:#1F497D'>Without this the DLL GUI would not show which component had the focus, which was a problem for blind users using the tab key.</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:12.0pt;color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-size:12.0pt;color:#1F497D'>The problem: When the DLL is doing something that takes several seconds, the function above appears to hang waiting for the DLL to finish, and this causes the main thread in my app to also hang.</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:12.0pt;color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-size:12.0pt;color:#1F497D'>Is there any way around that, such as using a separate thread to process these messages? That would be somewhat out of my league.</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:12.0pt;color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:12.0pt;color:#1F497D'>Cheers,</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-size:12.0pt;color:#1F497D'>Ross. </span><o:p></o:p></p><p class=MsoNormal><span style='font-size:12.0pt;color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman","serif"'><br><br><br><o:p></o:p></span></p><pre>_______________________________________________<o:p></o:p></pre><pre>NZ Borland Developers Group - Delphi mailing list<o:p></o:p></pre><pre>Post: <a href="mailto:delphi@listserver.123.net.nz">delphi@listserver.123.net.nz</a><o:p></o:p></pre><pre>Admin: <a href="http://delphi.org.nz/mailman/listinfo/delphi">http://delphi.org.nz/mailman/listinfo/delphi</a><o:p></o:p></pre><pre>Unsubscribe: send an email to <a href="mailto:delphi-request@listserver.123.net.nz">delphi-request@listserver.123.net.nz</a> with Subject: unsubscribe<o:p></o:p></pre></blockquote><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman","serif"'>Hi,<br><br>Have you changed Delphi Versions ? (10 years is a long time :) )<br><br>Cheers,<br><br>Pieter<o:p></o:p></span></p></div></body></html>