Опрос
Опрос Тема Опроса: Нужен ли функционал создания тулбаров в компоненте



« Последняя модификация: mvgfirst : 20. Декабря 2007 :: 18:33 »
Переключение на Главную Страницу Страницы: 1 ... 9 10 [11] 12 13 ... 15 ОтправитьПечать
Очень популярная тема (более 25 ответов) [RWidjets] Динамическое меню программы (число прочтений - 114841 )
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: [RWidjets] Динамическое меню программы
Ответ #150 - 11. Февраля 2010 :: 09:15
Печать  
Я посмтрю, как проще идентифицировать панели, чтоб можно было ими манипулировать во время сеанса. Главное, чтоб указатель на Vb функцию получался в начале сеанса (по документации, в теч. сеанса можно сделать 16 указателей на функции).

Я понял, почему у меня 1С-ка раньше вылетала - это происходило, если использовалась какая-нить call-back функциях, типа EnumWindows, в нашем случае мы просто получаем адрес функции, поэтому все ок.

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



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: [RWidjets] Динамическое меню программы
Ответ #151 - 11. Февраля 2010 :: 11:03
Печать  
Я переделал немного обработку - заменяю процедуру не главного окна, а конкретной панели (так что сообщения от стандартных панелей сюда приезжать не будут) + поигрался с несколькими панелями.
  

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


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: [RWidjets] Динамическое меню программы
Ответ #152 - 11. Февраля 2010 :: 11:21
Печать  
Прикрутил предыдущий вариант к своей рабочей конфе - вроде все ок, только почему то индекс кнопки приезжает со сдвигом на +128, пришлось маску с h0FF на h07F поменять
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: [RWidjets] Динамическое меню программы
Ответ #153 - 11. Февраля 2010 :: 11:25
Печать  
CaBaT писал(а) 11. Февраля 2010 :: 11:21:
Прикрутил предыдущий вариант к своей рабочей конфе - вроде все ок, только почему то индекс кнопки приезжает со сдвигом на +128, пришлось маску с h0FF на h07F поменять


Поменяй из #151. Я посмотрел, № кнопок приезжают нарастающим итогом, т.е. там сплошная нумерация кнопок в панелях.
  
Наверх
 
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: [RWidjets] Динамическое меню программы
Ответ #154 - 11. Февраля 2010 :: 11:26
Печать  
Посмотрел последний вариант - супер, более универсальный вариант, переделаю себе в рабочей базе, погоняю немного и запущу в продакшн, спасибо! Улыбка
  
Наверх
 
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: [RWidjets] Динамическое меню программы
Ответ #155 - 11. Февраля 2010 :: 11:35
Печать  
При закрытии обработки всем панелям присваивается обратно одинаковый адрес процедуры - так и задумано?

Код
Выбрать все
// Поехали
For j = 1 To СписокПанелей.РазмерСписка() Do
	oWindowProc = Wrap.GetWindowLong(СписокПанелей.ПолучитьЗначение(j), -4);
	ScrptCtrl.Eval("Start(" + СписокПанелей.ПолучитьЗначение(j) + "," + oWindowProc + ")");
EndDo;
 


Код
Выбрать все
Процедура ПриЗакрытии()
	If oWindowProc <> 0 Then
		For j = 1 To СписокПанелей.РазмерСписка() Do
			Wrap.SetWindowLong(СписокПанелей.ПолучитьЗначение(j),  -4, oWindowProc);
		EndDo;
	EndIf;
КонецПроцедуры 

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



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: [RWidjets] Динамическое меню программы
Ответ #156 - 11. Февраля 2010 :: 11:39
Печать  
CaBaT писал(а) 11. Февраля 2010 :: 11:35:
При закрытии обработки всем панелям присваивается обратно одинаковый адрес процедуры - так и задумано?


Конечно  Улыбка Ведь при уничтожении MSScriptControl'а нужно вернуть, все как было.
  
Наверх
 
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: [RWidjets] Динамическое меню программы
Ответ #157 - 11. Февраля 2010 :: 11:44
Печать  
chessman писал(а) 11. Февраля 2010 :: 11:39:
Конечно  Улыбка Ведь при уничтожении MSScriptControl'а нужно вернуть, все как было.


Это понятно, только ведь у каждой панели свой адрес процедуры, а в конце им всем одинаковый присваивается..
Или я чего то не понял..
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: [RWidjets] Динамическое меню программы
Ответ #158 - 11. Февраля 2010 :: 11:53
Печать  
CaBaT писал(а) 11. Февраля 2010 :: 11:44:
chessman писал(а) 11. Февраля 2010 :: 11:39:
Конечно  Улыбка Ведь при уничтожении MSScriptControl'а нужно вернуть, все как было.


Это понятно, только ведь у каждой панели свой адрес процедуры, а в конце им всем одинаковый присваивается..
Или я чего то не понял..


А ты об этом...у этих один Улыбка ты можешь проверить сам.
  
Наверх
 
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: [RWidjets] Динамическое меню программы
Ответ #159 - 11. Февраля 2010 :: 12:28
Печать  
ок, понял Улыбка
  
Наверх
 
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: [RWidjets] Динамическое меню программы
Ответ #160 - 11. Февраля 2010 :: 12:41
Печать  
Переделал на последний вариант - почему то все равно со сдвигом прилетает индекс кнопки..
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: [RWidjets] Динамическое меню программы
Ответ #161 - 11. Февраля 2010 :: 12:44
Печать  
CaBaT писал(а) 11. Февраля 2010 :: 12:41:
Переделал на последний вариант - почему то все равно со сдвигом прилетает индекс кнопки..

Можешь выложить или на почту скинуть?
  
Наверх
 
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: [RWidjets] Динамическое меню программы
Ответ #162 - 11. Февраля 2010 :: 12:58
Печать  
Может быть связано с тем, что у меня кроме панели RWidjets есть еще стандартные от типовой бухгалтерии?
На тестовой, которую я изначально выкладывал все гут, а на рабочей со сдвигом на +128, хотя код создания панели практически идентичный..
  
Наверх
 
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: [RWidjets] Динамическое меню программы
Ответ #163 - 11. Февраля 2010 :: 13:06
Печать  
не, не катит - взял типовую чистую бухию, влепил туда все из тестовой - все работает правильно, значит че то в моей рабочей базе не так..
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: [RWidjets] Динамическое меню программы
Ответ #164 - 11. Февраля 2010 :: 14:54
Печать  
Попробуй эту версию.
Пришлось получать полную правильную инфу по кнопке. К сожалению порядковый номер кнопки в панели не решает проблемы, т.к. непонятно, как идентифицировать панель(если их несколько. Это конечно можно делать каждый раз после создания панели, пробегая по дочерним окнам.), но это как-то геморойно.
Я поступил проще -  привязываюсь к номеру картинки (этот номер возвращается в структуру кнопки), по нему нахожу текст подсказки.
Вот как-то так. Может как-то и проще можно сделать.
  

ToolTips_001.ert ( 9 KB | Загрузки )
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 9 10 [11] 12 13 ... 15
ОтправитьПечать