Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Горячая тема (более 10 ответов) ActiveX. Методы контрола. (число прочтений - 11112 )
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ActiveX. Методы контрола.
Ответ #15 - 14. Июля 2006 :: 09:53
Печать  
Arta писал(а) 14. Июля 2006 :: 09:51:
Эээ... Ничего пободобного не заметил Улыбка Работаю себе и работаю с такими объектами и жужжу... Улыбка

Какие конкретно объекты?
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ActiveX. Методы контрола.
Ответ #16 - 14. Июля 2006 :: 10:03
Печать  
Проблема, наверное все-таки в значениях DISPID для методов.
Значения свойств COM-объектов с большими DISPID получаются нормально.
А вот с методами проблема.
Нашел у себя в системе контрол с большим (ну или отрицательным) значением DISPID метода:
MSComCtl2.UpDown
[id(0xfffffdd8), hidden]
void AboutBox();
Те же грабли - "Поле агрегатного объекта не обнаружено"

Еще пример:
MSComDlg.CommonDialog
[id(0xfffffdd8), hidden]
void AboutBox();

Еще:
Forms.ListBox.1
[id(0xfffffdd6), helpcontext(0x001e858e)]
HRESULT Clear();
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ActiveX. Методы контрола.
Ответ #17 - 14. Июля 2006 :: 10:23
Печать  
Вот блин.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/com/html/e35cb3...
There are three standard methods that controls can support: Refresh, DoClick, and AboutBox. All of these standard methods have negative DISPID values, indicating their standard status.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/com/html/e7085b...
The following dispids are defined for standard events that controls can support: Click, DblClick, KeyDown, KeyPress, KeyUp, MouseMove, MouseUp, and Error. All of these standard events have negative DISPID values, indicating their standard status.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: ActiveX. Методы контрола.
Ответ #18 - 14. Июля 2006 :: 10:33
Печать  
steban писал(а) 14. Июля 2006 :: 10:23:
Вот блин.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/com/html/e35cb3...
There are three standard methods that controls can support: Refresh, DoClick, and AboutBox. All of these standard methods have negative DISPID values, indicating their standard status.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/com/html/e7085b...
The following dispids are defined for standard events that controls can support: Click, DblClick, KeyDown, KeyPress, KeyUp, MouseMove, MouseUp, and Error. All of these standard events have negative DISPID values, indicating their standard status.

А почему тогда событие Click в BTNENH.BtnEnhCtrl.4 работает?
  
Наверх
ICQ  
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ActiveX. Методы контрола.
Ответ #19 - 14. Июля 2006 :: 10:45
Печать  
1С++ получает события от MFC в CWnd::OnCmdMsg...
И вообще свойства, методы и события [b]должны[/b] работать даже если их DISPID зарезервированы MS в каких-то целях.
Хрен знает, почему в 1С это не так :(
Хотя свойства с отрицательными DISPID 1С получает нормально.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: ActiveX. Методы контрола.
Ответ #20 - 14. Июля 2006 :: 10:48
Печать  
Цитата:
Хрен знает, почему в 1С это не так

Адрес бы Хрена узнать... Улыбка
  
Наверх
ICQ  
IP записан
 
КилоГрамм
Senior Member
****
Отсутствует


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
Re: ActiveX. Методы контрола.
Ответ #21 - 03. Августа 2006 :: 18:31
Печать  
Цитата:
Это наверное 3D Active Button Magic ?
Код покажи.

Меня он тоже ОЧЕНЬ заинтересовал. Поставил, проверил, все работает. А вот писать для каждой кнопки все, начиная от формы, и кончая текстом заголовка - тоска...
Так вот я запустил штатный 3D Button Visual Editor, сделал шаблон (кнопа с картинкой), сохранил как Ext.Template, а потом:
Код
Выбрать все
Перем КнопкаОК;
//_____________________________________________________________________________
Процедура ПослеОткрытия() //предопределенная 1с++
	КнопкаОК=СоздатьОбъект("АктивИкс");
	КнопкаОК.ОбработкаСобытий = 1;
	КнопкаОК.УстановитьАтрибут(Форма,"КнОК");
	КнопкаОК.СоздатьЭУ("BTNENH.BtnEnhCtrl.4");
	КнопкаОК.УстановитьФокус();
	КнопкаОК.Объект.LoadTemplateEx("C:\Мои документы\ТМП1.3bt");
	КнопкаОК.Объект.TextDescrCaption.Text = "ОК";
КонецПроцедуры //ПослеОткрытия
//_____________________________________________________________________________
Процедура КнОК_Click()
	Сообщить("ОК");
КонецПроцедуры //КнОК_Click
 


Красота... А без картинки - так просто как Template сохраняю и загружаю через "LoadTemplate"
  

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



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ActiveX. Методы контрола.
Ответ #22 - 03. Августа 2006 :: 20:40
Печать  
не проще создать класс и передавать параметры?
  
Наверх
 
IP записан
 
КилоГрамм
Senior Member
****
Отсутствует


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
Re: ActiveX. Методы контрола.
Ответ #23 - 04. Августа 2006 :: 12:50
Печать  
Цитата:
не проще создать класс и передавать параметры?

Класс у меня есть. Но и даже в нем я использую готовые шаблоны - именно это проще, чем передавать для каждой кнопки 1,5 - 2 десятка параметров. В моем классе параметра только 2: заголовок и файл шаблона.
  

Константин
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 
ОтправитьПечать