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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2009, 23:17   #11
.Phoenix
Форумчанин
 
Регистрация: 02.04.2009
Сообщений: 235
По умолчанию

Код:
Strings.Clear;
 Strings.Add('[TITLE SIZE='+IntToStr(TitleSize)+']'+Title+'[/TITLE]');
 Strings.Add('[DESCTRIPTION SIZE='+IntToStr(DescSize)+']'+Description+'[/DESCTRIPTION]');
По моему, может я ошибаюсь но все равно выскажусь, это лишь добавит новую строку. Но исходя из данного приложения, нам необходимо только вставить/добавить одну строку на определённую позицию другой, почему определённую позицию, потому что в "Готовый шаблон" там имеются ещё и BB-коды, которые тоже надо просчитать
Всё гениальное - просто!
.Phoenix вне форума Ответить с цитированием
Старый 20.09.2009, 09:01   #12
Rebel123
C++ новичок
Форумчанин
 
Аватар для Rebel123
 
Регистрация: 13.06.2009
Сообщений: 160
По умолчанию

Цитата:
Сообщение от vovk Посмотреть сообщение
оо либо я чего то не понимаю, либо одно из двух.. кто програму то пишет?
куда тебе надо туда и вставляй...
Программу пишу я).....что значит "куда тебе надо туда и вставляй"...по моему вы меня не так поняли)

Цитата:
По-моему въехал в тему...Но можно же ведь было раньше так объяснить...
У меня есть одна идея, попробуй ею воспользоваться - надеюсь ты знаешь или слышал про оператор вставки Insert(s1,s2,position). Поясню...
s1 вставляемая строка, т.е. ту, что ты хочешь вставить
s2 Строка, в которую ты хочешь вставить
position с какой позиции строки s2 нужно вставить строку s1.
К примеру, пусть Edit1.text, где должно нах-ся Название фильма мы назовём Заголовок, то при нажатии(при переходе)
на "Готовый шаблон" оно будет выполнять следующую операцию
1. Высчитаем нужную нам позицию между BB=кодами
Цитата:
(size=5)(b) Здесь будет располагаться Название фильма(/b)(/size)
(использовал скобки вместо квадратных...)
Часть строки
Цитата:
[size=5][b]
имеет длину 11, я так посчитал, думаю посчитал правильно, если что сорри
2. Вставим нужную строку Insert(Заголовок,Куда надо вставить, с какой позиции)
Но чтобы вставитьв определённую строку, используй свойство Lines в цикле, чтобы иметь доступ как к строке, т.е.
Цитата:
Строка:=Линии(i)
И так далее, возможно будут мнения куда рациональней и лучше чем моя идея, но буду рад услышать, тех кто придумает код куда похитрее чем я...
Надеюсь я правильно тебя понял...
Phoenix спасибо большое, сейчас буду в коде ковыряться !

Последний раз редактировалось Rebel123; 20.09.2009 в 09:04.
Rebel123 вне форума Ответить с цитированием
Старый 20.09.2009, 09:22   #13
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
По моему, может я ошибаюсь но все равно выскажусь, это лишь добавит новую строку.
нет.
вы хоть бы внимательно смотрели код, прежде чем осуждать его.
он переформирует текст по новой.
можно хоть для каждой строки сделать такое.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 20.09.2009, 09:24   #14
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Что-нть типа этого я бы сделал:
Код:
var
   i:integer;
begin
   for I := 0 to Memo1.Lines.Count - 1 do
     if pos('size',memo1.Lines[i])<>0 then
        break;
   memo1.Lines[i]:='(size=5)(b)'+edit1.Text+'(/b)(/size)'
end;
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 20.09.2009, 22:27   #15
Rebel123
C++ новичок
Форумчанин
 
Аватар для Rebel123
 
Регистрация: 13.06.2009
Сообщений: 160
По умолчанию

вот что получилось и не помогло:

Код:
procedure TForm2.TabSheet6Show(Sender: TObject);
var
i:Integer;
begin
Button2.Enabled:=False;
Button3.Enabled:=True;
begin
for i := 0 to RichEdit3.Lines.Count - 1 do
if pos('size',RichEdit3.Lines[i])<>0 then  break;
RichEdit3.Lines[i]:='(size=5)(b)'+edit2.Text+'(/b)(/size)'; // здесь я заменил овальные скобки на квадратные, потому что у меня RichEdit3.Lines именно квадратные скобки
end;
end;
Вот прога которую писали до меня! у него все работает, то есть по моему он не парился как я с этим копированием текста из Edit в RichEdit он просто заюзал Ini
Посмотрите пожалуйста эту прогу, и скажите мне правда ли с Ini можно обойтись без этого гемора?!


Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
допустим формируется так:


в коде делаем процедуру:
Код:
procedure FillText(Strings:TStrings;Title:string='';Description:string='';TitleSize:integer=0;DescSize:integer=0);
begin
 Strings.Clear;
 Strings.Add('[TITLE SIZE='+IntToStr(TitleSize)+']'+Title+'[/TITLE]');
 Strings.Add('[DESCTRIPTION SIZE='+IntToStr(DescSize)+']'+Description+'[/DESCTRIPTION]');
end;
потом просто её вызываем когда надо обновить данные...как параметры берем значения эдитов...иль че там нужно.
немного не до пер! можете пожалуйста по подробнее, или посоветуйте книгу где объясняется как можно скопировать текст с Edit в Memo или RichEdit (ye или что то в этом роде)
Вложения
Тип файла: rar ttcwizardv1.0.rar (396.1 Кб, 5 просмотров)

Последний раз редактировалось Stilet; 21.09.2009 в 09:32.
Rebel123 вне форума Ответить с цитированием
Старый 21.09.2009, 01:33   #16
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вот пример, процедуру можно переделать практически как угодно...хоть то что будут тэги(или части) только если есть чем заполнить его.
Вложения
Тип файла: rar Новая папка.rar (2.7 Кб, 6 просмотров)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.09.2009, 15:49   #17
Rebel123
C++ новичок
Форумчанин
 
Аватар для Rebel123
 
Регистрация: 13.06.2009
Сообщений: 160
По умолчанию

здесь у меня ошибка в коде! не знаю почему! в Словах FillText

Код:
procedure TForm2.FormCreate(Sender: TObject);
begin
FillText (RichEdit3.Lines);
end;
Код:
procedure TForm2.TabSheet5Show(Sender: TObject);
begin
Button3.Enabled:=True;
Button2.Enabled:=True;
FillText(RichEdit3.Lines,Edit1.Text,Edit2.Text,SpinEdit1.Value,SpinEdit2.Value);
end;
Главное то что тут все в порядке:
Код:
procedure FillText (Strings:TStrings;Title:string='';Description:string='';TitleSize:integer=0;DescSize:integer=0);
begin
 Strings.Clear;
 Strings.Add('[TITLE SIZE='+IntToStr(TitleSize)+']'+Title+'[/TITLE]');
 Strings.Add('[DESCTRIPTION SIZE='+IntToStr(DescSize)+']'+Description+'[/DESCTRIPTION]');
end;
Не можете вы ли мне подсказать в чем может быть проблема в Filltext на Form2.Create и на TabSheet5.Show?

Все, я разобрался спасибо!!

Последний раз редактировалось Rebel123; 21.09.2009 в 16:27.
Rebel123 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Из Edit в RichEdit. SanekIrk Компоненты Delphi 4 05.05.2009 18:05
RichEdit обновление текста N!ckeL Общие вопросы Delphi 11 05.02.2009 20:47
Edit,RichEdit + mask Iogan Gamba Puti Win Api 1 10.05.2008 14:45
Форматирование текста в RichEdit. Air Общие вопросы Delphi 2 03.03.2008 15:15