Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Добавить кнопку (число прочтений - 94635 )
xxc
Junior Member
**
Отсутствует



Сообщений: 19
Местоположение: Краснодар
Зарегистрирован: 18. Августа 2012
Пол: Мужской
Добавить кнопку
30. Января 2013 :: 18:04
Печать  
Здравствуйте! Существует ли возможность добавить свою кнопку в Панель инструментов формы?

[img]http://savepic.org/2684664m.png[/img]
  
Наверх
ICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Добавить кнопку
Ответ #1 - 31. Января 2013 :: 05:13
Печать  
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #2 - 01. Февраля 2013 :: 14:35
Печать  
А что кнопка должна делать?
Поскольку добавить-то можно, а вот обработать нажание....пока не уверен.
  
Наверх
 
IP записан
 
xxc
Junior Member
**
Отсутствует



Сообщений: 19
Местоположение: Краснодар
Зарегистрирован: 18. Августа 2012
Пол: Мужской
Re: Добавить кнопку
Ответ #3 - 01. Февраля 2013 :: 20:01
Печать  
MiracleV8 от Abadonna пожалуй сгодится:

http://forum.infostart.ru/bitrix/components/bitrix/forum.interface/show_file.php...

P.S. Благодар за подсказку не мне, а Ёпрст.
  
Наверх
ICQ  
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #4 - 07. Февраля 2013 :: 07:34
Печать  
А можно MiracleV8 куда-нить скинуть, а то скачать не смог.
Если еще и пример будет, то было бы здорово.

У меня пока вот как получилось. Как обычно на DWX+VBS.

PS
Посмотрел, как это работает...видимо, по такому же принципу можно добавлять кнопки в Плавающие Панели.

  

Clipboard06.jpg ( 33 KB | Загрузки )
Clipboard06.jpg
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Добавить кнопку
Ответ #5 - 07. Февраля 2013 :: 07:43
Печать  
NewToolButton(Лево, ИмяКнопки, ФайлКартинки, Хинт) где
Лево: целое - положение слева на тулбаре формы;
ИмяКнопки: строка - любое имя по английски;
ФайлКартинки: спрока - полное имя файла для картинки на кнопку, картинка 16х16
Хинт: строка - хинт (подсказка) кнопки
Кнопка при нажатии генерирует внешнее событие:
Источник="MiracleV8"; Событие="ToolButtonClick"; Данные=ИмяКнопки
Пример:

Код
Выбрать все
Процедура ОбработкаВнешнегоСобытия(Источник,Событие,Данные)
    Если Событие="ToolButtonClick" Тогда
	  Сообщить("Нажата кнопка "+Данные);

    КонецЕсли;
КонецПроцедуры

Процедура Сформировать()
    L.NewToolButton(100,"TBt1","c:\MiracleV8_TestBase77\btpict.bmp","Скрыть форму");
    L.NewToolButton(130,"TBt2","c:\MiracleV8_TestBase77\Закрыть.bmp","Показать форму");
КонецПроцедуры 



©Abadonna

  

MiracleV8.rar ( 1035 KB | Загрузки )
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #6 - 07. Февраля 2013 :: 07:56
Печать  
Eprst, спс!
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #7 - 07. Февраля 2013 :: 08:28
Печать  
А как ее запустить под 77?
Нашел на форуме старый релиз, но там нет методов работы с кнопками тулбара.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Добавить кнопку
Ответ #8 - 07. Февраля 2013 :: 09:57
Печать  

Код
Выбрать все
ЗагрузитьВнешнююКомпоненту("MiracleV8.dll");
L = СоздатьОбъект("AddIn.MiracleClass");
L.NewToolButton(300,"TBt1",4,"Скрыть форму");  

  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Добавить кнопку
Ответ #9 - 07. Февраля 2013 :: 09:57
Печать  
Код
Выбрать все
ЗагрузитьВнешнююКомпоненту("MiracleV8.dll");
ОбжМиракл=СоздатьОбъект("AddIn.MiracleClass");
bmp","Сопоставить цену"); 



обработка нажатий происходит в
Код
Выбрать все
Процедура ОбработкаВнешнегоСобытия(Ист,Событие,Данные)
	Если (Ист="M8_ToolButton")и(Статус<>3) Тогда
		Если Данные="ToolButtonRefresh"		Тогда	ПоказатьИзменения();КонецЕсли;
	КонецЕсли;
КонецПроцедуры 



У нас NewToolButton почему-то не взлетел. Пришлось остаться на старом методе CreateToolButton
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #10 - 07. Февраля 2013 :: 10:14
Печать  
Eprst писал(а) 07. Февраля 2013 :: 09:57:
Код
Выбрать все
ЗагрузитьВнешнююКомпоненту("MiracleV8.dll");
L = СоздатьОбъект("AddIn.MiracleClass");
L.NewToolButton(300,"TBt1",4,"Скрыть форму");  



Ошибка при загрузке компоненты c:\5\MiracleV8.dll. Компонента не загружена.
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Добавить кнопку
Ответ #11 - 07. Февраля 2013 :: 10:52
Печать  
Если это старая версия типа 1.9.... То её нужно зарегистрировать regsvr32. А если это версия старше 2, то по идее она уже сама регистрируется.
У нас 2.1.3.29
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #12 - 07. Февраля 2013 :: 11:05
Печать  
alyuev писал(а) 07. Февраля 2013 :: 10:52:
Если это старая версия типа 1.9.... То её нужно зарегистрировать regsvr32. А если это версия старше 2, то по идее она уже сама регистрируется.
У нас 2.1.3.29


У меня 2.2.0.3
Ладно, фиг с ней.
У меня собственно вопрос вот какой - эти новые кнопки, сделаны абсолютно как в 1С или просто как картинки на тулбаре?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Добавить кнопку
Ответ #13 - 07. Февраля 2013 :: 11:29
Печать  
Ну, как кнопки.. с эффектом нажатия и всё такое

ЗЫ: ты попробуй миракл зарегить всё же.
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #14 - 07. Февраля 2013 :: 11:33
Печать  
Eprst писал(а) 07. Февраля 2013 :: 11:29:
ЗЫ: ты попробуй миракл зарегить всё же.


У меня не регится, может потому что вин7?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Добавить кнопку
Ответ #15 - 07. Февраля 2013 :: 11:49
Печать  
Проверить не на чем пока Печаль
на хрюше регится
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Добавить кнопку
Ответ #16 - 07. Февраля 2013 :: 12:27
Печать  
Лови.
2.1.3.29 - это последняя немедийная версия. Для более новых версий еще нужна компонента bass.dll.
  

MiracleV8_2_1_3_29.zip ( 1226 KB | Загрузки )

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #17 - 07. Февраля 2013 :: 12:52
Печать  
alyuev писал(а) 07. Февраля 2013 :: 12:27:
Лови.
2.1.3.29 - это последняя немедийная версия. Для более новых версий еще нужна компонента bass.dll.


Спасибо, посмотрел.

Я наверное сделаю альтернативный вариант.
Полностью 1С-й, поскольку вроде это не сложно.
  
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Добавить кнопку
Ответ #18 - 07. Февраля 2013 :: 21:52
Печать  
А у меня другой вопрос - как удалить кнопку со штатной панели формы (справочника например)?
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #19 - 08. Февраля 2013 :: 02:21
Печать  
maljaev писал(а) 07. Февраля 2013 :: 21:52:
А у меня другой вопрос - как удалить кнопку со штатной панели формы (справочника например)?


Я тоже думал об этом. Не вижу проблем с удалением из панели, но нужно же еще и из меню (контекстного и главного) удалить.
.
.
.
Проверил - кнопки удаляются без проблем.
« Последняя редакция: 08. Февраля 2013 :: 06:40 - chessman »  
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Добавить кнопку
Ответ #20 - 08. Февраля 2013 :: 07:35
Печать  
А чем удаляются? Miracle?
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #21 - 08. Февраля 2013 :: 08:53
Печать  
maljaev писал(а) 08. Февраля 2013 :: 07:35:
А чем удаляются? Miracle?


DWX+VBS.
Не уверен, что тебе такая конструкция интересна.

  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Добавить кнопку
Ответ #22 - 08. Февраля 2013 :: 08:56
Печать  
Улыбка Почему? У него ж даже в подписи указано "Хочется изврата..." Улыбка
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #23 - 08. Февраля 2013 :: 09:34
Печать  
alyuev писал(а) 08. Февраля 2013 :: 08:56:
Улыбка Почему? У него ж даже в подписи указано "Хочется изврата..." Улыбка

Улыбка

Пробный вариант. Класс и обработка в архиве.
  

ToolBar.ZIP ( 8 KB | Загрузки )
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Добавить кнопку
Ответ #24 - 08. Февраля 2013 :: 09:48
Печать  
Надо подпись поменять на "меня уже тошнит от 1С, пойду работать грузчиком" Улыбка
За инструкции спасибо. Любой изврат в жизни пригодится.
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Добавить кнопку
Ответ #25 - 08. Февраля 2013 :: 09:56
Печать  
Я так понимаю кнопки должны отрабатывать свои действия? Например, открыться калькулятор? Но у меня ничего не происходит. Просто выдается сообщение "WM_COMMAND, wParam = 1004C" и всё.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #26 - 08. Февраля 2013 :: 10:13
Печать  
alyuev писал(а) 08. Февраля 2013 :: 09:56:
Я так понимаю кнопки должны отрабатывать свои действия? Например, открыться калькулятор? Но у меня ничего не происходит. Просто выдается сообщение "WM_COMMAND, wParam = 1004C" и всё.


Пока это только тестовое сообщение, которое показывает, что кнопка нажимается.
Сюда можно прикрутить "системные действия 1С" ( не знаю, как это правильно назвать). Нужно просто знать их ID (через ресурсы можно посмотреть). Я обнаружил для себя, что оказывается можно вызвать диалог редактированя списка пользователей в режиме предприятия и его редактировать, как в Конфигураторе.
То, что касается "своих" действий, то я планирую сделать это через Контекст формы (не нравится мне ОбработкаВнешнегоСобытия).
Еще нужно разобраться с тултипами и статус строкой.
 
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Добавить кнопку
Ответ #27 - 08. Февраля 2013 :: 10:32
Печать  
Ну, rwjets аналогично работает - там тоже можно кнопки понадобавлять,  на счет списка пользователя в предприятии - ужо всё есть:
http://infostart.ru/public/16930/
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #28 - 08. Февраля 2013 :: 10:48
Печать  
Eprst писал(а) 08. Февраля 2013 :: 10:32:
Ну, rwjets аналогично работает - там тоже можно кнопки понадобавлять
http://infostart.ru/public/16930/


Так а что ж ты сразу челу не посоветовал?  Подмигивание
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Добавить кнопку
Ответ #29 - 08. Февраля 2013 :: 10:57
Печать  
Там вот в чем засада - есть несколько версий rwjets, но только в старой есть добавление кнопок в тулбар форм, в новой - только в меню (функционал старой вк был потерян при создании новой и автор вк вроде как её уже не будет поддерживать и доделывать)
Как-то так.
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #30 - 08. Февраля 2013 :: 10:58
Печать  
Ясно.
  
Наверх
 
IP записан
 
PavelVK
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 13
Зарегистрирован: 09. Июня 2010
Re: Добавить кнопку
Ответ #31 - 08. Февраля 2013 :: 17:21
Печать  
А как запустить? выдает ошибку:

DWX.ToolBar.Button::УстановитьФорму(НеизвестныйОбъект Форма=) : Ошибка выполнения Microsoft VBScript: Объект не поддерживает это свойство или метод: 'Wrap.CWnd_FromHandle'
ScrptCtrl.Run("setForm", рФорма.Дескриптор);
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #32 - 08. Февраля 2013 :: 17:24
Печать  
PavelVK писал(а) 08. Февраля 2013 :: 17:21:
А как запустить? выдает ошибку:

DWX.ToolBar.Button::УстановитьФорму(НеизвестныйОбъект Форма=) : Ошибка выполнения Microsoft VBScript: Объект не поддерживает это свойство или метод: 'Wrap.CWnd_FromHandle'
ScrptCtrl.Run("setForm", рФорма.Дескриптор);


DynamicWrapperX установлен?
  
Наверх
 
IP записан
 
PavelVK
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 13
Зарегистрирован: 09. Июня 2010
Re: Добавить кнопку
Ответ #33 - 08. Февраля 2013 :: 17:46
Печать  
Спасибо... Разобрался. А возможно ли добавить на панель кнопку с выпадающим меню?
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #34 - 09. Февраля 2013 :: 15:23
Печать  
PavelVK писал(а) 08. Февраля 2013 :: 17:46:
Спасибо... Разобрался. А возможно ли добавить на панель кнопку с выпадающим меню?


По идее, это можно будет сделать в процедуре обработки нажатия, использую, например FormEx, для показа СпискаЗначений в виде меню.
  
Наверх
 
IP записан
 
PavelVK
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 13
Зарегистрирован: 09. Июня 2010
Re: Добавить кнопку
Ответ #35 - 09. Февраля 2013 :: 19:42
Печать  
chessman писал(а) 09. Февраля 2013 :: 15:23:
По идее, это можно будет сделать в процедуре обработки нажатия, использую, например FormEx, для показа СпискаЗначений в виде меню.

Вопрос как привязать показ списка к кнопке на панели???
В иделае хотелось бы кнопочку с выподающим меню - типа кнопка а справа от нее малюсенькая кнопка со стрелкой вниз, при нажатии на которую открывается меню...
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Добавить кнопку
Ответ #36 - 11. Февраля 2013 :: 08:41
Печать  
Кнопочку с выпадающим меню по стрелке можно сделать с помощью ActiveX, и не в панели, а на форме. Или лепить обычную маленькую кнопочку сбоку.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #37 - 11. Февраля 2013 :: 12:16
Печать  
Добавил тултипы, вывод в статус-бар и вызов через контекс процедуры обработки нажатия (пока это просто пример - для всех нажатий одна процедура).

В связи с передачей контекста в скрипт, приходится использовать вспомогательный класс DWX.Blang.
  

buttons.ZIP ( 11 KB | Загрузки )
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #38 - 12. Февраля 2013 :: 11:24
Печать  
Переделал Микрософтовский Тулбар на 1С-й.
Сверху - 1Сй
Снизу   - Микрософтовский
  

Clipboard02_018.jpg ( 212 KB | Загрузки )
Clipboard02_018.jpg
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Добавить кнопку
Ответ #39 - 12. Февраля 2013 :: 16:11
Печать  
chessman писал(а) 12. Февраля 2013 :: 11:24:
Переделал Микрософтовский Тулбар на 1С-й.
Сверху - 1Сй
Снизу   - Микрософтовский

А в чем плюсы и минусы одной панели над другой ???
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Добавить кнопку
Ответ #40 - 14. Февраля 2013 :: 06:04
Печать  
Z1 писал(а) 12. Февраля 2013 :: 16:11:
chessman писал(а) 12. Февраля 2013 :: 11:24:
Переделал Микрософтовский Тулбар на 1С-й.
Сверху - 1Сй
Снизу   - Микрософтовский

А в чем плюсы и минусы одной панели над другой ???


В мелкософтовский проще добавлять кнопочки и рулить свойствами, поди.
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #41 - 14. Февраля 2013 :: 09:08
Печать  
Eprst писал(а) 14. Февраля 2013 :: 06:04:
Z1 писал(а) 12. Февраля 2013 :: 16:11:
chessman писал(а) 12. Февраля 2013 :: 11:24:
Переделал Микрософтовский Тулбар на 1С-й.
Сверху - 1Сй
Снизу   - Микрософтовский

А в чем плюсы и минусы одной панели над другой ???


В мелкософтовский проще добавлять кнопочки и рулить свойствами, поди.


Визуально разницы нет. Но все-таки работать с родным для 1С тулбаром предпочтительней (ИМХО). Опять же нет проблем с отрисовкой - помнится, я очень долго мучался с поиском места, в котором нужно отрисовывать микрософтовский тулбар. Вроде и отрисовываешь его в ПослеОткрытия, а все равно - то рисуется то нет. В общем, пришлось долго плясать с бубном, пока все не заработало нормально.
Кроме этого, какое-то время назад, микрософт выпустил обновление, после которого приходилось перерегистрировать контрол, иначе события просто не генерились. Пришлось разбираться, почему это случилось - а это тоже время.

Еще одна причина: на мой взгляд, использование 1С-го тулбара, создает еще бОльшую иллюзию(для пользователей конечно), что Журнал документов это не внешний отчет, а стандартный 1С-й Журнал. Опять же ИМХО...кому-то это вовсе не надо.

ЗЫ:как я уже говорил, вроде можно таким же образом добавлять кнопки в стандартные Плавающие панели, вынося таким образом  какие-то системные действия, которые изначально скрыты в режиме Предприятия (это конечно нужно тестировать).
  
Наверх
 
IP записан
 
xxc
Junior Member
**
Отсутствует



Сообщений: 19
Местоположение: Краснодар
Зарегистрирован: 18. Августа 2012
Пол: Мужской
Re: Добавить кнопку
Ответ #42 - 16. Февраля 2013 :: 23:05
Печать  
Где брать правильный dynwrapx.dll для buttons.ZIP (37)? С тем что имеется:
Цитата:
DWX.ToolBar.Button::УстановитьФорму(НеизвестныйОбъект Форма=, ГрупповойКонтекст Конт=) : Ошибка выполнения Microsoft VBScript: Объект не поддерживает это свойство или метод: 'Wrap.CWnd_FromHandle'
ScrptCtrl.Run("setForm", рФорма.Дескриптор, pCBLContext);
{C:\77\09\DWX.ToolBar.Button.ert(567) }

ТулБар.УстановитьФорму(Форма, Контекст);
{C:\USERS\888\DESKTOP\TEST_TOOLBAR.ERT(19)}: DWX.ToolBar.Button::УстановитьФорму(НеизвестныйОбъект Форма=, ГрупповойКонтекст Конт=) : Ошибка выполнения Microsoft VBScript: Объект не поддерживает это свойство или метод: 'Wrap.CWnd_FromHandle'
ScrptCtrl.Run("setForm", рФорма.Дескриптор, pCBLContext);
{C:\77\09\DWX.ToolBar.Button.ert(567) }
  
Наверх
ICQ  
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #43 - 17. Февраля 2013 :: 05:00
Печать  
В соседней ветке "Цвет 1С" выкладывал.
  
Наверх
 
IP записан
 
xxc
Junior Member
**
Отсутствует



Сообщений: 19
Местоположение: Краснодар
Зарегистрирован: 18. Августа 2012
Пол: Мужской
Re: Добавить кнопку
Ответ #44 - 19. Февраля 2013 :: 20:27
Печать  
Пересобрал пример из #37, но как его применить не соображу.
  

buttons.rar ( 771 KB | Загрузки )
Наверх
ICQ  
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #45 - 20. Февраля 2013 :: 08:53
Печать  
Я класс с тех пор поменял.
Вот посмотри эту сборку.
  

buttons.zip ( 994 KB | Загрузки )
Наверх
 
IP записан
 
xxc
Junior Member
**
Отсутствует



Сообщений: 19
Местоположение: Краснодар
Зарегистрирован: 18. Августа 2012
Пол: Мужской
Re: Добавить кнопку
Ответ #46 - 20. Февраля 2013 :: 20:01
Печать  
Заметил несрабатывание при частых нажатиях; перемудрил с Нажата и не разбирался с Доступность. В MiracleV8 вжатие #13 - не обнаружил, да и к тому же вообще не понял: зачем 7-ке 8 имидж
Подмигивание
  

buttons_1302202346.rar ( 786 KB | Загрузки )
Наверх
ICQ  
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #47 - 21. Февраля 2013 :: 12:31
Печать  
xxc писал(а) 20. Февраля 2013 :: 20:01:
Заметил несрабатывание при частых нажатиях

Это нормально, у тебя же в это время отрабатывается 1С-й код.
А в каких случаях нужно нажимать на кнопку так быстро? В любом случае, я тут уже ничем не помогу.

xxc писал(а) 20. Февраля 2013 :: 20:01:
перемудрил с Нажата и не разбирался с Доступность. В MiracleV8 вжатие #13 - не обнаружил, да и к тому же вообще не понял: зачем 7-ке 8 имидж
Подмигивание


Это мне или это просто мысли вслух? Улыбка
  
Наверх
 
IP записан
 
xxc
Junior Member
**
Отсутствует



Сообщений: 19
Местоположение: Краснодар
Зарегистрирован: 18. Августа 2012
Пол: Мужской
Re: Добавить кнопку
Ответ #48 - 21. Февраля 2013 :: 16:40
Печать  
«перемудрил с Нажата и не разбирался с Доступность» — комментарий в отношении buttons_1302202346.rar #46, «В MiracleV8 вжатие #13 - не обнаружил» — поправка к тому, что MiracleV8 тоже что-то умеет в плане кнопок на Панеле инструментов формы #3 и просто к слову мысли вслух. Хвалить не умею, а разработчика и разработку «DWX» надо бы...

Круглые глаза
  
Наверх
ICQ  
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #49 - 21. Февраля 2013 :: 16:47
Печать  
Спс  Подмигивание
  
Наверх
 
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Добавить кнопку
Ответ #50 - 25. Марта 2013 :: 11:18
Печать  
А доступностью кнопки можно как-нибудь управлять?
Нашел в варианте от xxc
Почему-то не работает чтение статуса Нажата(х). Возвращает всегда 0.
« Последняя редакция: 25. Марта 2013 :: 13:33 - Kalen »  
Наверх
GTalkICQ  
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Добавить кнопку
Ответ #51 - 25. Марта 2013 :: 14:43
Печать  
Как задать обработчик в глобальнике?
  
Наверх
GTalkICQ  
IP записан
 
xxc
Junior Member
**
Отсутствует



Сообщений: 19
Местоположение: Краснодар
Зарегистрирован: 18. Августа 2012
Пол: Мужской
Re: Добавить кнопку
Ответ #52 - 20. Мая 2013 :: 02:39
Печать  
  
Наверх
ICQ  
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Добавить кнопку
Ответ #53 - 20. Мая 2013 :: 07:04
Печать  
Спасибо, xxc
С Перехватчиком понятно. Только возни с ним много по передаче событий дальше. Здорово было бы, если бы класс DWX.ToolBar в добавок к УстановитьКонтекстФорму имел метод назначения обработчика в ГМ
  
Наверх
GTalkICQ  
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Добавить кнопку
Ответ #54 - 20. Мая 2013 :: 08:41
Печать  
А разделитель на панельку можно как-нибудь добавить?
  
Наверх
GTalkICQ  
IP записан
 
xxc
Junior Member
**
Отсутствует



Сообщений: 19
Местоположение: Краснодар
Зарегистрирован: 18. Августа 2012
Пол: Мужской
Re: Добавить кнопку
Ответ #55 - 20. Мая 2013 :: 19:28
Печать  
Kalen, что до меня, то я лишь небезуспешно обигрываю возможности классов любезно предоставленных chessman-ом, но к их разработке непосредственного участия не имею. Поэтому так же, как и вы, имея ряд вопросов, предложений и пожеланий, лишь терпеливо ожидаю ответной реакции со стороны chessman.

Тем не менее, хочу отметить, что связка с Перехватчик-ом, в том виде как она представлена в #52 — это скорее т. н. набросок идей на скорую руку, нежели окончательная реализация и продолжение, как говорится: следует..
  
Наверх
ICQ  
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Добавить кнопку
Ответ #56 - 21. Мая 2013 :: 06:37
Печать  
Да, chessmanу, безусловно, отдельное спасибо.
  
Наверх
GTalkICQ  
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Добавить кнопку
Ответ #57 - 21. Мая 2013 :: 17:08
Печать  
Засада, однако...
Решил выложить на сервер 2008R2. При добавлении кнопок все отрабатывает нормально, но через секунду 1С валится. Выложенные в этой ветке примеры приводят к такому же эффекту.  Плачущий
Версия dynwrapx.dll 1.1.0.0 от 20.05.11.
Куда копать?
  
Наверх
GTalkICQ  
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Добавить кнопку
Ответ #58 - 21. Мая 2013 :: 17:41
Печать  
DEP срабатывает. Это нормально? На моей машине (7-ка 32) тоже DEP включен - ничего не падает. DLL та же.
  
Наверх
GTalkICQ  
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #59 - 20. Июня 2013 :: 19:19
Печать  
Kalen писал(а) 21. Мая 2013 :: 17:41:
DEP срабатывает. Это нормально? На моей машине (7-ка 32) тоже DEP включен - ничего не падает. DLL та же.


Посмотрел, ничего подозрительного не обнаружил.
Попробуй вот этот класс обновить.
  

DWX_BLANG_001.zip ( 3 KB | Загрузки )
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #60 - 01. Июля 2013 :: 17:58
Печать  
Подправленный вариант
  

DWX_ToolBar.zip ( 7 KB | Загрузки )
Наверх
 
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Добавить кнопку
Ответ #61 - 26. Июля 2013 :: 12:38
Печать  
chessman писал(а) 01. Июля 2013 :: 17:58:
Подправленный вариант

Спасибо. Вреде бы теперь не падает.  Класс
Или там еще какие-то изменения были?
  
Наверх
GTalkICQ  
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #62 - 26. Июля 2013 :: 12:49
Печать  
Я что-то с Видимостью там мутил. Больше вроде ничего.

ЗЫ:
Падало, потому что после выделения памяти под функцию перехвата, ей (памяти) нужно задавать опцию PAGE_EXECUTE_READWRITE.
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Добавить кнопку
Ответ #63 - 16. Сентября 2013 :: 14:08
Печать  
chessman писал(а) 08. Февраля 2013 :: 10:13:
Я обнаружил для себя, что оказывается можно вызвать диалог редактированя списка пользователей в режиме предприятия и его редактировать, как в Конфигураторе.  


Привет. Как можно вызвать список пользователей в режиме предприятия?
Код известен - 32854.

Я бы просто создал глобальную функцию с вызовом этого списка, а уж функцию, понятное дело, можно прилепить куда угодно.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #64 - 17. Сентября 2013 :: 08:26
Печать  
Достаточно вот этого

Wrap.SendMessage h1C, WM_COMMAND, 32854, 0

где h1C - хэндл окна приложения
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Добавить кнопку
Ответ #65 - 17. Сентября 2013 :: 12:06
Печать  
Код
Выбрать все
ТекстМодуля = "
	|Public Const WM_COMMAND = &h111
	|Public Sub GetUsersWindow()
	|	Set Wrap = CreateObject(""DynamicWrapperX"")
	|	Wrap.Register ""USER32"", ""GetForegroundWindow"", ""f=s"", ""r=l""
	|	Wrap.Register ""user32"", ""SendMessage""	 ,  ""i=hull""	, ""r=l""
	|	Res = Wrap.SendMessage(Wrap.GetForegroundWindow(), WM_COMMAND, 32854, 0)
	|End Sub";
мScrptCtrl = СоздатьОбъект("MSScriptControl.ScriptControl");
мScrptCtrl.Language = "vbscript";мScrptCtrl.AddCode(ТекстМодуля);
мScrptCtrl.CodeObject.GetUsersWindow();
 

  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #66 - 17. Сентября 2013 :: 12:37
Печать  
Можно наверное и так, но я предпочитаю получать хэндл окна абсолютно надежным способом. Вот кусок кода:

Код
Выбрать все
Wrap = СоздатьОбъект("DynamicWrapperX");
Wrap.Register("Kernel32", "GetProcAddress" , "i=hl", "r=u");
Wrap.Register("Kernel32", "LoadLibrary" , "i=s", "r=h");
handle  = Wrap.LoadLibrary("mfc42");
func    = Wrap.GetProcAddress(handle, 6575); //AfxGetMainWnd(void)
Wrap.RegisterAddr(func, "AfxGetMainWnd", "r=l");

h1C = Wrap.NumGet(Wrap.AfxGetMainWnd(), 32);
 



Можно его завернуть в скрипт.
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Добавить кнопку
Ответ #67 - 17. Сентября 2013 :: 13:51
Печать  
Спасибо, как всегда!

Только у меня ругается при выполнении скрипта, пока я не пропишу так:

Код
Выбрать все
Res = Wrap.RegisterAddr.... 

  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #68 - 17. Сентября 2013 :: 14:45
Печать  
alyuev писал(а) 17. Сентября 2013 :: 13:51:
Спасибо, как всегда!

Только у меня ругается при выполнении скрипта, пока я не пропишу так:

Код
Выбрать все
Res = Wrap.RegisterAddr.... 



пиши без скобок

Код
Выбрать все
Wrap.RegisterAddr func, "AfxGetMainWnd", "r=l" 

  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Добавить кнопку
Ответ #69 - 27. Сентября 2013 :: 08:56
Печать  
Привет, chessman.

Подскажи пожалуйста по классу ТулБара - если задаю картинку только методом ЗагрузитьКартинкуИзФайла() - картинка устанавливается не та, которую гружу, а первая из текущего стандартного тулБара.  Почему?
И что-то я не совсем понимаю логику установки картинки по индексу (как из ресурса, так и из битмапа). Можешь кратко рассказать, как и что?

Я тестирую на Форме списка справочника.



И еще, может подскажешь. Хочу в перехватчике создать ТулБар через ВыполняемыйМодуль.

Делаю так:

Код
Выбрать все
	ТекстМодуля = "
	|Перем ТулБар;
	|
	|Процедура ButtonClick(actID)
	|	Сообщить(""ОбработкаНажатияКнопки, actID = "" + СокрЛП(actID));
	|КонецПроцедуры

	|Процедура ДобавитьКнопкиВТулБар()
	|	ТулБар=СоздатьОбъект(""DWX.ToolBar"");
	|КонецПроцедуры
	|
	|
	|ДобавитьКнопкиВТулБар();
	|";
	л_ВМ = СоздатьОбъект("ВыполняемыйМодуль");
	л_ВМ.УстановитьМодуль(ТекстМодуля);
	л_ВМ.НазначитьКонтекст(Конт);
	л_ВМ.КомпилироватьИВыполнитьМодуль();
 



Это я делаю в Событие_ПослеОткрытия()

Как видишь, я тут только инициализирую класс. Так вот почему-то после выполнения модуля класс ТулБар завершает работу, т.к. я вижу сообщение "Деструктор:: DWX.ToolBar" - с чем бы это могло быть связано? Причем это сообщение выводится уже после отработки Событие_ПослеОткрытия!
« Последняя редакция: 08. Января 2014 :: 10:36 - alyuev »  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Добавить кнопку
Ответ #70 - 27. Сентября 2013 :: 12:11
Печать  
Сбивают с толку смещения, которые нужно указывать при добавлении кнопки.

Код
Выбрать все
ТулБар.ЗагрузитьКартинкуИзРесурса(1035); //Здесь 9 картинок
ТулБар.ЗагрузитьКартинкуИзФайла(КаталогИБ()+"01.bmp");//58
ТулБар.ДобавитьКнопку(65563+Значение,48+9+Значение,..... 



Опытным путем установил, что индекс картинки состоит из:
48 - не понятно, что это такое? похоже на число картинок в ресурсе 1037.
9  - число картинок в ресурсе, загружаемом через ЗагрузитьКартинкуИзРесурса
значение - номер картинки, которую загрузили из файла

И с чем связано смещение для задания самой картинки кнопки (65563)? Пробовал меньше - кнопки рисуются недоступными.

« Последняя редакция: 27. Сентября 2013 :: 20:53 - alyuev »  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #71 - 27. Сентября 2013 :: 14:39
Печать  
alyuev писал(а) 27. Сентября 2013 :: 08:56:
Подскажи пожалуйста по классу ТубБара - если задаю картинку только методом ЗагрузитьКартинкуИзФайла() - картинка устанавливается не та, которую гружу, а первая из текущего стандартного тулБара.  Почему?


Смотри, я цепляюсь к уже существующему Тулбару. К нему в это время уже привязан некий битмап. Поэтому, чтобы сохранить картинки на существующих кнопках, приходится к сущ. битмапу прилеплять то, что ты хочешь добавить.
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Добавить кнопку
Ответ #72 - 01. Октября 2013 :: 08:52
Печать  
Понятно. С этим, в принципе, еще можно жить.
А с Выполняемым модулем что-то можно придумать?
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #73 - 01. Октября 2013 :: 10:41
Печать  
alyuev писал(а) 01. Октября 2013 :: 08:52:
Понятно. С этим, в принципе, еще можно жить.
А с Выполняемым модулем что-то можно придумать?


Выложи тестовую базу, я гляну. А то так трудно сказать.
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Добавить кнопку
Ответ #74 - 09. Января 2014 :: 11:33
Печать  
Привет. Пытаюсь запустить на одном из компов - 1С вылетает.
Сделал тестовую обработку. В неё записал только это:

Код
Выбрать все
Перем ТулБар;

Процедура ПослеСозданияФормы()
	Сообщить("ПослеСозданияФормы()");
	ТулБар=СоздатьОбъект("DWX.ToolBar1");
	Сообщить("   Зарегили класс");
	ТулБар.УстановитьКонтекстФорму(Контекст,Форма);
	Сообщить("   Установили контекст");
КонецПроцедуры 



Пробовал в ПослеСозданияФормы и в ПослеОткрытия - одинаково.
Выводится последнее сообщение "Установили контекст" - и после этого 1С вылетает.

Причем на одной машине всё работает, а на другой - нет.

Chessman, не подскажешь - куда можно и нужно смотреть, чтобы разобраться, в чём дело, почему вылетает?

DWX.BLANG.ert размером 8704
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Добавить кнопку
Ответ #75 - 09. Января 2014 :: 16:30
Печать  
Похоже что DEP был всему виной. Отключили - и заработало...
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #76 - 10. Января 2014 :: 06:51
Печать  
alyuev писал(а) 09. Января 2014 :: 16:30:
Похоже что DEP был всему виной. Отключили - и заработало...


По идее, это где-то у меня ошибки с выделением памяти, даже не с самим выделением, а с присваиванием атрибута PAGE_EXECUTE_READWRITE этой памяти.
Но, если, все решилось, можно тогда забить.
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Добавить кнопку
Ответ #77 - 14. Января 2014 :: 16:19
Печать  
Chessman, скажи, а перехват нажатий системных кнопок тулбара формы с помощью твоего класса можно сделать? Или только своих, созданных?

Удалить-то ведь можно любые кнопки - и свои, и системные.

Тогда можно было бы сделать подмену функций на свои реализации. Например, показывать свою форму периодических реквизитов.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #78 - 15. Января 2014 :: 08:20
Печать  
alyuev писал(а) 14. Января 2014 :: 16:19:
Chessman, скажи, а перехват нажатий системных кнопок тулбара формы с помощью твоего класса можно сделать? Или только своих, созданных?

Удалить-то ведь можно любые кнопки - и свои, и системные.

Тогда можно было бы сделать подмену функций на свои реализации. Например, показывать свою форму периодических реквизитов.



Можно.
Сейчас для "пользовательских" кпопок выделен "пул" от 65536 до 66000 - 1
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Добавить кнопку
Ответ #79 - 15. Января 2014 :: 08:25
Печать  
Ага. В "CASE  WM_COMMAND". Спасибо.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Добавить кнопку
Ответ #80 - 15. Января 2014 :: 09:16
Печать  
Тогда можно сделать так в функции WndProc:

           
Код
Выбрать все
|		CASE  WM_COMMAND
|			If wParam < 65536 Then	'нажата системная кнопка
|				WndProc = CallAsProc(wParam) 'пробуем для начала вызвать ButtonClick
|				If WndProc = 0 Then 'если не получилось (в модуле не прописана ButtonClick), то вызываем стандартный метод
|					WndProc = Wrap.CallWindowProc(oldProc1, hWnd, uMsg, wParam, lparam)
|				End If
|			Else 					'нажата пользовательская кнопка
|				WndProc = CallAsProc(wParam) 'вызываем ButtonClick
|			End If 




  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Добавить кнопку
Ответ #81 - 15. Января 2014 :: 10:29
Печать  
alyuev писал(а) 15. Января 2014 :: 09:16:
Тогда можно сделать так в функции WndProc:


Ага
  
Наверх
 
IP записан
 
Ilya
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 8
Зарегистрирован: 26. Мая 2013
Re: Добавить кнопку
Ответ #82 - 01. Декабря 2017 :: 09:10
Печать  
Всем доброго дня.
Может у кого-нибудь есть документация на MiracleV8?
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать