Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Класс Общие.Форма.Привязки (привязки и сплиттеры) (число прочтений - 16126 )
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Класс Общие.Форма.Привязки (привязки и сплиттеры)
16. Января 2008 :: 06:14
Печать  
Собственно, привязки....  и сплиттеры  Улыбка

От привязок, реализованных в Общие.Форма.Привязка отличается тем, что привязываются исключительно края контролов.
От сплиттеров, реализованных там же, отличается тем, что для самого сплиттера используется элемент формы, и как следствие размерами сплиттера можно явно управлять. Также явно задаются элементы подлежащие управлению.
Пример:
Код
Выбрать все
	оПривязки.Добавить("текстГорСплиттер2", "ЛЛ", "Форма", "ПП", "Форма");
	оПривязки.ДобавитьГорСплиттер("текстГорСплиттер2", "Поле2_1, текстВертСплиттер1, Поле1_2", "Поле3_1, Поле3_2, Поле3_3, текстВертСплиттер3_1, текстВертСплиттер3_2");
 



Скачать: http://www.rikcenter.ru/downloads.php?file=12

20.08.2008:
[-] ошибка в определении метода Добавить() - убран модификатор Знач.
[+] возможность привязки атрибутов к сплиттерам (не прошло и года Улыбка) - см. вторую обработку в демке.
[+] возможность сохранить/восстановить положение сплиттеров.
[+] некоторая совместимость с классом Общие.Форма.Привязка от DmitrO, если использовались только простейшие привязки.
« Последняя редакция: 20. Августа 2008 :: 06:01 - ADirks »  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Класс Общие.Форма.Сплиттеры
Ответ #1 - 16. Января 2008 :: 06:45
Печать  
+1
  
Наверх
ICQ  
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Класс Общие.Форма.Привязки (привязки и сплитте
Ответ #2 - 01. Февраля 2008 :: 12:21
Печать  
Класс из Общие.Форма.Сплиттеры превратился в Общие.Форма.Привязки.  Пришлось так сделать, потому что иначе не разрулить конфликты при изменении размеров и таскании сплиттеров.  Ну и вообще давно было желание налабать привязки, которые мне будут более понятны  Улыбка
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс Общие.Форма.Привязки (привязки и сплитте
Ответ #3 - 01. Февраля 2008 :: 13:12
Печать  
ADirks писал(а) 01. Февраля 2008 :: 12:21:
Класс из Общие.Форма.Сплиттеры превратился в Общие.Форма.Привязки.  Пришлось так сделать, потому что иначе не разрулить конфликты при изменении размеров и таскании сплиттеров.  Ну и вообще давно было желание налабать привязки, которые мне будут более понятны  Улыбка

а обратной совместимости с классом dmitro нет?
  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Класс Общие.Форма.Привязки (привязки и сплитте
Ответ #4 - 01. Февраля 2008 :: 13:39
Печать  
В принципе можно сделать.  И даже почти сделано.  Т.е. если используются только привязки типа L, T, H, W то всё должно работать.  Вот только методы по разному называются - у меня Добавить() а у DmitrO Привязать() -  этот  момент я что-то упустил... надо будет поправиться.  Но полной совместимости достичь конечно же не получится.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс Общие.Форма.Привязки (привязки и сплитте
Ответ #5 - 01. Февраля 2008 :: 13:56
Печать  
т.е. не получиться тупо заменить обработку-класс на твой?
  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Класс Общие.Форма.Привязки (привязки и сплитте
Ответ #6 - 04. Февраля 2008 :: 05:46
Печать  
JohnyDeath писал(а) 01. Февраля 2008 :: 13:56:
т.е. не получиться тупо заменить обработку-класс на твой?

Если бы можно было тупо заменить один класс на другой, то и смысла городить огород бы не было  Улыбка
  
Наверх
 
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Класс Общие.Форма.Привязки (привязки и сплитте
Ответ #7 - 07. Мая 2008 :: 08:16
Печать  
Доброе время суток!
Такой вопрос по поводу класса - при работе сплитеров я так понял меняются размеры тех элементов формы, которые связаны со сплитером командой типа

оПривязки.ДобавитьВертСплиттер(....)

а вот те элементы которые привязаны в свою очередь тем элементым которые изменили размер не обрабатываются..... ни блин я и сказал  Улыбка

Короче скриншот как это выглядит я прикрепил, надеюсь будет понятно. Там вертикальный сплитер между двумя СпискамиЗначений. К нему привязаны рамки и списки, а уже кнопки привязаны к рамкам. При изменении размеров формы кнопки двигаются как положено а вот при движении сплитера остаются на месте Печаль

Я что-то не так сделал или это так задумано в реализацции класса?
  

1C_screen.JPG ( 50 KB | Загрузки )
1C_screen.JPG
Наверх
ICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: Класс Общие.Форма.Привязки (привязки и сплитте
Ответ #8 - 07. Мая 2008 :: 12:27
Печать  
avgreen писал(а) 07. Мая 2008 :: 08:16:
Я что-то не так сделал или это так задумано в реализацции класса?

Если мне память не изменяет, там нужно порядок задания привязки поменять
  
Наверх
ICQ  
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Класс Общие.Форма.Привязки (привязки и сплитте
Ответ #9 - 07. Мая 2008 :: 14:35
Печать  
[quote author=Chieftain link=1200464076/0#8 date=1210163237][quote author=avgreen link=1200464076/0#7 date=1210148210]Я что-то не так сделал или это так задумано в реализацции класса?[/quote]
Если мне память не изменяет, там нужно порядок задания привязки поменять[/quote]

Т.е.? Как именно? У меня вот такой порядок

     оПривязки.Добавить("РамкаКлиент" , "НН", "Форма", "ПП", "Форма");
     оПривязки.Добавить("ВыбКлиент" , "НН", "РамкаКлиент", "ПП", "РамкаКлиент");
     оПривязки.Добавить("кнДобавитьКлиент", "ЛП", "РамкаКлиент");
     оПривязки.Добавить("кнДобавитьКлиент2", "ЛП", "РамкаКлиент");
     оПривязки.Добавить("кнУдалитьКлиент", "ЛП", "РамкаКлиент");
     оПривязки.Добавить("кнУдалитьКлиент2", "ЛП", "РамкаКлиент");
     оПривязки.Добавить("кнДобавитьКлиент3", "ЛП", "РамкаКлиент");
     оПривязки.Добавить("ПоПлательщику", "ВН", "РамкаКлиент", "ПП", "РамкаКлиент");

     оПривязки.Добавить("РамкаПоДокументам", "ВН", "РамкаКлиент", "ПП", "Форма");
     оПривязки.Добавить("поРН", "ВН", "РамкаПоДокументам", "ЛЛ", "РамкаПоДокументам");
     оПривязки.Добавить("поВН", "ВН", "РамкаПоДокументам", "ЛЛ", "РамкаПоДокументам");

     оПривязки.Добавить("ТекстВертСплитер" , "НН", "Форма", "ЛП", "РамкаКлиент");

     оПривязки.Добавить("РамкаТовар" , "НН", "Форма", "ЛП", "РамкаКлиент");
     оПривязки.Добавить("ВыбТовар" , "НН", "РамкаТовар", "ЛЛ", "РамкаТовар");
     оПривязки.Добавить("кнДобавитьТовар" , "ЛП", "РамкаТовар");
     оПривязки.Добавить("кнДобавитьТовар2" , "ЛП", "РамкаТовар");
     оПривязки.Добавить("кнУдалитьТовар" , "ЛП", "РамкаТовар");
     оПривязки.Добавить("кнУдалитьТовар2" , "ЛП", "РамкаТовар");
     
     оПривязки.ДобавитьВертСплиттер("ТекстВертСплитер", "РамкаКлиент, ВыбКлиент, РамкаПоДокументам",  "РамкаТовар, ВыбТовар");

     оПривязки.Добавить("кнСформировать" , "ВН", "Форма", "ЛП", "ТекстВертСплитер");
     оПривязки.Добавить("кнЗакрыть" , "ВН", "Форма", "ЛП", "ТекстВертСплитер");

Думаю из названий реквизитов понятно что и где.....
Как нужно сделать чтобы было хорошо?
  
Наверх
ICQ  
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Класс Общие.Форма.Привязки (привязки и сплитте
Ответ #10 - 08. Мая 2008 :: 09:37
Печать  
avgreen в текущей реализации такое к сожалению невозможно.  Буду думать.
  
Наверх
 
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Класс Общие.Форма.Привязки (привязки и сплитте
Ответ #11 - 12. Мая 2008 :: 08:19
Печать  
ADirks писал(а) 08. Мая 2008 :: 09:37:
avgreen в текущей реализации такое к сожалению невозможно.  Буду думать.

Жаль  Плачущий
Но все равно спасибо! Класс нужный! Позволяет облагородить интефейс Улыбка
  
Наверх
ICQ  
IP записан
 
dnp
Senior Member
****
Отсутствует


.

Сообщений: 479
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Класс Общие.Форма.Привязки (привязки и сплитте
Ответ #12 - 26. Мая 2008 :: 12:18
Печать  
Может быть имеет смысл сделать сообщения (сообщение) об ошибке в случаях, когда какой-то размер не укладывается в ограничения?
Код
Выбрать все
Процедура ПриИзмененииРазмераОкна(ТипСобытия, НовШирина, НовВысота) Экспорт
   ...
   Если ( Высота < тзАтрибуты.МинВысота ) Тогда
     ...
   Если (Лево < МинРасстояниеОтКрая) или ((Лево+Ширина) < МинРасстояниеОтКрая) Тогда
     ... 


Перенес кнопку и прог.код из внешней обработки на форму документа, да неудачно придвинул её к левому краю. Долго искал, в чем причина отсутствия привязки Улыбка
  
Наверх
ICQ  
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Класс Общие.Форма.Привязки (привязки и сплитте
Ответ #13 - 27. Мая 2008 :: 07:20
Печать  
dnp писал(а) 26. Мая 2008 :: 12:18:
Может быть имеет смысл сделать сообщения (сообщение) об ошибке в случаях, когда какой-то размер не укладывается в ограничения?

Перенес кнопку и прог.код из внешней обработки на форму документа, да неудачно придвинул её к левому краю. Долго искал, в чем причина отсутствия привязки Улыбка


К сожалению тоже наступил с разбегу на эти грабли Улыбка И тоже долго искал - "а чего-ж оно не стреляет?" Улыбка
Кстати я так и не понял смысл этого ограничения. Не было времени разобраться со всей реализацией класса
  
Наверх
ICQ  
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Класс Общие.Форма.Привязки (привязки и сплитте
Ответ #14 - 20. Августа 2008 :: 06:01
Печать  
Внесены изменения и добавления. См. заглавный пост.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать