Don't seem to need that. Perhaps because there are no windows. -----Original Message----- From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On Behalf Of Edward Koryagin Sent: Tuesday, 26 January 2010 2:08 p.m. To: NZ Borland Developers Group - Delphi List Subject: Re: [DUG] manually process Windows messages
WindowProc ? Just don't forget save it and restore back. Edward Koryagin --- On Tue, 26/1/10, Xander (GMail) <xander...@gmail.com> wrote: > From: Xander (GMail) <xander...@gmail.com> > Subject: Re: [DUG] manually process Windows messages > To: "'NZ Borland Developers Group - Delphi List'" <delphi@delphi.org.nz> > Received: Tuesday, 26 January, 2010, 10:33 AM > > > > > > > > > > > > > > > > > > > > > Here is > an extract from a class from a > very old piece of code I have. I vaguely remember > researching the same topic at > the time. See whether this will work for you (just call the > ProcessMessages() > method): > > > > > //------------------------------------------------------------------------------ > > > procedure > TMain.ProcessMessages; > > begin > > > > while ProcessMessage do {loop}; > > end; > > > > > > //------------------------------------------------------------------------------ > > > function > TMain.ProcessMessage: Boolean; > > var > > > > Msg: TMsg; > > begin > > > > Result := False; > > if > PeekMessage(Msg, 0, 0, 0, > PM_REMOVE) then > > > begin > > > Result := True; > > > if Msg.Message > <> WM_QUIT then > > > begin > > > if not > IsHintMsg(Msg) and not IsKeyMsg(Msg) > then > > > begin > > > TranslateMessage(Msg); > > > DispatchMessage(Msg); > > > end; > > > end; > > > end; > > end; > > > > > > //------------------------------------------------------------------------------ > > > function > TMain.IsHintMsg(var Msg: TMsg): > Boolean; > > begin > > > > with Msg do > > > Result := ((Message > >= WM_KEYFIRST) and (Message <= WM_KEYLAST)) > or > > > ((Message > = CM_ACTIVATE) or (Message = CM_DEACTIVATE)) > or > > > (Message > = CM_APPKEYDOWN) or (Message = CM_APPSYSCOMMAND) > or > > > (Message > = WM_COMMAND) or ((Message > WM_MOUSEMOVE) > and > > > (Message > <= WM_MOUSELAST)) or (Message = > WM_NCMOUSEMOVE); > > end; > > > > > > //------------------------------------------------------------------------------ > > > function > TMain.IsKeyMsg(var Msg: TMsg): > Boolean; > > var > > > > WND: HWND; > > begin > > > > Result := False; > > > with Msg do > > > if (Message >= > WM_KEYFIRST) and (Message <= WM_KEYLAST) > and > > > (GetCapture = 0) then > > > begin > > > Wnd := > HWnd; > > > if > SendMessage(Wnd, CN_BASE + Message, WParam, LParam) > <> 0 then > > > Result := True; > > > end; > > end; > > > > > > Cheers > > > Xander > > > > > > > > > > > > > > From: > delphi-boun...@delphi.org.nz > [mailto:delphi-boun...@delphi.org.nz] On Behalf Of Jolyon > Smith > > Sent: > Tuesday, January 26, 2010 > 10:24 AM > > To: ' NZ > Borland Developers Group - Delphi List ' > > Subject: Re: > [DUG] manually > process Windows messages > > > > > > I > wouldn’t expect that at all. I forget the > details of why, but using > the Forms unit unavoidably drags in a whole host of VCL > code. This is > easily tested, just try compiling: > > > > program > Vacuum; > > begin > > end. > > > > And > you get an EXE of 22KB. Simply adding a “uses > Forms;”, even > without referencing anything from the Forms unit in the > “code” and > your equally non-functional vacuum.exe > “explodes” to 382KB > (BDS2006). > > > > Having > said that, 382KB is not exactly excessive > “bloat” in my book. > > > > So > my question for the original poster is what criteria is it > that demands that > the executable absolutely has to avoid this > overhead? > > > > > > > > > > > > > > From: > delphi-boun...@delphi.org.nz > [mailto:delphi-boun...@delphi.org.nz] On Behalf Of John > Bird > > Sent: > Tuesday, 26 January 2010 > 9:55 a.m. > > To: NZ > Borland Developers Group - Delphi List > > Subject: Re: > [DUG] manually > process Windows messages > > > > > > > > > > I > would expect if you > specify Forms (to get Application.ProcessMessages) and only > call that and > nothing else from Forms then you will only get what > functions > are needed linked into your application - I suggest > you try it and see how > much bigger it makes the application. > > > > > > > > > > > > John > > > > > > > > > > > > I’ve > looked at what Application.ProcessMessages does but > I’m not sure what I > need to get this working. Any thoughts appreciated, > or some code J. > > > > > > > > > Thanks, > > > Ross. > > > Tauranga. > > > > > > > > _______________________________________________ > > NZ Borland Developers Group - Delphi mailing > list > > Post: delphi@delphi.org.nz > > Admin: http://delphi.org.nz/mailman/listinfo/delphi > > Unsubscribe: send an email to delphi-requ...@delphi.org.nz > with Subject: > unsubscribe > > > > > > > > > > > > -----Inline Attachment Follows----- > > _______________________________________________ > NZ Borland Developers Group - Delphi mailing list > Post: delphi@delphi.org.nz > Admin: http://delphi.org.nz/mailman/listinfo/delphi > Unsubscribe: send an email to delphi-requ...@delphi.org.nz > with Subject: unsubscribe _______________________________________________ NZ Borland Developers Group - Delphi mailing list Post: delphi@delphi.org.nz Admin: http://delphi.org.nz/mailman/listinfo/delphi Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: unsubscribe _______________________________________________ NZ Borland Developers Group - Delphi mailing list Post: delphi@delphi.org.nz Admin: http://delphi.org.nz/mailman/listinfo/delphi Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: unsubscribe