![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Доброго всем дня.
Не могу сообразить как мне данные с Мемо собрать. Вопрос такой, есть Мемо1 и Мемо2, нужно что бы при нажатии на кнопку данные из первых двух собрались в Мемо3. И собрались таким образом. Мемо1.строка1-Мемо2.строка1, Мемо1.строка2-Мемо2.строка2 Мемо1.строка3-Мемо2.строка3 и т.д. Заранее благодарю за помощь. |
|
#2
|
||||
|
||||
|
Код:
memo3.lines.add(memo1.lines[i]+memo2.lines[i]) |
|
#3
|
||||
|
||||
|
Код:
for i := 0 to Memo1.Lines.Count-1 do
Memo3.Lines.Append(Memo1.Lines[i] + '-' + Memo2.Lines[i]); |
| Этот пользователь сказал Спасибо Yurk@ за это полезное сообщение: | ||
fofka (22.06.2013)
| ||
|
#4
|
||||
|
||||
|
Yurk@ Благодарю, то что нужно.
M.A.D.M.A.N. При варианте предложенном Вами перенос происходит таким образом: Мемо1.строка1 Мемо1.строка2 Мемо1.строка3 Мемо2.строка1 Мемо2.строка2 Мемо2.строка3 и т.д. Еще раз благодарю всех за помощь! |
|
#5
|
||||
|
||||
|
Ещё хорошо бы добавить проверку на кол-во строк в Memo2, иначе будет AV, если строк в нём меньше чем в первом
Код:
for i := 0 to Memo1.Lines.Count-1 do if i < Memo2.Lines.Count then Memo3.Lines.Append(Memo1.Lines[i] + '-' + Memo2.Lines[i]); |
|
#6
|
||||
|
||||
|
Цитата:
проверь ![]() |
|
#7
|
||||
|
||||
|
Да ясен пень, что будет List Index Of Bounds, описался просто человек.
|
|
#8
|
||||
|
||||
|
Мад, у меня ни AV, ни List Index Out Of Bounds не вылетает .. все нормально отрабатывает
|
|
#9
|
||||
|
||||
|
Не исключено, что memo2 может быть пуст.
|
|
#10
|
||||
|
||||
|
А ведь и правда, хоть пустой мемо, хоть короткий список в нём, хоть счётчик без минус 1, чудо прям, ...Of Bounds не возникает, проверил только что и возможно из-за того, что семёрка под семёркой собирает, на ХР такое не прокатывало, выход из диапазона возникал обязательно, что-то новенькое
![]() |
|
#11
|
||||
|
||||
|
Alegun, не уверен, но ради тебя могу специально попробовать на ХР
UPD. На ХР реакция такая же что и на 7ке .. ни AV, ни Of Bounds не появилось Последний раз редактировалось Yurk@, 22.06.2013 в 23:33. |
|
#12
|
||||
|
||||
|
И правда, Memo2.Lines[-1] не вызывает ошибки.
А TStringList вызывает. Класс TMemoStrings Код:
function TMemoStrings.Get(Index: Integer): string;
{$IF DEFINED(CLR)}
const
MaxLineBytes = 4096 * 2;
begin
SendGetTextMessage(Memo.Handle, EM_GETLINE, Index, Result, MaxLineBytes);
end;
{$ELSE}
var
Text: array[0..4095] of Char;
begin
Word((@Text)^) := Length(Text);
SetString(Result, Text, SendMessage(Memo.Handle, EM_GETLINE, Index,
LPARAM(@Text)));
end;
{$ENDIF}Все ясно ![]() |
|
#13
|
||||
|
||||
|
Yurk@™, а у меня под ХР эта ошибка есть, проверил, наверное директивы компилятора благополучно сбились, много лет не переустанавливал среду, такие пироги. Извнт, зря паниковсого включил, но ктож знал?
![]() |
|
#14
|
||||
|
||||
|
Цитата:
|