Вопрос № 87500: Здравствуйте, Эксперты!
Проблема следующая:
Каким образом на форме отобразить текст в формате rtf. Когда я пытаюсь загрузить файл в компонент(TRichEdit). В параметр Lines, то в окне выбора файла из доступный расширений только txt и тому подоб...Вопрос № 87601: Здраствуйте.
Подскажите, как разделить строку, зная что строка выглядит примерно так: "hello | world". В масив записать x[1]='hello' x[2]='world'; (правда строка постоянно разного размера)....Вопрос № 87604: Здравствуйте, Эксперты!
Подскажите как можно отобразить на форме текст с картинками. Раньше я размещал текстовые поля в перемешку с картинками, ставил в форме автопрокрутку и обрабатывал рзмеры и положение всех элементов при изменении размеров фо...
Вопрос № 87.500
Здравствуйте, Эксперты!
Проблема следующая:
Каким образом на форме отобразить текст в формате rtf. Когда я пытаюсь загрузить файл в компонент(TRichEdit). В параметр Lines, то в окне выбора файла из доступный расширений только txt и тому подобное, делаю "все файлы", тогда при открытии выдает ошибку, что не может открыть. Дальше гружу этот же rtf в свойство Text, вначале также, но когда делаю "все файлы" и гружу, то файл загружается. В окне отображается весь синтаксис rtf. Дальше нажимаю ОК. В компоненте отображается форматированный
rtf текст. Если снова открыть св. Text то там обычный текст, без синтаксиса rtf. Если запустить программу то в компоненте отображается простой текст. После завершения программы в режиме проектирования теперь тоже отображается простой текст.
В чем проблема? Почему компонент называется Rich а rtf грузить не хочет.
Решением могло бы быть: Грузить файл после запуска приложения, но мне надо распространять программу одним екзешником.
Какие можете предложить другие варианты, как отобразить форматированный текст. Может другим компонентом? Каким?
Или как засунуть этот файл в экзешник и грузить его оттуда при запуске?
Короче предложите любой способ отобразить форматированный текст(чтоб красиво выглядело) на форме, чтобы делалось это быстро - не клеить кучу лабелов.
Отвечает: Вадим Викторович Витомский
Здравствуйте, Patriotix-N!
Я пользуюсь RxRichEdit из библиотеки RxLib.
Код, приведенный в приложении, у меня работает.
Если не получится найти библиотеку, пишите на cybersoft@rambler.ru - вышлю по почте.
Приложение:
Ответ отправил: Вадим Викторович Витомский (статус: 8-ой класс)
Ответ отправлен: 18.05.2007, 16:36 Оценка за ответ: 4 Комментарий оценки: Не понял что за компонент. Он вшивает файл в екзешник, или что? Надо же пояснить!
Отвечает: Gh0stik
Здравствуйте, Patriotix-N!
Рекомендую Вам прицепить Ваш rtf-файл как ресурс.
Как это сделать:
Создаем файл ресурса в котором хранится исходный rtf-файл.
Создаем текстовый файл допустим rtf.rc
Который содержит например такую строку: RTFDOC RCDATA "data.rtf"
RTFDOC - название нашего ресурса, которое мы будем использовать в программе.
data.rtf - файл который мы упаковываем в ресурс.
Далее компилируем сам ресурс путем такой команды: brcc32.exe rtf.rc
Должен создастся файл rtf.res
Подключаем ресурс к проекту путем приписывания такой строки: ............
implementation
{$R rtf.res}
............
После компиляции проекта файл ресурса будет "вшит" в него.
Чтобы "достать" этот файл и вставить в TRichEdit - достаточно использовать такую процедуру:
procedure TForm1.Button2Click(Sender: TObject);
var rs: TResourceStream;
begin
rs:=TResourceStream.Create(hinstance, 'RTFDOC', RT_RCDATA);
try
Richedit1.PlainText := False;
Richedit1.Lines.LoadFromStream(rs);
finally
rs.Free;
end;
end;
Полный код проекта смотрите в прикрепленном файле.
Good Luck!!!
Прикреплённый файл: Загрузить >> Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа. --------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессор) Украина, Славянск Организация: Славянский государственный педагогический университет (Кафедра алгебры) ICQ: 289363162 ---- Ответ отправлен: 18.05.2007, 18:26 Оценка за ответ: 5 Комментарий оценки: Отлично! Вообще давно хотел научиться прикреплять разные файлы к проекту.
Вопрос № 87.601
Здраствуйте.
Подскажите, как разделить строку, зная что строка выглядит примерно так: "hello | world". В масив записать x[1]='hello' x[2]='world'; (правда строка постоянно разного размера).
Отправлен: 19.05.2007, 10:43
Вопрос задал: Alxx (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 1)
И тогда код для получения результата будет такой: ............
var x:array [1..2] of string;
s:string;
begin
s:='hello | world';
x[1]:=copy(s,1,pos(' | ',s)-1);
delete(s,1,pos(' | ',s)-1+length(' | '));
x[2]:=s;
............
end;
Good Luck!!!
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессор) Украина, Славянск Организация: Славянский государственный педагогический университет (Кафедра алгебры) ICQ: 289363162 ---- Ответ отправлен: 19.05.2007, 10:57
Отвечает: Gsa
Здравствуйте, Alxx!
Используй IsDelimiter и SubString
Ответ отправил: Gsa (статус: 5-ый класс)
Ответ отправлен: 19.05.2007, 12:19
Отвечает: Coupler
Здравствуйте, Alxx!
Посмотрите немного доработанную мной функцию explode из базы статей delphiworld (раздел синтаксис-текст и строки). В примере все полученные слова сохраняются в динамическом массиве. Данное решение подходит для строки любой длины.
Приложение:
Ответ отправил: Coupler (статус: Студент)
Ответ отправлен: 19.05.2007, 15:42
Отвечает: Примак Руслан Николаевич
Здравствуйте, Alxx!
Подобный вопрос уже задавался, там дело касалось значений. Предложу немного другой подход к решению вашей задаче. Поскольку массив у вас строковый, то тут вполне удобно применить TStrings, в частности TStringList.
Приложение:
Ответ отправил: Примак Руслан Николаевич (статус: 1-ый класс)
Ответ отправлен: 21.05.2007, 14:36
Вопрос № 87.604
Здравствуйте, Эксперты!
Подскажите как можно отобразить на форме текст с картинками. Раньше я размещал текстовые поля в перемешку с картинками, ставил в форме автопрокрутку и обрабатывал рзмеры и положение всех элементов при изменении размеров формы. Это очень неудобно! Можно ли с помощью какого-нибудь компонента загрузить текст с картинками, чтобы он сам изменыл размер и имел прокрутку?
Есть ли такой компонент, чтобы загрузить документы формата Ms Word, с картинками, формулами и т.д? И отображать все это на форме.
HTML вариант тоже занимает много времени, поэтому не подходит. А мне надо быстро написать текст, вставить картинки и разместить на форме.