Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Синтаксис
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 20.08.2010, 15:09
Мяфк Мяфк вне форума
Начинающий
 
Регистрация: 30.05.2010
Сообщения: 102
Репутация: 10
По умолчанию Вывести edit тексты в memo

Стоит задача:
В форме допустим 25 едитов. Пользователь их заполняет и нажимает на кнопку. Далее в мемо должен быть выведен текст каждого едита. В таком формате: edit1.text+','edit2.text+','. И т.п. на выходе должно получится: 123,124 и т.д. Ну, очень запарно писать всё это руками, проще организовать через массив. Вот я накатал такой массив:
Код:
for i:=1 to 50 do
s:= edit[i].text;
form1.script.Lines.Insert(0,s);
дак естественная .text не может быть допустима. Как бороться с этим?
Ответить с цитированием
  #2  
Старый 20.08.2010, 18:42
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

На последнем едите сделайте обработку события 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  
Старый 21.08.2010, 01:21
Мяфк Мяфк вне форума
Начинающий
 
Регистрация: 30.05.2010
Сообщения: 102
Репутация: 10
По умолчанию

Ну код, что вы дали, багнутый, или у меня руки кривые.
В общем попытался поставить, во-первых ничего не работает, т.е. ничего не добавляется, во-вторых, когда вписываешь, что-нибудь в последний едит, то пишет еррор. Дальше попробовал не Онексит поставить, а просто при нажатии на кнопку, сразу стало выдавать ошибку. Вот код, подобрал под свою прогу:
Код:
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  
Старый 21.08.2010, 01:38
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Ну писал тут без проверки, опечатался в одной буковке. Проверил на реальной проге - все нормально. Вот подправленный вариант:
Код:
 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  
Старый 21.08.2010, 01:50
Мяфк Мяфк вне форума
Начинающий
 
Регистрация: 30.05.2010
Сообщения: 102
Репутация: 10
По умолчанию

В общем я то же проверил, опечатку я уже сразу заметил, у меня там с формами было напутано. Ну что у меня выводит: Когда запалняешь 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;
Вот, что получаем на выходе, например при 8 заполненых едитов.
,,,4 shop , //Ну это моя часть, так что не обращай внимание.
,1,1,1,1,1,1,1,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,

Последний раз редактировалось Мяфк, 21.08.2010 в 01:52.
Ответить с цитированием
  #6  
Старый 21.08.2010, 02:00
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Я так понял, что те едиты в которых нет данных должны пропускаться. Тогда будет так:
Код:
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;
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:10.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter