如何把50个数组的内容赋给50个Tedit
比如:
edit1.text:=buf[1];
edit2.text:=buf[2];
edit3.text:=buf[3];
edit4.text:=buf[4];
......................
我总不能写50句吧。
怎么循环啊?谢谢
比如:
edit1.text:=buf[1];
edit2.text:=buf[2];
edit3.text:=buf[3];
edit4.text:=buf[4];
......................
我总不能写50句吧。
怎么循环啊?谢谢
解决方案 »
- Delphi中类型如何转换?
- 从另外一台计算机取得图片文件显示在image中,用什么方法最快,欢迎进入!!
- delphi新手问题,,前辈请入````
- 为什么不能执行带有OpenDataSource函数的sql语句
- 如何对DBGRID中某个数据进行操作?
- 托动一个窗体结束后显示一个对话框,请各位大侠显示一个具体的代码,谢大侠了
- 菜鸟问题两个:1、fieldbyname('xx').AsFloat:=xxxx; ……每题25分!
- 如何获取光盘的序列号?
- 200分求购一控件
- 发送数据,高手指点!(正文)
- 提问:请教如何使ListView中listitem的图标和caption并列显示?
- 关于try...Except的问题
I:integer;
//varEdit:TEdit;
EditName:String;
begin
EditName := 'Edit';
for I :=1 to 50 do
begin
TEDIT(EditName+IntToStr(I)).Text := Buf[I];
end;end;试一下,我没有测试,应该差别不大的。。呵呵
TEdit(FindComponent('Edit' + IntToStr(i))).Text := buf[i];
begin
if Components[i] is TEdit then (Components[i]as TEdit).Text=buf[i];
//////循环遍历窗体里面每一个Edit
不过以后使用就方便了。
type TarrEdit=array[1..50] of Tedit;
var arrEdit:TarrEdit;
begin
arrEdit[1]:=edit1;
arrEdit[2];=Edit2;
....
end; 以后使用就可以
for i:=1 to 50 do
arredit[i]:=buf[i];
特殊情况下,如果你的edit1-50的排列是有规律的。
你可以用
j:=0;
for i:=0 to form1.ControlCount-1 do
if self.Controls[i] is tedit then
begin
j:=j+1;
arrEdit[j]:=self.Controls[i] as tedit;
end;
这样就简单了。
begin
tmpedt:=TEdit(FindComponent('Edit' + IntToStr(i)));
tmpedt.Text:= buf[i];
end;
你的代码不对
Components的第i个控件不一定就是Edit[i],如果Form上有别的控件的话
我朋友犯过类似的错误,我帮他改过来的 (不知脸红偷笑中……)
TEdit(FindComponent(format('Edit%d',[i])).Text := buf[i];
你的代码后半部分
j:=0;
for i:=0 to form1.ControlCount-1 do
if self.Controls[i] is tedit then
begin
j:=j+1;
arrEdit[j]:=self.Controls[i] as tedit;
end;
pascal不跟c一样可以在循环内对改变循环变量值的,而且self.Controls[i]的问题跟杰克一样
结论:阿飞正解
TEdit(FindComponent('Edit' + IntToStr(i))).Text := buf[i];
if Components[i] is TEdit then (Components[i]as TEdit).Text:=buf[i];
TEdit(FindComponent('Edit' + IntToStr(i))).Text := buf[i];
這個正解~
一个人老兄,呵呵,看清楚,一个是i,一个是j.
不过我的办法比较笨,二年没用delphi,生疏了。
不好意思
if Components[i] is TEdit then (Components[i]as TEdit).Text:=buf[i];
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
for i:=0 to ComponentCount-1 Do
TEdit(FindComponent('Edit' + IntToStr(i))).Text := buf[i];~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
两个都行......^_^
TEdit(FindComponent('Form2.Edit' + IntToStr(i))).Text := buf[i];
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
For i:=0 to ComponentCount-1 Do
if Components[i] is TEdit then (Components[i]as TEdit).Text:=inttostr(i);
end;
试试看
with form2 do
beign
在用上面的~~循环,不知道 是不是~你想要的。
end;
with form2 do
beign
在用上面的~~循环,不知道 是不是~你想要的。
end;