Edit control won't receive Focus

I'm beginning to think this problem is a Delphi problem....
A TBitBtn is pressed, the click event executes a function which does some various tasks, then it sets focus on an Edit control.  Well, the focus never really actually goes to the Edit control.  Why?  What can I do to fix this?

I have tried the following (keep in mind - No other processing/code occurs after the SetFocus.):
-Tested the currently ActiveControl and it actually shows the Edit control (but it still doesn't get focus).
-Executing ProcessMessages before and after the SetFocus.
-Setting focus to the form first, then the control.
-Re-showing the form and setting focus to the control.
bgoldAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

dotanCommented:
Try to set the focus to the edit control from the form by
using:

Form1.FocusControl(Edit1)
bgoldAuthor Commented:
Unfortunately, your idea did not work.  I had also tried SetFocusedControl which also didn't work.  Why do you think the TBitBtn (on an MDI form, by the way) is not allowing focus to go from it to the child form control?  Other buttons work perfectly fine!
phillipfCommented:
Try this to set focus.

form1.activeControl := edit1;


Become a Certified Penetration Testing Engineer

This CPTE Certified Penetration Testing Engineer course covers everything you need to know about becoming a Certified Penetration Testing Engineer. Career Path: Professional roles include Ethical Hackers, Security Consultants, System Administrators, and Chief Security Officers.

paulsinnCommented:
Have you set the 'Tabstop' property to True?

bgoldAuthor Commented:
So far, none of the "obvious" type answers have worked.  Setting the active control did not work either.
BigMadDrongoCommented:
If you send me your project to James_R_Bennett@SBPHRD.COM I'll have a look and see if I can make sense of why it's not recieving focus.

BigMadDrongo
interCommented:
Hi,
The thing you mentioned works fine when tested. Try to set the focus with the following:

PostMessage(Edit1.handle, wm_setfocus,0,0);
Regards,
Igor

bgoldAuthor Commented:
Yes, Inter....that worked!!!  Finally!  If you resubmit it as an answer to my question, I'll award you the points.  By the way, do you have any explanation as to why that was the only thing that worked.  And just for kicks, why would a double-click event in a listbox not fire off?
rickpetCommented:
You should always wrap focus calls around
  if WinControl.CanFocus then
    WinControl.SetFocus;

On to your first question...I would assume that you are doing something in your "function which does some various tasks".  From Danny Thorpe's book, Delphi Component Design..."WM_KillFocus Windows message has the special limitation that you should not cause a focus change while processing that message.  Failure to observe this will crash Windows."  So I would assume your doing something else to kick off a WM_KillFocus message to be processed, and Delphi will not let you move focus.  Now what your doing to kick off this message???

Rick Peterson
interCommented:
Hi friends,
I have currenly no time to find the real cause but I promise it in few days. (Some kind of FINALS I have to pass)
The answer is to use:
PostMessage(Edit1.handle, wm_setfocus,0,0);
Regards,
Igor

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Delphi

From novice to tech pro — start learning today.