如何简单操作?
新人问题。现在有主从两个窗口,每个窗口中都有很多个Edit控件用来输入数字量,现在我已经完成了限制Edit控件只能输入正确数字量的程序,是通过KeyPress事件完成的,由于Edit控件太多不可能在每个Edit控件的KeyPress事件下输入该段程序。请问如何能实现每个Edit的数字量正确,而且不用在每个KeyPress下输入相同的长段处理程序呢?我想应该和定义一个函数然后调用的方法相同,但不知道如何操作,请指教。谢谢! 问题点数:20、回复次数:7Top
1 楼sl19831983(★★★★★)回复于 2006-09-02 21:58:24 得分 0
可以用函数啊,你把 “而且不用在每个KeyPress下输入相同的长段处理程序” 这部分代码用一个函数来
实现,然后在相应的位置调用函数就可以了嘛。Top
2 楼builderer()回复于 2006-09-02 22:36:38 得分 0
写好的程序中有:Edit1->text="0.";如果用函数的话,Edit1这个应该怎么处理才能应用到Edit2中呢?KeyPress事件中的参数Sender是做什么的?是不是可以通过它来传递KeyPress事件是发生在Edit1还是Edit2?
KeyPress事件中的参数Sender传递的什么?Top
3 楼BlueDeepOcean(蓝色·深海)回复于 2006-09-02 23:26:53 得分 20
1、在你的窗体中,按住Shift键,之后选择你要处理KeyPress事件的所有Edit;
2、在左侧的“Object Inspector”中,选择“Events”页,找到OnKeyPress,在右侧的下拉列表中选择“Edit1KeyPress”即可。Top
4 楼YJS050320001(Thinking)回复于 2006-09-03 08:44:14 得分 0
这样也许可以 把你写的程序:在头文件中声明,然后再.cpp中把需要的那段写出来,
然后再相应的事件中调用即可。Top
5 楼builderer()回复于 2006-09-03 12:52:03 得分 0
BlueDeepOcean(蓝色·深海),你的方法我试过了不行不,输出结果是无论在哪个控件输入,结果只显示在Edit1中.我看了e文的帮助文件,所说的操作和你的差不多.Top
6 楼builderer()回复于 2006-09-03 13:14:43 得分 0
多谢BlueDeepOcean(蓝色·深海).问题解决了.我昨晚是把所有Edit的KeyPress事件集中到form的KeyPress中处理,但一运行就死机.得到蓝色的提醒集中到Edit1中处理,问题解决,用sender来确定是哪个Edit产生的KeyPress事件,同时定义一TEdit的类对象,用来接收sender.代码如下:
TEdit *Edit;
if(Sender==Edit1)
Edit=Edit1;
if(Sender==Edit2)
Edit=Edit2;
if(Key=='.')
{
Edit->Text="0.";
Key=NULL;
Edit->SelStart=2;
}Top
7 楼builderer()回复于 2006-09-03 13:30:14 得分 0
续个附加的.如果两个窗口中的Edit又如何共用呢?Top




