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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2012, 15:39   #1
Fisherman86
Пользователь
 
Регистрация: 16.03.2012
Сообщений: 38
По умолчанию Текст в конец строки.

Была подобная тема, но вопрос несколько другой.
Мне нужно добавить в выделенном тексте!
Пробую так:
Код:
var 
   i :Integer;
   st2:string;
begin
   st2:='<br>';
for i:=mmo1.SelStart to mmo1.SelLength do
   begin
//-- подстраховываюсь но результат тот-же!
     if  i<>mmo1.SelLength then
    begin
      mmo1.Lines[i]:=mmo1.Lines[i]+st2;
    end
    else
    Exit
   end;
Итог "<br>" расставляется во всем тексте.
В принцепи, что не так и смому понятно, а вот как "одоптировать"???
Fisherman86 вне форума Ответить с цитированием
Старый 23.03.2012, 16:12   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

К вам вопрос
А какая взаимосвязь между позицией курсора и номерами строки?
Если бы там TExt я бы ещё понял, но так не понятно
Да и по какому принципу текст должен вставлятся?
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 23.03.2012, 16:18   #3
Fisherman86
Пользователь
 
Регистрация: 16.03.2012
Сообщений: 38
По умолчанию

Как получить номер "первой выделенной строки" и последней?

Последний раз редактировалось Fisherman86; 23.03.2012 в 16:33.
Fisherman86 вне форума Ответить с цитированием
Старый 23.03.2012, 18:55   #4
xrob
Форумчанин
 
Регистрация: 18.10.2010
Сообщений: 419
По умолчанию

а никак! сами вычисляйте считайте =)
текст в мемо - это такая же строка.
и у вас есть координаты выделенной области в этой строке.
есть символ новой строки, пусть это будет | для наглядности.
ваш текст в мемо - это вот такая строка:
0000000|00000000|0000000000|0000000 00000|00000|0000

в мемо это отображается вот так:
0000000
00000000
0000000000
000000000000
00000
0000

вы выделили что-то в мемо и у вас есть "от" и "до" координаты выделения.
с точки зрения строки это:

0000000|00000000|0000000000|000000000000|00000|0000

а в мемо это отображается вот так:

0000000
00000000
0000000000
00000
0000000
00000
0000

таким образом, сколько | у нас встретится до начала выделения - с такой строки и начинается выделение
как вычислить строку, где заканчивается выделение - догадайтесь сами, мне пора убегать =)
xrob вне форума Ответить с цитированием
Старый 23.03.2012, 19:02   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Код:
if Memo1.SelLength>0 then Memo1.SelText:=Memo1.SelText+'тра-ля-ля';
Или в таком духе
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.03.2012, 19:10   #6
Fisherman86
Пользователь
 
Регистрация: 16.03.2012
Сообщений: 38
По умолчанию

Не вариан ТЕКСТ ПРОИЗВОЛЬНЫЙ,
А надо как в delphi "закомментировать"
Т.е если в строке хоть один символ выделен, то перед строкой
прога "рисует" "//".
В моем случае в конце.
Fisherman86 вне форума Ответить с цитированием
Старый 23.03.2012, 20:12   #7
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Ну а так
Код:
Memo1.Lines.Strings[Memo1.CaretPos.Y] := '//' + Memo1.Lines.Strings[Memo1.CaretPos.Y];
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 23.03.2012, 20:21   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Итог "<br>" расставляется во всем тексте.
Чо то я не понял критерия подстановки...
Тебе нужно выделенную часть текста заменить на некую подстроку во всем тексте где она встречается?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.03.2012, 20:48   #9
Fisherman86
Пользователь
 
Регистрация: 16.03.2012
Сообщений: 38
По умолчанию

Должно быть так:
Текст
Текст
Текст
Текст
Текст

Кпримеру:
Я выделил три строки в середине
и нажал кнопку
в результате:

Текст
Текст<br>
Текст<br>
Текст<br>
Текст
Fisherman86 вне форума Ответить с цитированием
Старый 23.03.2012, 22:06   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Я выделил три строки в середине
и нажал кнопку
Код:
with memo1 do SelText:=StringReplace(SelText,#13#10,'<br>'#13#10,[rfreplaceall]);
Подойдет?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
дан текст.конец ввода f1 заменить все . на ! и найти их количество Casper098 Помощь студентам 1 01.12.2011 06:28
Вводится текст. Конец ввода F6. Найти количество заглавных букв. (Паскаль) Casper098 Помощь студентам 2 06.10.2011 06:03
конец строки andrei100 Общие вопросы C/C++ 1 06.10.2011 00:37
'\0' конец строки rowlin Общие вопросы C/C++ 12 04.06.2011 18:12
Добавить в конец текст Konstantin_Z Microsoft Office Excel 5 01.09.2008 13:10