4 / 4 / 0
Регистрация: 26.12.2014
Сообщений: 471
|
||||||
1 | ||||||
Сохранение форматированного текста RichEdit через SaveDialog06.03.2015, 13:20. Показов 9166. Ответов 74
Метки нет (Все метки)
Переделал код билдера в лазарус.
Посмотрите пожалуйста так это должно выглядеть? Вот исходник на билдере: Сохранение форматированного текста RichEdit через SaveDialog а вот что я думаю в лазарусе должно быть
0
|
06.03.2015, 13:20 | |
Ответы с готовыми решениями:
74
RichEdit и получение от него форматированного текста Передача форматированного текста из Richedit по сети Сохранение форматированного текста из richTextBox Сохранение форматированного текста в FireBird |
Супер-модератор
|
|
11.03.2015, 13:17 | 21 |
Я еще раз повторяю: заморочки - на стороне Word-а, при чем тут Лазарус? Попробуй создать просто в Windows Explorer-е текстовый файл, впечатать в него 'test', прямо по английски, и сохранить в кодировке ANSI. А теперь возьми и открой его через Word... И попробуй мне объяснить, какого черта всплывает это окно "Convert File"? Там простой ANSI, никаких заморочек с кодировками же проще? Нет, Word не хочет этого понимать. Что характерно - он не понимает никакую из доступных мне кодировок файла, ему надо, чтоб пользователь ткнул в строчку, и он тупо откроет файл с выбором пользователя.
Так что это тема не для данного раздела форума. Добавлено через 2 минуты Чтобы текст сохранялся в файле RTF, тебе нужен RichEdit, которого у тебя НЕТ. Ты сохраняешь Memo в обычный текстовый файл, не забудь. То, что ты дал ему другое расширение - Word на это не покупается. Структура файла не та, что должна быть у RTF...
1
|
4 / 4 / 0
Регистрация: 26.12.2014
Сообщений: 471
|
|
11.03.2015, 13:43 [ТС] | 22 |
volvo, значит в txt надо сохранять чтобы заморочек не было. без вариантов. или городуху городить с конвертированием. это я пока еще не умею
0
|
4 / 4 / 0
Регистрация: 26.12.2014
Сообщений: 471
|
|
13.03.2015, 10:08 [ТС] | 23 |
volvo, как жешь не удобно! ну почему нельзя было RichEdit в лазарусе сделать?! такой полезный и нужный компонент!
а если конвертировать это там сложно и много переделывать код надо?
0
|
Супер-модератор
|
|
13.03.2015, 10:47 | 24 |
Он такой полезный и нужный в Windows - потому что обертка над стандартным виндовым RichEdit-ом. Аналога в Qt (под Linux-ом) для него НЕТ. А поскольку Lazarus - кроссплатформенный продукт - то... Сам понимаешь, подобного допустить нельзя, чтобы компонент был под Windows, не был под Linux, и наоборот.
Что конвертировать-то?
1
|
4 / 4 / 0
Регистрация: 26.12.2014
Сообщений: 471
|
|
13.03.2015, 11:29 [ТС] | 25 |
volvo, конвертировать текст русский из поля memo в виндовс кодировку CP1251 и сохранять это в файл rtf сразу. это в виде программного кода сложно будет используя тот самый LConvEncoding про который уже упоминалось? ну чтоб ворд это сразу без лишних заморочек открывал
Добавлено через 12 минут volvo, примеры в инете посмотрел с LConvEncoding. что-то так сходу сразу и не разберусь. подсобите простеньким примерчиком пожалуйста
0
|
Супер-модератор
|
|
13.03.2015, 11:44 | 26 |
У тебя есть полное описание формата RTF? То есть, сохранить в формате RTF - не значит изменить расширение файла на .RTF. Скажем, обычный текст
Hello, world! в RTF-формате выглядит вот так: Код
{\rtf1\adeflang1037\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch0\stshfloch0\stshfhich0\stshfbi0\deflang1033\deflangfe1033{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f36\froman\fcharset238\fprq2 Times New Roman CE;}{\f37\froman\fcharset204\fprq2 Times New Roman Cyr;} {\f39\froman\fcharset161\fprq2 Times New Roman Greek;}{\f40\froman\fcharset162\fprq2 Times New Roman Tur;}{\f41\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f42\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} {\f43\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f44\froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255; \red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;} {\stylesheet{\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch \af0\afs24\alang1037 \ltrch \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 Normal;}{\*\cs10 \additive \ssemihidden Default Paragraph Font;}{\* \ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch \af0\afs20 \ltrch \fs20\lang1024\langfe1024\cgrid\langnp1024\langfenp1024 \snext11 \ssemihidden Normal Table;}}{\*\rsidtbl \rsid2834952} {\*\generator Microsoft Word 10.0.2627;}{\info{\title Hello, world}{\author Volvo}{\operator Volvo}{\creatim\yr2015\mo3\dy13\hr10\min45}{\revtim\yr2015\mo3\dy13\hr10\min46}{\version1}{\edmins1}{\nofpages1}{\nofwords2}{\nofchars12}{\nofcharsws13} {\vern16437}}\paperw11906\paperh16838\ltrsect \widowctrl\ftnbj\aenddoc\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1800\dgvorigin1440\dghshow1\dgvshow1 \jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct\asianbrkrule\rsidroot2834952 \fet0\ltrpar \sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnqc\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnqc\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnqc\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnqc\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnqc\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnqc\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7 \pnlcrm\pnqc\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnqc\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnqc\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch \af0\afs24\alang1037 \ltrch \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch \af0 \ltrch \insrsid2834952 Hello, }{\rtlch \ab\ai\af0 \ltrch \b\i\insrsid2834952\charrsid2834952 world}{\rtlch \af0 \ltrch \insrsid2834952 ! \par }}
1
|
4 / 4 / 0
Регистрация: 26.12.2014
Сообщений: 471
|
|
13.03.2015, 12:27 [ТС] | 27 |
volvo, дааа, заковыристо получается. мне такое и не выговорить! ))
но я не совсем это имел в виду. вот например в том примере что приведен ранее текст сохранялся как UTF8ToSys. для винды кодировка UTF8ToCP1251, но там еще как-то конвертировать надо. а вот как не совсем понятно из тех примеров что удалось найти. примерчик бы доступный чтобы разобраться можно было! и еще один вопрос. вот если получится задать нужную кодировку для открытия он все равно будет при открытии файла в ворде спрашивать какую кодировку использовать или сразу будет открывать без лишних заморочек?
0
|
Супер-модератор
|
|
13.03.2015, 12:47 | 28 |
Просто смена кодировки ничего не даст, так же выскочит окошко "Convert File", в котором пользователю будет предложено выбрать кодировку. Так на кой надо извращаться и конвертировать в Win1251, если пользователь может просто выбрать Unicode, в котором текст сохраняется из TMemo из коробки, безо всяких дополнительных преобразований?
1
|
4 / 4 / 0
Регистрация: 26.12.2014
Сообщений: 471
|
|
13.03.2015, 14:16 [ТС] | 29 |
volvo, выходит нет такой возможности сделать то что я хочу в лазарусе? странно! о_0
0
|
4 / 4 / 0
Регистрация: 26.12.2014
Сообщений: 471
|
|
13.03.2015, 14:55 [ТС] | 31 |
volvo, Это где-то в настройках лазаруса можно включить?
0
|
4 / 4 / 0
Регистрация: 26.12.2014
Сообщений: 471
|
|
13.03.2015, 15:26 [ТС] | 33 |
volvo, и компонент RichEdit в лазарусе появится?
0
|
Супер-модератор
|
|
13.03.2015, 15:30 | 34 |
Компонента RichEdit не существует. Есть компонент TRichEdit. А RICHEDIT - это стандартный виндовый контрол, и работать тебе с ним придется не в стиле Дельфи (положил компонент на форму, и вызываешь его свойства и методы), а в стиле чистого WinAPI (создавать через CreateWindow, посылать сообщения через SendMessage, и так далее... Вручную)
1
|
4 / 4 / 0
Регистрация: 26.12.2014
Сообщений: 471
|
|
13.03.2015, 15:38 [ТС] | 35 |
volvo, неее, ну так не пойдет!
говоря словами винни пуха: "это какие-то неправильные пчелы!"
0
|
Супер-модератор
|
|
13.03.2015, 15:54 | 36 |
Я у тебя в самом начале темы спрашивал, что ты конкретно хочешь писать в этот RTF? Ты молчишь, как партизан. Ну, молчи дальше. А между тем я мог бы тебе помочь. Скажем, из вот такого содержимого SynEdit-а:
можно в пару строк кода получить вот такой RTF: Код
{\rtf1\ansi\deff0\deftab720{\fonttbl{\f0\fmodern Courier New;}} {\colortbl} {\info{\comment Generated by ConTEXT RTF exporter} {\title Untitled}} \deflang1033\pard\plain\f0\fs20 \b begin \par for \b0 i := 1 \b to \b0 n \b do \b0 writeln('test'); \par \b end\b0 . \par } Ну, молчи дальше... От темы отписываюсь, неинтересно. Как будто это МНЕ надо, а не тебе...
1
|
4 / 4 / 0
Регистрация: 26.12.2014
Сообщений: 471
|
|
13.03.2015, 23:54 [ТС] | 37 |
Добавлено через 21 минуту
volvo, теперь правильнее будет сформулировать вопрос о том какой компонент вместо RichEdit использовать чтобы можно было сохранять текст с форматированием в файл odt? от rtf я отказался.
0
|
4 / 4 / 0
Регистрация: 26.12.2014
Сообщений: 471
|
|
16.03.2015, 08:08 [ТС] | 38 |
нееее! сюда я больше не ездец! как это TRichEdit нет?! самый нужный базовый компонент и нет! перехожу обратно на c++builder!
0
|
600 / 548 / 210
Регистрация: 24.01.2012
Сообщений: 1,348
|
|
16.03.2015, 08:19 | 39 |
Тебе уже писали, как работать с odt. Пока визуальный компонент никто не напишет - просто не будет. А trichmemo ты зря проигнорировал, это будет проще всего.
0
|
4 / 4 / 0
Регистрация: 26.12.2014
Сообщений: 471
|
|
16.03.2015, 08:55 [ТС] | 40 |
edukra, самому добавлять компонент trichmemo в лазарус и потом самому пересобирать лазарус! ну это уже слишком!
0
|
16.03.2015, 08:55 | |
16.03.2015, 08:55 | |
Помогаю со студенческими работами здесь
40
Сохранение форматированного текста в двоичный файл Сохранение через SaveDialog Сохранение через savedialog Сохранение файла через SaveDialog Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |