Страница 1 из 1
file.rtf -> RTF Text Control
Добавлено: 28 Февраль 2017, 19:47
vic7tar
Подскажите, пожалуйста, как программно загрузить rtf-файл в RTFTextControl.
file.rtf -> RTF Text Control
Добавлено: 01 Март 2017, 17:26
Игорь Столяров
Привет !
Не совсем понятен вопрос ... Т.н. "RTF-файл" - это обычный текстовый файл ...
Если просто "вручную" работать, то объявляешь текстовую строку и создаешь в окне для нее RTF Control:
Код: Выделить всё
Loc:RTFText CSTRING(8192)
MyWindow Windows
...
TEXT,AT(10,96,256,42),USE(Loc:RTFText),SKIP,BOXED,FLAT,VSCROLL,ALRT(MouseRight),READONLY,RTF(TEXT:FIELD)
...
end
Далее просто загружаешь этот самый текстовый "RTF-файл" в строку Loc:RTFText. И все.
По работе с классами RTF в EXAMPLES есть пример RTFNOTEPAD - где в исходниках все операции показаны.
file.rtf -> RTF Text Control
Добавлено: 01 Март 2017, 19:49
vic7tar
Игорь Столяров писал(а): Далее просто загружаешь этот самый текстовый "RTF-файл" в строку Loc:RTFText. И все.
А как? RTF-файл - это разве обычный текстовый файл?
file.rtf -> RTF Text Control
Добавлено: 01 Март 2017, 19:56
Игорь Столяров
vic7tar писал(а): RTF-файл - это разве обычный текстовый файл?
Да, это текстовый файл, но необычный, а "обогащенный" (rich) разметкой.
Лучше посмотри вот здесь описание:
https://ru.wikipedia.org/wiki/Rich_Text_Format
Работаем с ним как с обычным текстом, загрузку файла в строку уже несколько
раз разбирали на форуме, да и кажется в классах ABC такой метод есть (если не ошибаюсь).
Если, после загрузки RTF файла в строку, ты покажешь ее в виде обычного текста - то увидишь
все служебные символы, разметку, теги и т.д. А если ту же строку покажешь как RTF control -
то она будет отображена по всем (почти) правилам форматирования RTF текста. Вот и все ...

file.rtf -> RTF Text Control
Добавлено: 01 Март 2017, 20:33
vic7tar
Посмотрел rtfctl.clw и понял:
Код: Выделить всё
Load_File CSTRING(255)
...
RTFText.Load(Load_File)
Одного не понял, почему при объявлении в моем модуле RTFControl-а отсутствует процедура Load
Код: Выделить всё
RTFText CLASS(RTFControlClass)
...
LinkPressed PROCEDURE(STRING pLinkText),DERIVED ! Method added to host embed code
LoadFonts PROCEDURE(),DERIVED ! Method added to host embed code
PrintRTF PROCEDURE(<STRING jobname>,BYTE device = TARGET:Printer),LONG,PROC,DERIVED ! Method added to host embed code
...
END
file.rtf -> RTF Text Control
Добавлено: 01 Март 2017, 21:02
Дед Пахом
vic7tar писал(а): Одного не понял, почему при объявлении в моем модуле RTFControl-а отсутствует процедура Load
Процедура Load не виртуальная, в наследном классе объявлять её не нужно.