巨难问题,非高手勿入,严禁灌水(300分)

  • 主题发起人 主题发起人 3boy
  • 开始时间 开始时间
3

3boy

Unregistered / Unconfirmed
GUEST, unregistred user!
问题如下:
现在有form1,form2,form1上有一个Edit对象,现在要求当我在输入字符在edit中时,
form2动态弹出,并切焦点不转移到form2中,保持焦点总是在edit上边。
 
没有人来回答吗?
 
这有何难?把Form2设为StayOnTop,在Form1.Edit1.OnChange中写
form2.show;
Edit1.SetFocus;
 
setfocus
setactive
 

OK!
Showwindow(form2.handle,SW_SHOWNA);
给分噢!
 
有什么巨难的!
procedure TForm1.Edit1Change(Sender: TObject);
begin
Form2.Show;
windows.SetFocus(form1.handle);
end;
 
这个问题很难吗?还是我没看懂你的意思?
在form1的onchange事件里写:
procedure TForm1.Edit1Change(Sender: TObject);
begin
form2.Show;
edit1.SetFocus;
end;
 
无效,不相信你试。
这个我已经试过了我写的如下;
procedure TFrmHuaJia.EdtMedKeyPress(Sender: TObject;
var Key: Char);
var
Ps:TPoint;
begin
if FrmSwMed=nil then
FrmSwMed:=TFrmSwMed.Create(Application);
ps:=ClientToScreen(Point(EdtMed.Left,GroupBoxMed.Top+EdtMed.Top+EdtMed.Height));
FrmSwMed.Left:=ps.X;
FrmSwMed.Top:=ps.Y;
// FlashWindow(FrmSwMed.Handle,FALSE);
FrmSwMed.Show;
EdtMed.SetFocus;
end;
没有用?
 
憔悴回答的是对的
 
对其他几位同志表示感谢!
 
不能在onkeypress中写,在onchange事件里写
 
多人接受答案了。
 
to 3boy 你看到我的了吗?
 
???总被人家写慢半拍! 晕![:(]
 
怪事,我就这两句,照样操作得好好的:
procedure TForm1.Edit1KeyPress(Sender: TObject;
var Key: Char);
begin
form2.show;
edit1.setfocus;
end;
 
220 大分啊! 5555~~~~~~~~~~~~~~
 
to :3boy
你没有把Form2设为StayOnTop吧!
 
你要的是Form2不被遮盖,而且焦点在Edit1框里是把?
这样的话需要把Form2设为StayOnTop.;
procedure TFrmHuaJia.EdtMedKeyPress(Sender: TObject;
var Key: Char);
var
Ps:TPoint;
begin
if FrmSwMed=nil then
FrmSwMed:=TFrmSwMed.Create(Application);
ps:=ClientToScreen(Point(EdtMed.Left,GroupBoxMed.Top+EdtMed.Top+EdtMed.Height));
FrmSwMed.Left:=ps.X;
FrmSwMed.Top:=ps.Y;
// FlashWindow(FrmSwMed.Handle,FALSE);

FrmSwMed.FormStyle:=fsStayOnTop;

FrmSwMed.Show;
EdtMed.SetFocus;
end;
 
to Itren
你的我试过了结果,form2是弹出了但是,焦点没有转移,但是窗体的绘制会有问题,不行。
 
^_^,赚了!!!!
 
后退
顶部