![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Стоит задача:
В форме допустим 25 едитов. Пользователь их заполняет и нажимает на кнопку. Далее в мемо должен быть выведен текст каждого едита. В таком формате: edit1.text+','edit2.text+','. И т.п. на выходе должно получится: 123,124 и т.д. Ну, очень запарно писать всё это руками, проще организовать через массив. Вот я накатал такой массив: Код:
for i:=1 to 50 do s:= edit[i].text; form1.script.Lines.Insert(0,s); |
|
#2
|
||||
|
||||
|
На последнем едите сделайте обработку события onExit там пропишите примерно такое:
Код:
Memo1.Text := '';
for i := 0 to Form1.ComponentCount - 1
do if Form1.Componets[i].ClassType = TEdit
then if Memo1.Text <> ''
then Memo1.Text := Memo1.Text+','+TEdit(Form1.Componets[i]).Text
else Memo1.Text := TEdit(Form1.Componets[i]).Text; |
|
#3
|
|||
|
|||
|
Ну код, что вы дали, багнутый, или у меня руки кривые.
В общем попытался поставить, во-первых ничего не работает, т.е. ничего не добавляется, во-вторых, когда вписываешь, что-нибудь в последний едит, то пишет еррор. Дальше попробовал не Онексит поставить, а просто при нажатии на кнопку, сразу стало выдавать ошибку. Вот код, подобрал под свою прогу: Код:
for i := 0 to Form9.ComponentCount - 1 do if Form9.Components[i].ClassType = TEdit then if form1.Script.Text <> '' then form1.Script.Text := form1.script.Text+','+TEdit(Form1.Components[i]).Text else form1.Script.Text := TEdit(Form1.Components[i]).Text; |
|
#4
|
||||
|
||||
|
Ну писал тут без проверки, опечатался в одной буковке. Проверил на реальной проге - все нормально. Вот подправленный вариант:
Код:
Memo1.Text := '';
for i := 0 to Form1.ComponentCount - 1
do if Form1.Components[i].ClassType = TEdit
then if Memo1.Text <> ''
then Memo1.Text := Memo1.Text+','+TEdit(Form1.Components[i]).Text
else Memo1.Text := TEdit(Form1.Components[i]).Text; |
|
#5
|
|||
|
|||
|
В общем я то же проверил, опечатку я уже сразу заметил, у меня там с формами было напутано. Ну что у меня выводит: Когда запалняешь 1 или несколько едитов, то он правильно их пишет, но, он оставляет кучу запятых, и если например заполнил побольше едитов, он вставляет между этими запятыми цифры, вот код:
Код:
for i := 0 to Form9.ComponentCount - 1 do if Form9.Components[i].ClassType = TEdit then if form1.Script.Text <> '' then form1.Script.Text := form1.script.Text+','+TEdit(Form9.Components[i]).Text else form1.Script.Text := TEdit(Form9.Components[i]).Text; ,,,4 shop , //Ну это моя часть, так что не обращай внимание. ,1,1,1,1,1,1,1,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,, Последний раз редактировалось Мяфк, 21.08.2010 в 01:52. |
|
#6
|
||||
|
||||
|
Я так понял, что те едиты в которых нет данных должны пропускаться. Тогда будет так:
Код:
Var i: Integer;
begin
Memo1.Text := '';
for i := 0 to Form1.ComponentCount - 1
do if Form1.Components[i].ClassType = TEdit
then if Memo1.Text <> ''
then begin
if TEdit(Form1.Components[i]).Text <> ''
then Memo1.Text := Memo1.Text+','+TEdit(Form1.Components[i]).Text
end
else Memo1.Text := TEdit(Form1.Components[i]).Text;
end; |