多个TEdit控件集体赋值一点心得不限这种,其实也是星期六散分啊~~~~ (50分)

N

Nizvoo

Unregistered / Unconfirmed
GUEST, unregistred user!
上次回答一个回题,但因为不好找到那个贴,所以另开坛说明。
1.Tag标志法
代码:
  MyData.Str1 := '1';
  MyData.Str2 := '2';
  MyData.Str3 := '3';
  MyData.Str4 := '4';
  MyData.Str5 := '5';
  MyData.Str6 := '6';
  MyData.Str7 := '7';

  for I := 0 to ComponentCount - 1 do
  begin
    FirstData := @(MyData.Str1);
    if Components[I] is TEdit then
    begin
      Inc(FirstData, (Components[I] as TEdit).Tag);
      (Components[I] as TEdit).Text := FirstData^;
    end;
  end;
2.指针方法 定义时要按次序存放
代码:
var
  MyEdit: ^TEdit;
  I: Byte;
begin
  New(MyEdit);
//  ShowMessage('$' + IntToHex(Integer)
//  ShowMessage(IntToStr(SizeOf(TEdit)));
//  ShowMessage('$' + IntToHex(Integer(MyEdit), 8));
//  ShowMessage('$' + IntToHex(Integer(@Edit1), 8));
  MyEdit := @Edit1;
//  ShowMessage('$' + IntToHex(Integer(MyEdit), 8));
  for I := 0 to 6 do
  begin
    MyEdit^.Text := IntToStr(I);
    Inc(MyEdit);
  end;

可能不正确,请指教。批评
 
都是比较常用的方式了
对于第一种,假如你所要操作的Edit只是窗体上的一部分,比如是放在Panel里面的
使用Panel.ComponentCount和Panel.Components不能取到其所要的内容,可采用
Panel.ControlCount和Panel.Controls的方式取得,做同样的操作[:)]
 
萧月禾,还有没有其它的方法????
请都。

谢谢指教。

我没有想那么多。应该起码还有一两种。。。呵呵
 
如果你实现在想找另一种方法的法就试试这个吧:
这个例子需要四个Edit, 一个Button, 四个Edit的名字依次是edit1....edit4;
var find:integer;
begin
for find:=1 to 4 do
(Form1.FindComponent('Edit'+IntToStr(find)) As TEdit).Text :=IntToStr(find);
end;
 
还有没有要说话啊。。。我快鸣金了
 
差不多了收兵把
 
多人接受答案了。
 
顶部