有2个简单的问题 (30分)

  • 主题发起人 主题发起人 myjane
  • 开始时间 开始时间
M

myjane

Unregistered / Unconfirmed
GUEST, unregistred user!
1、如果我有10个EDIT,在第一个EDIT按下回车,下一个EDIT得到焦点,在得到焦点的EDIT
再按回车,第三个EDIT得到焦点,以此类推。(不要用EDIT.SETFOCUS)
2、DELPHI5.0、SQL2000、WIN2000 SERVER
ADO联接SQL
写好程序如何发布!要详细的步骤
------------------------------------------------------------------------------
关于第2个问题,还望多多说明,98下如何制做,WIN2000下如何制做?分不够可以再加!
 
1、把edit所在窗体的keypreview属性设为true
然后在窗体的onkeydown事件中:if key=13 then
selectnext(activecontrol,true,true)
当然,你的10个edit 控件的tab order属性要依次设好
 
1.可按雪中漫步说的做,也可在不设keypreview,只在其中一个edit的onkeydown事件中
按雪中漫步说的写好语句,然后把每一个edit的onkeydown事件指向该edit的onkeydown事件。
2.用install shield做好安装程序,不必附带任何数据库驱动。如果要安装到win98则要
将Delphi安装盘中一个Ado安装文件(好象叫Mdac什么的)也拷到安装盘中,在安装时将
这个文件也自解压安装上,win2000下已自带了ado驱动,所在无需安装。
 
每一个Edit框都要写太烦了!这样...
在keyDown事件中写入
if ActiveControl is TEdit then
begin
  key:=#0;(如果是其它非输入框的控件,此句不要)
  perform(WM_NEXTDLGCTL,0,0);{移动到下一个控件}
 end;
 
按照sandao老兄的说法,但是其他的edit的onkeypress事件中都要选
edit1的onkeypress事件。
 
忘了讲,控件的TabOrder属性要按你的顺序写好!
 
对不起(怪我没讲),我的keydown事件是Form窗体的事件!一个窗体只写一个!当然这只是其中的一个方法!
你也可以TComponent做一个通用的过程!
// 同样写在窗体的keydown事件中(这样就比较灵活,自已可以控制不同的控件,甚至是让它下拉弹出)
var
I, J: Integer;
I_TabOrder: Integer;
//----------------------
if key = 13 then
begin
for I := 0 to Form7.ComponentCount - 1 do
begin
if (Components.ClassType = TEdit) or (Components.ClassType = TDateTimePicker)
or (Components.ClassType = TComboBox) then
if TEdit(Components).Focused then
begin
I_TabOrder := TEdit(Components).TabOrder;
for J := 0 to Form7.ComponentCount - 1 do
begin
if (Components[J].ClassType = TEdit) or (Components[J].ClassType = TDateTimePicker)
or (Components[J].ClassType = TComboBox) then
if TEdit(Components[J]).TabOrder = (I_TabOrder + 1) then
begin
TEdit(Components[J]).SetFocus;
Exit;
end;
end;
end;
end;
end;
 
把edit所在form的keypreview属性设为true;
form的onkeypress的事件中加入如下代码
if key=#13 then
{ 判断是按执行键}
begin

key:=#0;
perform(WM_NEXTDLGCTL,0,0);{移动到下一个控件}
end;
 
后退
顶部