这条程序怎么编,请指教!(100分)

  • 主题发起人 主题发起人 Diana
  • 开始时间 开始时间
D

Diana

Unregistered / Unconfirmed
GUEST, unregistred user!
我在delphi中遇到了一个问题,如:我要把edit1...edit50中的内容写到edit51...eidt100中去,不能一个一个的用 edit51.text:=edit1.text语句,
太麻烦了,有简单的方法吗?如果能用循环语句怎么用呢?请告诉我吧。
Thanks!
 
定义一个数组
var
EditArray :array[1.100] of Tedit;
i:integer;
begin
for i:=1 to 100 do
if components.is Tedit then
editarray:=Tedit(componets);
//注意以上程序EDIT1。。100需要是按TABORDER 1。。100
//顺序
for i:=1 to 50 do
editarray[i+50].text:=editarray.text

end;
 
var
edita:Array[1..100] of Tedit;
i:integer
begin
for i:=0 to components.count-1 do
if components is Tedit then
edita[i+1]:=tedit(components);
//以上千万要注意EDIT1。。100
//在设计时要按顺序生成
for i:=1 to 50 do
edita[i+50].text:=edita.text;
end;
 
这样可以避开创建顺序问题:
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
T1, T2: TComponent;
begin
for I := 1 to 50 do begin
T1 := FindComponent('Edit' + IntToStr(I));
T2 := FindComponent('Edit' + IntToStr(50 + I));
if (T1 <> nil) and (T2 <> nil) and (T1 is TEdit) and (T2 is TEdit) then
TEdit(T2).Text := TEdit(T1).Text;
end;
end;
 
你在写什么程序?
用这么多 Edit 控件,前所未闻!试一试 TStringGrid 啊。
还有,即使用控件数组,在使用之前也要挨个把 Edit 填到数组里边去,又是 100 条语句。
当然你还可以用 ComponentList 做。 :-(
 
如果不是规范命名,还得要写50条语句!:)
不过DQ的方法不错!
 
劝你还是考虑一下TStringGrid 等控件。
我记得上次有人问过,动态Create 50个以上的TEdit 速度非常慢。
搞不懂,用这么多的Edit干嘛?
 
可以把你的目的提出来,让大家帮你参考用什么方法做,用100个edit是在太耗资源了!!
 
同意bobzane
 
做通用编辑器时可能会用到很多编辑控件,取决于编辑的对象
 
其实这个程序只是另一个程序的缩影,我将把这个程序做为模型应用在数据库中的,不只是edit,
还有其他的组件.
 
我是混混,别说我不学无术!
DQ的方法不错,是否可以改进一下:
定义一个1。。100的EDIT指针数组,按类似DQ的方法指向你那众多的EDIT,接下来再做数据内容交换工作。
另:别太抠门了,伙计把这100分给DQ我看可以,DQ混混帮你讨公道,有机会也帮兄弟抬庄啊!拜拜!
 
多人接受答案了。
 
后退
顶部