file.rtf -> RTF Text Control

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
vic7tar
Ветеран
Сообщения: 365
Зарегистрирован: 09 Февраль 2017, 20:12

file.rtf -> RTF Text Control

Сообщение vic7tar »

Подскажите, пожалуйста, как программно загрузить rtf-файл в RTFTextControl.
C10, Win10x64
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8028
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

file.rtf -> RTF Text Control

Сообщение Игорь Столяров »

Привет !

Не совсем понятен вопрос ... Т.н. "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 - где в исходниках все операции показаны.
Make Clarion Great Again ! 😎
Аватара пользователя
vic7tar
Ветеран
Сообщения: 365
Зарегистрирован: 09 Февраль 2017, 20:12

file.rtf -> RTF Text Control

Сообщение vic7tar »

Игорь Столяров писал(а): Далее просто загружаешь этот самый текстовый "RTF-файл" в строку Loc:RTFText. И все.
А как? RTF-файл - это разве обычный текстовый файл?
C10, Win10x64
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8028
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

file.rtf -> RTF Text Control

Сообщение Игорь Столяров »

vic7tar писал(а): RTF-файл - это разве обычный текстовый файл?
Да, это текстовый файл, но необычный, а "обогащенный" (rich) разметкой.
Лучше посмотри вот здесь описание: https://ru.wikipedia.org/wiki/Rich_Text_Format

Работаем с ним как с обычным текстом, загрузку файла в строку уже несколько
раз разбирали на форуме, да и кажется в классах ABC такой метод есть (если не ошибаюсь).

Если, после загрузки RTF файла в строку, ты покажешь ее в виде обычного текста - то увидишь
все служебные символы, разметку, теги и т.д. А если ту же строку покажешь как RTF control -
то она будет отображена по всем (почти) правилам форматирования RTF текста. Вот и все ... :)
Make Clarion Great Again ! 😎
Аватара пользователя
vic7tar
Ветеран
Сообщения: 365
Зарегистрирован: 09 Февраль 2017, 20:12

file.rtf -> RTF Text Control

Сообщение 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
C10, Win10x64
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3288
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

file.rtf -> RTF Text Control

Сообщение Дед Пахом »

vic7tar писал(а): Одного не понял, почему при объявлении в моем модуле RTFControl-а отсутствует процедура Load
Процедура Load не виртуальная, в наследном классе объявлять её не нужно.
С уважением, ДП
Ответить