Am Donnerstag, den 31.01.2008, 08:39 +0200 schrieb A.J. Venter:
> > I haven't looked into the sources deeply, but can't you override some
> > OnKeyXxx-methods to get the key events?
> I don't think there ARE any to overwrite- perhaps in the parent class 
> for TCustomControl, but they aren't republished. If you use override 
> though - you may as well rewrite them as you'll need to do the same work 
> anyway - it doesn't solve the clutter-and-duplicate problem.

Seems to be that way, I couldn't find them either (but I didn't search
for hours or try to understand how it may work ;).

> > If not, maybe hooking into the surrounding forms events would suffice.
> This was my first idea, but unfortunately, it doesn't work at all. The 
> reason is that forms only get keyboard focus onActivate and even then 
> they only keep it if there is no focusable components - else it's 
> hardpassed to the component with focus preference.  Running 
> Form.SetFocus throws an exception (Form cannot take focus) - [why is it 
> there if it cannot be called ?]
> If there is a way to make a form take keyboard focus to itself so it's 
> keyEvents work even if there are focusable components on it then I 
> haven't found it yet.

TForm only get's the events from the keyboard if "KeyPreview" is set,
IIRC. Apparently it's not a good way to go because enforcing key preview
on the form may spoil some other techniques or hinder existing programs
from working.

I hope someone having intimate LCL knowledge can jump in here and
suggest a less intrusive approach...

Marc


_________________________________________________________________
     To unsubscribe: mail [EMAIL PROTECTED] with
                "unsubscribe" as the Subject
   archives at http://www.lazarus.freepascal.org/mailarchives

Reply via email to