如何把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句吧。
怎么循环啊?谢谢
解决方案 »
- Windows Media Rights Manager SDK7.1问题,高手相送。
- 谁有 InstallShield Professional6.3的电子档的教程?不会用啊,急啊
- 关于搞过西门子手机6688(6688i)的应用开发
- 我想在一个Memo里面查找某一个特定字符的个数,请问该怎么做?
- 大家开发小软件都使用啥数据库系统?
- 如何制作一个倒计时的进度条, 在线等待, 立即给分!
- 多层程序中,如果服务器突然中断,客户端如何处理?
- 编译中老弹出CPU窗口
- 关于Delphi5.0的QReport里的QuickRep1自定义报表
- ***抢先启动***(先谢了)(系统只允许我给65分...)
- 提问:请教如何使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;