![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Веб-дизайнер
Форумчанин
Регистрация: 11.08.2011
Сообщений: 305
|
![]()
Доброго времени суток.
Пишу реализацию сниппетов для моего приложения. Ну, знаете, эти забавные готовые коды и шаблоны с флажками, вместо которых используется либо текст, либо указать, либо что пользователь пожелает. Разбил работу на два этапа: 1. Считывание и парсинг сниппета на наличие тех самых флажков (%s - выделенная часть строки в редакторе и %f - место фокуса каретки). 2. Присвоение значений флажкам строки и каретки. С первым разобрался, но когда руки дошли до второго, процесс застыл. Для примера, привожу следующее: Код:
Быть может я ошибаюсь, поправьте меня, но мой алгоритм таков: 1. Циклом нахожу часть строки равной %f (получаю ее начало относительно начала самого сниппета) (с помощью Pos) 2. Записываю значения (индексы) найденных флажков в массив, попутно стирая их с текста (пользуясь StringReplace). 3. При нажатии на Tab присваиваю значение каретки самому первому значению в массиве, при повторном - второму и т.д. В целом, это работает. Но вот в чем дело, работает это в случае если пользователь никак не редактировал добавленную в редактор строку. Если же он вписал какое-либо значение id или class (на примере выше), то соответственно индекс найденного выражения %f будет отставать по значению от действительности ровно на к-ство введенных символов. Как можно рационально отслеживать это событие и автоматически смещать индекс? Или может быть мой алгоритм реализации вовсе не верен, может кому-то приходилось сталкиваться с написанием подобных процедур, прошу дать совет. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопрос по mySQL + Вопрос по RichEdit | HTL | Общие вопросы Delphi | 4 | 01.01.2010 20:22 |
Вопрос по С# | S-Nilovs | Общие вопросы .NET | 7 | 20.09.2009 10:19 |
Вопрос ) | RascaL | Помощь студентам | 1 | 30.01.2009 00:24 |
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) | Albert2008 | Общие вопросы Delphi | 4 | 21.08.2008 15:33 |
вопрос по сокетам и общение как в ICQ.Сложный вопрос... | Руслантус | Общие вопросы C/C++ | 2 | 12.08.2008 21:10 |