关于如何让空的edit默认值为0!(50分)

  • 主题发起人 大森林
  • 开始时间

大森林

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个二组数据,L11到L44,数据手工输入edit1至edit16,但里面绝大多数是0,我
又不想挨个输入请问:如何才能让空的edit默认值为0,********同时在想输入数据
的时候,能否点一下edit就能清除原来默认的0!!!
另外请问如何在控制之间使用方向键????
请各位高手明示!!!谢了!
 
这种情况只能自己编程实现了,比较烦。
你可以设一个procedure,用它把所有的Edit.Text := '0';
在Edit.OnClick中:if Edit.Text = '0' then
Edit.Text := '';
此外,你说的还不够明白,例如输入的数据大概是怎样的格式,
什么情况下使用方向键?
 
最好的办法是自己写一个Edit控件,继承自Tedit,覆盖Create,让text:=0,
再OnEnter的时候,做if Edit.Text = '0' then
Edit.Text := '';
 
第一个问题应该只要将每个Edit属性text设为0就可以了,Edit的autoSelect属性默认是
设为true的,因此每个edit获得焦点时,都是默认选择了里面的内容(反色显示),你只
要输入新的内容,原来的内容自然就被覆盖掉了。
第二个问题可以onKeyDown中解决:
case key of
VK_UP:showmessage('up key');
VK_DOWN:showmessage('down key');
VK_LEFT:showmessage('left');
VK_RIGHT:showmessage('right');
end;
 
1/写一个过程初始化啊,
2/OnClick事件上清空啊,
3/用KeyDown或KeyUp事件,就可处理方向键等.
 
實現的方法很多啊,先初始化所有的edit值
for i:= 1 to 16 do
(FindComponent('Edit'+intTostr(i)) as Tedit).text:=0
如果你說的點一下的意思事鼠標的話,在Onclick事件裡面
如是是鍵盤的話,可以在Onkeypress事件裡面寫
 
那位高手,把Hunterteam的程序继续下去??急!!
 
其它的我看上面的回答已经差不多了,但你可以考虑使用 TMaskEdit.
剩下的是不是:
是不是按了向上和向左键,移到上一个编辑框中?
 
对,jsxjd说得对,我的意思就是用方向键来把焦点移动到想要到达的地方!!!
 
用这个函数:
SelectNext(Sender as TWinControl,True,True);改一下参数就可以更改顺序
 
在 OnKeyUp 事件中进行处理!
如下设置 Edit1 的 OnkeyUp 事件处理程序:
procedure TForm1.Edit1KeyUp(Sender: TObject;
var Key: Word;
Shift: TShiftState);
var
x:TEdit;
begin
x:=tedit(sender);
if (key=vk_down) or (key=vk_right) then
begin
key:=0;
SelectNext(x,true,false);
end;

if (key=vk_up) or (key=vk_left) then
begin
key:=0;
SelectNext(x,false,false);
end;
end;

然后将每个编辑框的 Onkeyup事件都设置为 Edit1KeyUp !!!
 
多人接受答案了。
 
顶部