Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Как "красиво" убрать глюк прорисовки ActivX (число прочтений - 2173 )
SiriuS
Junior Member
**
Отсутствует



Сообщений: 87
Зарегистрирован: 16. Февраля 2007
Пол: Мужской
Как "красиво" убрать глюк прорисовки ActivX
02. Ноября 2007 :: 12:42
Печать  
Может кто в курсе как "красиво" убрать глюк прорисовки ActivX

В последнее время начал активно пользоваться активиксами в 1С v 7, и сразу же сталкнулся с одной проблемкой что некоторые ActivX не отображаються на форме пока над ними не проведеш мышкай (яркий пример этому VCOLORPICKER (выбор цвета))
После непродолжительного поиска обноружил что данную проблему решают по разному:
- "Игра" с видимостью и доступностью данного реквезита
- Различные способы обновления формы
- Эмуляция передвижения мыши на данный реквезит
кстати вот самый простой способ установки мыши по координатам
Код
Выбрать все
Wrapper = CreateObject("DynamicWrapper");
Wrapper.Register("USER32.DLL", "SetCursorPos", "i=ll", "f=s", "r=l");
Wrapper.SetCursorPos(100,100); 

Все эти способы мне не подошли и я решил продолжить искать более простое решение  Смех
В итоге вот что получилось
Код
Выбрать все
Окно = СоздатьОбъект("Окна");
Окно.ПоложениеОкна(Форма,оЛево,оВерх); 

Вопрос какие еще варианты решения данной проблемы могут быть  
« Последняя редакция: 02. Ноября 2007 :: 14:22 - SiriuS »  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как "красиво" убрать глюк прорисовки ActivX
Ответ #1 - 02. Ноября 2007 :: 13:04
Печать  
Версия 1cpp?
  
Наверх
 
IP записан
 
SiriuS
Junior Member
**
Отсутствует



Сообщений: 87
Зарегистрирован: 16. Февраля 2007
Пол: Мужской
Re: Как "красиво" убрать глюк прорисовки ActivX
Ответ #2 - 02. Ноября 2007 :: 14:21
Печать  
1cpp-2.5.0.3
Кста такой эффект наблюдаю только в терминале, локально все ОК.

Версии 1cpp везде проверил везде 2.5.0.3 и на сервере и локально
.... в принципе я нашел более мене простое решение проблемы но все же ...
  
Наверх
 
IP записан
 
pdk
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 3
Зарегистрирован: 09. Февраля 2007
Re: Как "красиво" убрать глюк прорисовки ActivX
Ответ #3 - 07. Ноября 2007 :: 12:12
Печать  
Наблюдал такое поведение у "MSComctlLib.Toolbar.2" (панель инструментов), в случае если ActivX создавался в процедуре ПослеОткрытия до принудительного изменения размера окна.

Т.е. при таком варианте все нормально

Процедура ПослеОткрытия()

     ФормаРасш=СоздатьОбъект("РасширениеФормы");
     ФормаРасш.УстановитьФорму(Форма);
     ФормаРасш.Максимизирована=1; // Окно максимизируется
     
     СоздатьПанельИнструментов(); // тут создается ActivX
КонецПроцедуры

А при таком возникает описанная проблема

Процедура ПослеОткрытия()

     ФормаРасш=СоздатьОбъект("РасширениеФормы");
     ФормаРасш.УстановитьФорму(Форма);

     СоздатьПанельИнструментов(); // тут создается ActivX

     ФормаРасш.Максимизирована=1; // Окно максимизируется

КонецПроцедуры

1cpp-2.0.3.3, w2k3

  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как "красиво" убрать глюк прорисовки ActivX
Ответ #4 - 07. Ноября 2007 :: 12:27
Печать  
http://www.1cpp.ru/forum/YaBB.pl?num=1183627298/10#10

Проблема для всех микрософтовских активиксов имеет место быть.
Решается просто, делаем атрибут формы невидимым, а после создания активикса видимым.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать