|   |   | 
| 
 | v7: 1C++.Трансляция событий от COM-объектов. | ☑ | ||
|---|---|---|---|---|
| 0
    
        ADirks 22.01.14✎ 13:37 | 
        1cpp форум полёг, а похвастаться охота. Напишу тут пока, вдруг пригодится.
 Собственно, subj. События транслируются только от тех объектов, которые поддерживают IProvideClassInfo2 (как и в случае с ActiveX). COM-объект создаём так[code]SvcsvcContainer = СоздатьОбъект("COM_OBject"); SvcsvcContainer.СоздатьОбъект(Сам.ПолучитьБазовыйКласс("Форма.ПолеВыбораЗначения"), "FilterValue", "Svcsvc.Service"); Svcsvc = SvcsvcContainer.Объект; [/code]После чего события будут транслироваться в соотв. процедуры FilterValue_OnChangeFilter(НовыйФильтр, НовыйСостав) FilterValue_OnItemSelect(стр, НовыйСостав) FilterValue_OnTimer(идТаймер) Собственно, FilterValue+Форма.ПолеВыбораЗначения - основное, для чего всё затеяно. Пока. В svcsvc добавлены вышеперечисленные события, и методы таймера CreateTimer([in] LONG nInterval, [in] LONG nTimerID); StopTimer([in] LONG nTimerID); CreateSingleTimer([in] LONG nInterval, [in] LONG nTimerID); //Одноразовый Таймер Так что теперь мы имеем человеческую возможность создания таймера внутри класса. Таймер же нужен для простой вещи: показать реакцию на ввод пользователя в поле выбора по таймауту, а не по количеству символов. В архиве бинарники, добавленные исходники для 1С++, полные исходники svcsvc, примеры использования. http://rusfolder.com/39575096 | |||
| 1
    
        Ёпрст гуру 22.01.14✎ 13:46 | 
        (0) а когда починят, не в курсе ?
 вчера на нехватку памяти жаловался и усё.. скончался :( | |||
| 2
    
        Ёпрст гуру 22.01.14✎ 13:47 | 
        (0) Это для удлбства со ШК ловить события ?..     | |||
| 3
    
        ADirks 22.01.14✎ 13:51 | 
        (1) хорошо, если вообще починят  :~(
 (2) Если есть соотв. COM-сервер, то можно и ШК. Меня в первую очередь именно хитрое поле ввода интересовало. | |||
| 4
    
        Дык ё 22.01.14✎ 13:53 | 
        (3) а чем вк eventproxy от steban не устроила?     | |||
| 5
    
        ADirks 22.01.14✎ 13:56 | 
        (4) не помню уже, что-то не получалось     | |||
| 6
    
        Ёпрст гуру 22.01.14✎ 13:57 | 
        (3) а подробнее про хитрое поле и мини пример ?
 если есть, конечно | |||
| 7
    
        Mikeware 22.01.14✎ 14:00 | 
        (6) Класс у них такой есть. Я приводил примеры неоднократно     | |||
| 8
    
        ADirks 22.01.14✎ 14:02 | 
        (6) схематично так:
 Процедура FilterValue_OnTimer(идТаймер) Экспорт ПоказатьСписокЭлементов(); КонецПроцедуры Функция ПриОтжатииКнопкиКлавиатуры(КодКлавиши, Alt, Shift, Ctrl, Символ, ФСО) Экспорт Если ЭтоБуква(Символ) = 0 Тогда Если КодКлавиши = VK_BACKSPACE Тогда стрПрефиксНаименования = Лев(стрПрефиксНаименования, СтрДлина(стрПрефиксНаименования) - 1); Иначе стрПрефиксНаименования = стрПрефиксНаименования + Символ; КонецЕсли; Svcsvc.CreateSingleTimer(Таймаут, 117); КонецЕсли; Возврат 0; КонецФункции в ПоказатьСписокЭлементов() может выполняеться весьма тяжелый запрос, так что на каждое нажатие не канает. | |||
| 9
    
        ADirks 22.01.14✎ 14:05 | 
        (4) вспомнил, чего не получалось: чтобы обработчик события мог быть классом.     | |||
| 10
    
        КонецЦикла 22.01.14✎ 14:05 | 
        Круто, испробуем на ком-нибудь надеюсь.
 1спп, будем надеяться, починят. | |||
| 11
    
        varelchik 22.01.14✎ 14:13 | 
        Ёпрст раз уже 1сpp лежит, мож ты в курсе кто форум админит.
 Бо у меня на майл.ру ящик хто ломанул. Может ты поможешь сбросить мой ящик у логина varelchik c varelchik@mail.ru на varelchik_f@mail.ru. А то не хочется регистрироваться заново. | |||
| 12
    
        Ёпрст гуру 22.01.14✎ 14:20 | 
        (11) не, я не в теме..
 Раньще fez был, кто сейчас - не в курсе. | |||
| 13
    
        Ёпрст гуру 22.01.14✎ 14:22 | 
        (7) да это то есть у меня, не ясно было просто, зачем таймер сделан.
 (8) ага, ясно.. | |||
| 14
    
        varelchik 22.01.14✎ 14:27 | 
        (12) А хто тоди сайт поднимает?     | |||
| 15
    
        Ёпрст гуру 22.01.14✎ 14:28 | 
        (14) без идей
 :) | |||
| 16
    
        varelchik 22.01.14✎ 14:29 | 
        (15) Жаль.     | |||
| 17
    
        ADirks 22.01.14✎ 14:34 | 
        (13) а OnChangeFilter() не оценил? :)
 моск же всем выносит, особенно поначалу, когда написал "666", стёр, написал "777" - а в списке нет ничего. | |||
| 18
    
        Ёпрст гуру 22.01.14✎ 14:43 | 
        (17) ага, зачетно     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |