edit 如何使用变量改名字 ( 积分: 50 )

  • 主题发起人 主题发起人 crazyworker
  • 开始时间 开始时间
C

crazyworker

Unregistered / Unconfirmed
GUEST, unregistred user!
K:= 1;
while K < 8 do
begin
L:=K;

while L<8 do
begin
L=L+1;

if EditBoxk.Text=EditBoxL.Text then
begin
Application.MessageBox('周转箱号不能相同。','提示',MB_OK);
EditBoxk.SetFocus;
Exit;
end;

end;

K := K + 1;
end;

请问上面的这段代码中的EditBoxk和EditBoxL该怎么改能实现上面的嵌套呢?
总而言之,就是要实现上面的功能,有谁能帮帮忙呀
 
function FindComponent(const AName: string): TComponent;

var
EditK, EditL: TComponent;

EditK := FindComponent('Edit' + IntToStr(K));
EditL := FindComponent('Edit' + IntToStr(L));

if (EditK is TEdit) and (EditL is TEdit) then
if TEdit(EditK).Text = TEdit(EditL).Text then
begin
Application.MessageBox('周转箱号不能相同。','提示',MB_OK);
TEdit(EditK).SetFocus;
end;
 
可以用tag属性来
EditBoxk编号为1~8,EditBoxL编号为9~16
var
K, L: Integer;
Edt_Temp1, Edt_Temp2: TEdit;
Sign_setSame: Boolean;
begin
Sign_setSame := False;
for K := 0 to ComponentCount-1 do
begin
if Sign_setSame then Break; //有相同的了,不用再查了
if Self.Components[K] is TEdit then
begin
Edt_Temp1 := TEdit(Components[K]);
if Edt_Temp1.tag > 8 then Continue;
for L := 0 to ComponentCount-1 do
if Self.Components[L] is TEdit then
begin
Edt_Temp2 := TEdit(Components[L]);
if Edt_Temp2.tag <= 8 then Continue;
if Edt_Temp1.text = Edt_Temp2.text then
begin
Sign_setSame := True; //设置相同的标志
Application.MessageBox('周转箱号不能相同。', '提示', MB_OK);
Edt_Temp1.SetFocus;
Break;
end;
end;
end;
end;
if not Sign_setSame then Application.MessageBox('周转箱号没有相同。', '提示', MB_OK);
end;
 
为什么我用大家的方法都没能解决问题呢,有谁能说明的更详细一点的呢
 
后退
顶部