Solved

Edit control won't receive Focus

Posted on 1998-03-30
10
259 Views
Last Modified: 2010-04-06
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.
0
Comment
Question by:bgold
10 Comments
 

Expert Comment

by:dotan
ID: 1361099
Try to set the focus to the edit control from the form by
using:

Form1.FocusControl(Edit1)
0
 

Author Comment

by:bgold
ID: 1361100
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!
0
 

Expert Comment

by:phillipf
ID: 1361101
Try this to set focus.

form1.activeControl := edit1;


0
 

Expert Comment

by:paulsinn
ID: 1361102
Have you set the 'Tabstop' property to True?

0
 

Author Comment

by:bgold
ID: 1361103
So far, none of the "obvious" type answers have worked.  Setting the active control did not work either.
0
Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

 

Expert Comment

by:BigMadDrongo
ID: 1361104
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
0
 
LVL 5

Expert Comment

by:inter
ID: 1361105
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

0
 

Author Comment

by:bgold
ID: 1361106
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?
0
 
LVL 3

Expert Comment

by:rickpet
ID: 1361107
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
0
 
LVL 5

Accepted Solution

by:
inter earned 150 total points
ID: 1361108
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
0

Featured Post

Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Suggested Solutions

In this tutorial I will show you how to use the Windows Speech API in Delphi. I will only cover basic functions such as text to speech and controlling the speed of the speech. SAPI Installation First you need to install the SAPI type library, th…
Introduction I have seen many questions in this Delphi topic area where queries in threads are needed or suggested. I know bumped into a similar need. This article will address some of the concepts when dealing with a multithreaded delphi database…
Sending a Secure fax is easy with eFax Corporate (http://www.enterprise.efax.com). First, Just open a new email message.  In the To field, type your recipient's fax number @efaxsend.com. You can even send a secure international fax — just include t…
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.

708 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now