问题1:用户按下回车,相等于用mouse点击了speedbutton1的click事件呢问题2:程序一开始我们都会打开让用户输入用户名,正确后关闭输入用户名的界面,再打开主界面,
但我出现这样的问题,如果代码是这样
main.ShowModal ;
login.Close;
那么变成直到用户关闭了main后程序才会再关闭login的界面,但这样不太顺啊
如果这样写
main.Show ;
login.Close;
或都这样写
login.close
main.ShowModal ;那么连一个界面都打不开,我想请问大家平时是怎么办的呢?
但我出现这样的问题,如果代码是这样
main.ShowModal ;
login.Close;
那么变成直到用户关闭了main后程序才会再关闭login的界面,但这样不太顺啊
如果这样写
main.Show ;
login.Close;
或都这样写
login.close
main.ShowModal ;那么连一个界面都打不开,我想请问大家平时是怎么办的呢?
解决方案 »
- 把窗体程序做成系统服务。
- 有没有默认时间为空的Delphi时间控件,写到数据库如果未填就为空时间
- 关于table控件的update中重复记录的问题
- 哪里有turbopower的async pro for d6的下载?急用!
- 请各路高手指教,关于ADO连接的问题!
- 如何将十六进制转换为整型?
- Win98蓝屏炸弹的原理及制作方法
- 几个关于数据库编程的技术小问题。
- frreport for d6出错!"invalid variant type conversion!"!在d5下我从来没有遇到这个问题!
- 一个跟OLE无关的DELPHI问题
- 怎样增加TCheckListBox带左面的下拉条和底部的水平拉条的属性?
- Delphi7中怎么做报表?Delphi7中好像没有QReport控件。
初级解决办法:在每个栏位的onkeydown事件内加上:
if KEY = VK_ENTER then Buttonxx.OnClick(Buttonxx);
高级的方法,就是自己写个控件,加个属性什么的,省得每次都要写OnKeyDown事件问题2:在Project的source里写啊
或者在main的FormCreate里写也是可以的,if <not login> then Application.Terminate;
if key = #13 then
begin
button1.onclick(self);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
KeyPreview := True;
end;procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case Key of
VK_RETURN: SpeedButton1.Click;
end;
end;---------------2-------------------program Project1;uses
Forms,
//....
{$R *.res}begin
Application.Initialize;
Application.CreateForm(Tmain, main);
//....
Application.CreateForm(Tlogin, login); //第一个创建的是主窗体//所以要和main换个位置
login.ShowModal;
Application.Run;
end.
button1.onclick(self)中的self指的是目前的focus栏位
但是按照delphi的要求,self应该传的触发事件的对象本身
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
SpeedButton1.OnClick(sender);
end;2: //也是用户关闭了main后程序才会再关闭login的界面
Login.Hide;
Main.ShowModal;
Login.Close;
button1.setfocus;
button1 onkeydownif key=#13 then button1.onclick(button1);
问题2:把登录窗体的创建和显示代码写到main窗体的onshow中 如果登录失败则连主窗体一起close
begin
with TForm2.Create(Self) do
try
Show;
Update;
//验证
finally
Free;
end;
end;
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
SpeedButton1.OnClick(SpeedButton1);
end;2:
Login.Hide;
Main.ShowModal;
Login.Close;