Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 823

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
Подскажите,пожалуйста, в чем ошибка.
В первую строку символы добавляются корректно, а во вторую строку нет, добавляются в первую. Как исправить?

Приложение:
  1.  
  2. Memo1.SelStart := length(Memo1.Lines[0]);
  3. Memo1.SelText := '11' end;
  4. Memo1.SelStart := length(Memo1.Lines[0]);
  5. Memo1.SelText := '12' end;
  6. Memo1.SelStart := length(Memo1.Lines[0]);
  7. Memo1.SelText := '13' end;
  8.  
  9. Memo1.SelStart :=length(Memo1.Lines[1]);
  10. Memo1.SelText := '21' end;
  11. Memo1.SelStart := length(Memo1.Lines[1]);
  12. Memo1.SelText := '22' end;
  13. Memo1.SelStart := length(Memo1.Lines[1]);
  14. Memo1.SelText := '23' end;


Hi-tek Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: 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

DNK (статус: Студент), 27 февраля 2010, 16:38 [#2]:

Удаление опухоли мозга через анус! Может сделать всё проще?
Memo1.Lines.Insert(0,'Первая строка111213');
Memo1.Lines.Insert(1,'Вторая строка212223');
"Digital Networked Knight"
Hi-tek

Hi-tek (статус: 1-ый класс), 27 февраля 2010, 17:08 [#3]:

end'ы лишние, просто забыл убрать, в оригинальном коде сложная конструкция.
Hi-tek

Hi-tek (статус: 1-ый класс), 27 февраля 2010, 17:09 [#4]:

DNK, нет, нужно именно реализовать добавление символов в существующую строку.
min@y™

min@y™ (статус: Доктор наук), 27 февраля 2010, 17:14 [#5]:

Цитата (DNK):

Удаление опухоли мозга через анус!

Блин, я гляжу, сага об XYZ - заразная болезнь. Всё больше и больше инфицированных! Эпидемия, товарищи, и, похоже, вакцины нету!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 27 февраля 2010, 17:55 [#6]:

Цитата (Hi-tek):

нужно было для окна установки ПО, для отображения хода установки =))

А здесь не проще ли использовать какой-нить ProgressBar или Gauge? И вообще, именно с такой постановки вопроса надо было начинать.

З.Ы. Админу: Андрюха, ты когда сделаешь возможность прицепа скриншотов? Я бы тут прицепил окно прогресса копирования из Total Commander'a.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
DNK

DNK (статус: Студент), 27 февраля 2010, 17:57 [#7]:

Цитата (Hi-tek):

нужно именно реализовать добавление символов в существующую строку
Сразу бы так.
"Digital Networked Knight"
Hi-tek

Hi-tek (статус: 1-ый класс), 27 февраля 2010, 18:19 [#8]:

ProgressBar присутствует тоже =)
вот вам скриншот что получилось :)
http://win-life.narod.ru/screens/winlife_setupwindow.png

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:28
Выполнено за 0.02 сек.