|
#1
|
|||
|
|||
Массив из Edit'ов
У меня такой вопрос... Есть на форме 44 Edit'a.Так вот реально как-то циклом записать текст из каждого Edit'a (начиная с первого и заканчивая последним) в файл?????Пробовал так:
Код:
var i:integer; s:shortstring; f:textfile; Mas: Array[1..44] of Tedit; begin AssignFile(f,'C:\123.txt'); ReWrite(f); try for i:=1 to 44 do begin s:=Mas[i].Text; Writeln(f,s); end finally CloseFile(f); end; но ничего не получается! Кидает ошибку "Access violation ......................."!Может кто-то подскажет как решить эту проблему?просто не хочется писать Writeln(f,Edit1.text) и так до 44-го! |
#2
|
||||
|
||||
Код:
procedure TForm1.Button1Click(Sender: TObject); var f: TextFile; i: integer; begin AssignFile( f, 'C:\123.txt' ); Rewrite( f ); for i := 1 to 44 do Writeln( f, TEdit( FindComponent( Format( 'Edit%d', [i] ) ) ).Text ); CloseFile( f ); end; |
#3
|
|||
|
|||
to Decoding
А как найти на форме Editы и записать в НИХ текст??? |
#4
|
||||
|
||||
Цитата:
Так-же, только не читай свойство Text, а устанавливай его! --------------------------------------------- Программирование - не профессия, а стиль жизни |
#5
|
||||
|
||||
To Sam
Вот так: Код:
TEdit(FindComponent('Имя эдита')).Text:='Твой текст'; |
#6
|
|||
|
|||
to Winni
А если надо не в определенный Эдит, а в 100?? Я чисто из интереса проверил твой код, он работает, НО! Если написать: Код:
for i:=1 to 100 do begin TEdit(FindComponent('Edit'+inttostr(i)).Text:=inttostr(i); end; То будет ошибка! Undeclared identifier: 'Text'; Как с этим бороться? |
#7
|
||||
|
||||
Ты забыл поставить ещё одну скобку:
Код:
for i:=1 to 100 do begin TEdit(FindComponent('Edit'+inttostr(i))).Text:=inttostr(i); end; |