| 
| 
 | Вопрос # 3 823/ вопрос открыт / | 
 |  Здравствуйте, уважаемые эксперты!Подскажите,пожалуйста, в чем ошибка.
 В первую строку символы добавляются корректно, а во вторую строку нет, добавляются в первую. Как исправить?
 Приложение:Переключить в обычный режим  Memo1.SelStart := length(Memo1.Lines[0]);Memo1.SelText := '11' end;Memo1.SelStart := length(Memo1.Lines[0]);Memo1.SelText := '12' end;Memo1.SelStart := length(Memo1.Lines[0]);Memo1.SelText := '13' end; Memo1.SelStart :=length(Memo1.Lines[1]);Memo1.SelText := '21' end;Memo1.SelStart := length(Memo1.Lines[1]);Memo1.SelText := '22' end;Memo1.SelStart := length(Memo1.Lines[1]);Memo1.SelText := '23' end;
|  |   Вопрос задал: Hi-tek (статус: 1-ый класс)Вопрос отправлен: 27 февраля 2010, 15:38
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: min@y™ Цитата (Hi-tek): нет, нужно именно реализовать добавление символов в существующую строку.
 
 Так бы сразу и сказал. Вот, я набросал прямо в браузере тебе процедурку, пользуйся.
 
 // Вставка подстроки SubStr в строку ALines[Line], начиная с символа номер Index.
// Символы нумеруются с 1 от начала строки ALines[Line].
procedure InsertSubStr(ALines: TStrings; const SubStr: string; const Line, Index: Integer);
var
  Temp: string;
begin
  if Line > ALines.Count - 1
    then Exit;
 
  Temp:= ALines[Line];
  Insert(SubStr, Temp, Index);
  ALines[Line]:= Temp;
end;
 
// Пример использования
Memo1.Lines.Add('Первая строка');
Memo1.Lines.Add('Вторая строка');
InsertSubStr(Memo1.Lines, '11', 0, 5);
InsertSubStr(Memo1.Lines, '22', 1, 7);Если надо просто добавлять куски текста в конец строк, то проще так:
 Memo1.Lines[0]:= Memo1.Lines[0] + '112233';Только ума не разложу, нафига такой изврат нужен. Расскажи, а? 
|  | Ответ отправил: min@y™ (статус: Доктор наук)Время отправки: 27 февраля 2010, 17:34
 Оценка за ответ: 5
 Комментарий к оценке: Memo1.Lines[0]:= Memo1.Lines[0] + '112233';Спасибо огромное!!! То что нужно!
 ps делаю игру, Win Life, симулятор компьютерщика, нужно было для окна установки ПО, для отображения хода установки =))
 |  
 Мини-форум вопросаВсего сообщений: 8; последнее сообщение — 27 февраля 2010, 18:19; участников в обсуждении: 4. 
|   | Ерёмин А.А. (статус: *Администратор), 27 февраля 2010, 16:13 [#1]:А что это вообще такое? Что за end'ы повсеместно? |  
|   | DNK (статус: Студент), 27 февраля 2010, 16:38 [#2]:Удаление опухоли мозга через анус! Может сделать всё проще? Memo1.Lines.Insert(0,'Первая строка111213');
Memo1.Lines.Insert(1,'Вторая строка212223'); "Digital Networked Knight" |  
|   | Hi-tek (статус: 1-ый класс), 27 февраля 2010, 17:08 [#3]:end'ы лишние, просто забыл убрать, в оригинальном коде сложная конструкция. |  
|   | Hi-tek (статус: 1-ый класс), 27 февраля 2010, 17:09 [#4]:DNK, нет, нужно именно реализовать добавление символов в существующую строку. |  
|   | min@y™ (статус: Доктор наук), 27 февраля 2010, 17:14 [#5]: Цитата (DNK): Удаление опухоли мозга через анус! Блин, я гляжу, сага об XYZ - заразная болезнь. Всё больше и больше инфицированных! Эпидемия, товарищи, и, похоже, вакцины нету!
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | min@y™ (статус: Доктор наук), 27 февраля 2010, 17:55 [#6]: Цитата (Hi-tek): нужно было для окна установки ПО, для отображения хода установки =))  А здесь не проще ли использовать какой-нить ProgressBar или Gauge? И вообще, именно с такой постановки вопроса надо было начинать.
 
 З.Ы. Админу: Андрюха, ты когда сделаешь возможность прицепа скриншотов? Я бы тут прицепил окно прогресса копирования из Total Commander'a.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | DNK (статус: Студент), 27 февраля 2010, 17:57 [#7]: Цитата (Hi-tek): нужно именно реализовать добавление символов в существующую строкуСразу бы так. "Digital Networked Knight" |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |