Модераторы: Vitalik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Заморочки с SynCompletionProposal. Косячит компонент.... 
:(
    Опции темы
Fenix
Дата 13.7.2006, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 10.7.2006

Репутация: нет
Всего: нет



Доброго вромени суток.
У меня возникла маленькая проллемка с SynCompletionProposal.
В общем когда вызываю сочитанием кнопок все норм... А когда хочу програмно вызвать это окошко, то выскакивает ошибка, или оно неправильно работате... То не заменят символы, то выкидывает ошибку... в общем я вызываю так SynCompletionProposal1.Activate.
Может подругому надо вызывать? или доп действия надо перед вызовом?
Подскажите кто с этим сталкивался smile 
PM MAIL   Вверх
Sep.
Дата 14.7.2006, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 22.7.2004

Репутация: 6
Всего: 6



я вызываю через acNames.ActivateCompletion; 
InsertList и ItemList заполнены заранее, компилится на основе SynMix работает вроде нормально. 
--------------------
Syn - TotalCommander lister plugin |  SynTree - coders sourcebook  
PM MAIL   Вверх
Fenix
Дата 14.7.2006, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 10.7.2006

Репутация: нет
Всего: нет



У меня возник еще один вопрос.
Где в компоненте SynCompletionProposal1 хранятся символы введенные с клавиатуры?
Просто когда я пишу SunEdit1.SelText='<'; то SynCompletionProposal1 игнорирует..... значит он внутри себя хранит их... 
PM MAIL   Вверх
Fenix
Дата 15.7.2006, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 10.7.2006

Репутация: нет
Всего: нет



С этой проблемой разобрался, но всеравно но всеравно надо узнать какое событие срабатывает, когда нажимаю кнопку и SynCompletionProposal1 активен. Т.к. у SynEdit KeyDown несрабатывает в это время... А onCodeCompletion срабатывает только после закрытия. Хотя и хранит все введенные символы... 
PM MAIL   Вверх
Sep.
Дата 16.7.2006, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 22.7.2004

Репутация: 6
Всего: 6



Перехватывать последнюю введеную кнопку можно только подправя исходники SynEdit. Нажатия обрабатываются в форме CodeCompletitionList'a  и текущая строка в SynEdit всегда отстает на одну букву. Поэтому тут onKeyDown не поможет, хоть в SynEdit, хоть на форме. Если очень надо, то можно ловить через WinAPI но зачем? Подменить InsertList в то время как он выводится ты не сможешь, его все равно надо будет рефрешить. 
Расскажи что ты хочешь сделать, тогда тебе будет проще помочь. 
--------------------
Syn - TotalCommander lister plugin |  SynTree - coders sourcebook  
PM MAIL   Вверх
Fenix
Дата 16.7.2006, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 10.7.2006

Репутация: нет
Всего: нет



В общем что я хочу... 
Я делаю прогу для создания HTML страниц...
Сделал, что бы он автоматически открывался когда пользователь нажимает '<'. И хочу сделать что бы автоматически закрывался когда пользователь нажмет '>'. Т.е. я его делаю как помошник, как в делфи окно... но без нажатия на Enter... Тоесть пользователь может выбрать из списка, или если не хочет то просто ввести с клавиатуры... Но когда вводишь с клавиатуры, окно после > не закрывается, и следовательно при следующем теге не открывается....
Мне надо отследить символ > и вызвать SynCompletionProposal1.CancelCompletion.
Подскажи как можно это реализовать... 
PM MAIL   Вверх
Sep.
Дата 19.7.2006, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 22.7.2004

Репутация: 6
Всего: 6



А ты пробовал просто  в SynCompletionProposal.EndOfTokenChar добавить символ '>' ? =) 
--------------------
Syn - TotalCommander lister plugin |  SynTree - coders sourcebook  
PM MAIL   Вверх
Fenix
Дата 19.7.2006, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 10.7.2006

Репутация: нет
Всего: нет



Не подходит.... Т.к. допустим у меня не все теги будут в SynCompletionProposal. И например у меня там не будет тега <b> (но будет тег <br>) а мне надо его ввести.... и получится откроется окошко я ввожу <b и когда введу символ '>', то он не закроет просто окно, а заменит тег <b> на <br>..... так что мне надо просто закрыть окно, без замены....

Добавлено @ 14:55 
А можно какнить узнать сколько в данный момент отображается во всплывающем окне строк? Просто допустим поставить условие, когда 0, то закрыть...  
PM MAIL   Вверх
Sep.
Дата 20.7.2006, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 22.7.2004

Репутация: 6
Всего: 6



То что ты хочешь можно только правя SynEdit. Точно место не подскажу, но например я в procedure TSynBaseCompletionProposalForm.KeyPress убрал срабатывание AutoComplete по Space (#32). Можешь начать оттуда, это файл SynCompletionProposal.pas 
--------------------
Syn - TotalCommander lister plugin |  SynTree - coders sourcebook  
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | SynUniHighlighter и SynEdit | Следующая тема »


 




[ Время генерации скрипта: 0.0878 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.