![]() |
Модераторы: Vitalik |
![]() ![]() ![]() |
|
Fenix |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 10.7.2006 Репутация: нет Всего: нет |
Доброго вромени суток.
У меня возникла маленькая проллемка с SynCompletionProposal. В общем когда вызываю сочитанием кнопок все норм... А когда хочу програмно вызвать это окошко, то выскакивает ошибка, или оно неправильно работате... То не заменят символы, то выкидывает ошибку... в общем я вызываю так SynCompletionProposal1.Activate. Может подругому надо вызывать? или доп действия надо перед вызовом? Подскажите кто с этим сталкивался ![]() |
|||
|
||||
Sep. |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 22.7.2004 Репутация: 6 Всего: 6 |
я вызываю через acNames.ActivateCompletion;
InsertList и ItemList заполнены заранее, компилится на основе SynMix работает вроде нормально. --------------------
Syn - TotalCommander lister plugin | SynTree - coders sourcebook |
|||
|
||||
Fenix |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 10.7.2006 Репутация: нет Всего: нет |
У меня возник еще один вопрос.
Где в компоненте SynCompletionProposal1 хранятся символы введенные с клавиатуры? Просто когда я пишу SunEdit1.SelText='<'; то SynCompletionProposal1 игнорирует..... значит он внутри себя хранит их... |
|||
|
||||
Fenix |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 10.7.2006 Репутация: нет Всего: нет |
С этой проблемой разобрался, но всеравно но всеравно надо узнать какое событие срабатывает, когда нажимаю кнопку и SynCompletionProposal1 активен. Т.к. у SynEdit KeyDown несрабатывает в это время... А onCodeCompletion срабатывает только после закрытия. Хотя и хранит все введенные символы...
|
|||
|
||||
Sep. |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 22.7.2004 Репутация: 6 Всего: 6 |
Перехватывать последнюю введеную кнопку можно только подправя исходники SynEdit. Нажатия обрабатываются в форме CodeCompletitionList'a и текущая строка в SynEdit всегда отстает на одну букву. Поэтому тут onKeyDown не поможет, хоть в SynEdit, хоть на форме. Если очень надо, то можно ловить через WinAPI но зачем? Подменить InsertList в то время как он выводится ты не сможешь, его все равно надо будет рефрешить.
Расскажи что ты хочешь сделать, тогда тебе будет проще помочь. --------------------
Syn - TotalCommander lister plugin | SynTree - coders sourcebook |
|||
|
||||
Fenix |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 10.7.2006 Репутация: нет Всего: нет |
В общем что я хочу...
Я делаю прогу для создания HTML страниц... Сделал, что бы он автоматически открывался когда пользователь нажимает '<'. И хочу сделать что бы автоматически закрывался когда пользователь нажмет '>'. Т.е. я его делаю как помошник, как в делфи окно... но без нажатия на Enter... Тоесть пользователь может выбрать из списка, или если не хочет то просто ввести с клавиатуры... Но когда вводишь с клавиатуры, окно после > не закрывается, и следовательно при следующем теге не открывается.... Мне надо отследить символ > и вызвать SynCompletionProposal1.CancelCompletion. Подскажи как можно это реализовать... |
|||
|
||||
Sep. |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 22.7.2004 Репутация: 6 Всего: 6 |
А ты пробовал просто в SynCompletionProposal.EndOfTokenChar добавить символ '>' ? =)
--------------------
Syn - TotalCommander lister plugin | SynTree - coders sourcebook |
|||
|
||||
Fenix |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 10.7.2006 Репутация: нет Всего: нет |
Не подходит.... Т.к. допустим у меня не все теги будут в SynCompletionProposal. И например у меня там не будет тега <b> (но будет тег <br>) а мне надо его ввести.... и получится откроется окошко я ввожу <b и когда введу символ '>', то он не закроет просто окно, а заменит тег <b> на <br>..... так что мне надо просто закрыть окно, без замены....
Добавлено @ 14:55 А можно какнить узнать сколько в данный момент отображается во всплывающем окне строк? Просто допустим поставить условие, когда 0, то закрыть... |
|||
|
||||
Sep. |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 22.7.2004 Репутация: 6 Всего: 6 |
То что ты хочешь можно только правя SynEdit. Точно место не подскажу, но например я в procedure TSynBaseCompletionProposalForm.KeyPress убрал срабатывание AutoComplete по Space (#32). Можешь начать оттуда, это файл SynCompletionProposal.pas
--------------------
Syn - TotalCommander lister plugin | SynTree - coders sourcebook |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | SynUniHighlighter и SynEdit | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |