请大家帮忙,菜鸟的两个小问题(50分)

  • 主题发起人 主题发起人 冰之河
  • 开始时间 开始时间

冰之河

Unregistered / Unconfirmed
GUEST, unregistred user!
1、要想MaskEdit 只能输入 0,1,3 怎么办,设 EditMask 为0范围太大了。是不是要设它的 OnEnter 或 OnChang 来
检查那太耗资源了,因为有很多框。怎么去掉设 EditMask 为0时框里面出现的下划线(不美观)。

2、大量的 MaskEdit 对对应大量的变量赋值怎么办,不可能一个一个的赋吧,想做个循环如
for i:=1 to 50 do
变量:=MaskEdit.text;
上面的变量是不是只能用数组来做, 那那个MaskEdit[ ] 怎么办,怎么表示......
我不想把赋值放到 MaskEdit 的 OnEnter 或 Onchang 事件里面因为在用户输入完了之后我要求
它们按一个键来确认全部的输入,用 Onchang OnEnter 好不好?
 
1.TNumExit = class(TcustomerEdit)
procedure OnKeyPress;overrider;
procedure OnKeyPress;overrider;
begin
if key in [1..9] do
end;
2.TMyMaskEdit: array of TMaskEdit
 
非常感谢 troyliu
第一个问题 是我想让 MaskEdit 只能输入 0,1,3 这三个数字, 你的第一行什么意思,第二和第三是不小心输入重复吗?。
这个是 每个 MaskEdit 的 OnKeyPress 事件吗? 能用 Actionlist 控件来做吗?

2,那怎么命名 Form 上的那些 MaskEdit
 
1:
最简单的方法是在MaskEdit的OnKeyPress事件中写入如下代码
if not Key in ['0','1','3'] then
begin
key:=#0;
end;
2:
for i=0 to self.componentCount-1 do
begin
if (self.Componets.ClasssName='TMASKEDIT') then
你要操作的数组[]:=TMASKEDIT(Self.Component).Text
end
 
var
i: integer;
begin
for i:=0 to tParent.ComponentCount-1 do
begin
if tParent.Components Is TEdit then
TEdit(tParent.Components).Text:= '';
//如果是TEDIT类,清空Text。
end;
end;
 
kingdeezj 你的回答???? 我是想把大量手工输入的 MaskEdit 里面的数据传到变量里面进行计算
 
算我不懂事.
 
还没有时间试验,不知道以上的做法行不行,如果可以就马上转分给你们
wghmy 你的做法不行吗?
各位,还有什么方法吗?
 
在每个 maskedit 的 ONkeypress 事件里
if not(key='1' or key='0' or key='3') then
begin
key:=#0;
end;

2: 变量要用数组方法上面的几位已经列出来了,
详细的我已经拷贝一份发到你邮箱里面了
 
接受答案了.
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
后退
顶部