От: | grinfeld |
Кому: | Всем |
Дата: | 10-Feb-2015 |
Тема: | Текстовый редактор в схемах |
Добавлю кое-что к своей первой записи о текстовом редакторе.
Предлагаю поступить с текстовым редактором так, как это сделано в автокаде. В автокаде есть встроенный редактор форматированного многострочного текста, но (главное!) пользователь может в настройках автокада задать путь к любому другому текстовому редактору (к исполняемому файлу .exe). Это очень удобное решение! Во-первых, сочинять собственный текстовый редактор, думаю, - лишняя морока для программиста. Наверняка можно где-то взять код готового, но и здесь есть недостатки, связанные с его глюками и персонификацией (кому-то будет неудобно в нём работать). Если же отказаться от использования встроенного редактора текста и сделать возможность подключения любого внешнего редактора, то любой юзер подключит тот, к которому привык и возможности которого его устраивают. Кого-то вполне устроит виндовый Notepad, кого-то Wordpad (его возможностей для написания текста в схемах - за глаза).
В автокаде внешний редактор работает с многострочным текстом так (упрощённо). Когда пользователь начинает редактировать текст, автокад создаёт временный файл (например, textfile.tmp, копирует в этот файл редактируемый текст, закрывает файл и запускает программу редактора командной строкой, например, "notepad.exe textfile.tmp". После того, как пользователь закроет окно редактора, автокад сам открывает textfile.tmp и копирует его содержимое в многострочный текст в чертеже.
В автокаде есть одно "но". Если многострочный форматированный текст открыть во внешнем редакторе неформатированного текста (например, в Notepad), то всё форматирование слетает - назад в автокад возвращается простой текст без форматирования. Думаю, лучше сделать так, чтобы текст копировался во временный файл в виде гипертекста (htm), т.е. со всеми тегами форматирования и прочими. Такой текст можно будет по-человечески редактировать в каком-нибудь продвинутом редакторе. А в том же Notepad'e его можно будет форматировать, как гипертекст, - вручную изменяя теги форматирования.