Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.01.2011, 19:36   #1
CAMOBAP
Форумчанин
 
Регистрация: 07.12.2010
Сообщений: 115
По умолчанию Memo и Edit (Delphi)

Вот проблема. Есть 6 строк Edit и Memo.В первую строку выводит мемо выводит, а в последующие нет. Как поправить.

Код:
procedure TForm1.sEdit1Change(Sender: TObject);
begin
Memo1.Lines.Strings[0]:=Edit1.Text;
end;

procedure TForm1.sEdit2Change(Sender: TObject);
begin
Memo1.Lines.Strings[1]:=Edit2.Text;
end;

procedure TForm1.sEdit3Change(Sender: TObject);
begin
Memo1.Lines.Strings[2]:=Edit3.Text;
end;

procedure TForm1.sEdit4Change(Sender: TObject);
begin
Memo1.Lines.Strings[3]:=Edit4.Text;
end;

procedure TForm1.sEdit5Change(Sender: TObject);
begin
Memo1.Lines.Strings[4]:=Edit5.Text;
end;

procedure TForm1.sEdit6Change(Sender: TObject);
begin
Memo1.Lines.Strings[5]:=Edit6.Text;
end;

Последний раз редактировалось Stilet; 08.01.2011 в 20:51.
CAMOBAP вне форума Ответить с цитированием
Старый 08.01.2011, 19:45   #2
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Вообще, строке в мемо, можно присваивать значение тогда и только тогда, когда она существует.
Сделай где нибудь(в онкриэйт формы):
Код:
for i:=1 to 5 do
memo1.lines.add('');
или в инспекторе в свойстве Text у Memo сделай ентером 6 пустых строк

Ну а код твой в общем верный. Хотя проще бы было массив Edit'ов задать.
Ненавижу быть как все, но люблю, чтобы все были как я.

Последний раз редактировалось MyLastHit; 08.01.2011 в 20:04.
MyLastHit вне форума Ответить с цитированием
Старый 08.01.2011, 20:39   #3
CAMOBAP
Форумчанин
 
Регистрация: 07.12.2010
Сообщений: 115
По умолчанию

совсем забыл) спасибо большое)
Массивы не совсем знаю и понимаю. Потому сделал так.

Последний раз редактировалось CAMOBAP; 08.01.2011 в 20:53.
CAMOBAP вне форума Ответить с цитированием
Старый 09.01.2011, 15:53   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

один обработчик Onchange на все Edit's
(в Inspector Object указать/выбрать одну и туже процедуру).
и
Код:
memo.lines.text:=edit1.text + #13#10 + edit2.text + .... + #13#10 + edit6.Text;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 09.01.2011, 16:54   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

evg_m, брависсимо, коллега.
Отличный вариант решения!
Одобрям-с!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.01.2011, 18:15   #6
CAMOBAP
Форумчанин
 
Регистрация: 07.12.2010
Сообщений: 115
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
один обработчик Onchange на все Edit's
(в Inspector Object указать/выбрать одну и туже процедуру).
и
Код:
memo.lines.text:=edit1.text + #13#10 + edit2.text + .... + #13#10 + edit6.Text;
очень интересно ,но можно пожалуйста объяснить как работает.
CAMOBAP вне форума Ответить с цитированием
Старый 09.01.2011, 18:40   #7
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

Цитата:
чень интересно ,но можно пожалуйста объяснить как работает.
Цитата:
один обработчик Onchange на все Edit's
будет срабатывать при изменении в любом из перечисленных Edit (edit1,...,Edit6)
Цитата:
edit1.text + #13#10 + edit2.text + .... + #13#10 + edit6.Text;
собираем все тексты(их строковые значения Edit2.Text) в одну строку расставляя между ними перевод строки (#13) и возврат каретки( #10)

Цитата:
Memo1.Lines.Text:=
полученную строку записываем в Memo с очисткой.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 09.01.2011, 18:46   #8
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,484
По умолчанию

[QUOTE=CAMOBAP;707277]очень интересно ,но можно пожалуйста объяснить как работает.[/QUOT]
Принцип работы очень прост:

memo.lines.text:= добавляется текст с едитов разделенных спец символоми #13#10 - которые выполняют перенос строки на 1 пункт ниже, то есть получается, что с каждого нового содержимого edit-а выводится в новой строке. Так же можно все это вделать в цикл если надо использовать много едитов.
uberchel вне форума Ответить с цитированием
Старый 09.01.2011, 18:53   #9
CAMOBAP
Форумчанин
 
Регистрация: 07.12.2010
Сообщений: 115
По умолчанию

Цитата:
Сообщение от uberchel Посмотреть сообщение
memo.lines.text:= добавляется текст с едитов разделенных спец символоми #13#10 - которые выполняют перенос строки на 1 пункт ниже, то есть получается, что с каждого нового содержимого edit-а выводится в новой строке. Так же можно все это вделать в цикл если надо использовать много едитов.
Спасибо) особенно про #13#10 было интересно, так как еще в одном месте в моей программе можно его применить.
CAMOBAP вне форума Ответить с цитированием
Старый 11.01.2011, 21:17   #10
CAMOBAP
Форумчанин
 
Регистрация: 07.12.2010
Сообщений: 115
По умолчанию

А вот еще один вопрос .Скажем есть все те же Edit'ы и кнопка. Как прописать что бы с каждым нажатием оно добавляло строки из едитов в конец мемо, а не заменяло предыдущие?
По схеме такой
Цитата:
Из Edit1
Из Edit2
Из Edit3
Из Edit4
и т.д а потом опять
Из Edit1
Из Edit2
и так далее.
CAMOBAP вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Взаимодействие edit и memo (delphi) CAMOBAP Помощь студентам 1 26.12.2010 22:22
Из memo в Edit Plexdeath Общие вопросы Delphi 3 19.08.2010 14:09
Memo и Edit в Delphi werser Помощь студентам 4 24.08.2009 19:30
Из Edit в Memo HaBiBi Общие вопросы Delphi 2 13.06.2009 15:30
из memo в edit RAVAL)) Общие вопросы Delphi 2 20.01.2009 23:00