Переключение на Главную Страницу Страницы: [1] 2 3 ... 6 ОтправитьПечать
Очень популярная тема (более 25 ответов) Класс "УправлениеФормой" (число прочтений - 39223 )
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Класс "УправлениеФормой"
10. Июля 2010 :: 10:00
Печать  
Решил завести отдельную тему для данной разработки.
В общем основное назначение класса - управление привязкой реквизитов, а также создание и управление сплиттерами (на базе реквизитов формы).
Также есть дополнительный функционал реализации Гиперссылок.
Планируется реализовать интерфейс для управления привязками реквизитов (т.е. метод который открывает форму для настройки привязок).

Основное отличие класса от аналогичных разработок - иная схема обработки привязок элементов друг к другу и форме, а также обработка привязки сплиттеров и элементов.
За основу был взят класс "Общие.Форма.Привязка", но в последствии значительно переработан интерфейс программиста, и собственно реализация самих привязок.

Требования:
1. Наличие класса "Коллекция" (вложен в запрос)
2. ВК FormEx
3. ВК 1C++

Особенности:
1. При создании класса "УправлениеФормой" инициализируется перехватчик, и если после инициализации формы создать еще один перехватчик на контекст формы, то привязки будут работать только при принудительном вызове необходимых процедур:
- ПриИзмененииРазмераОкна
- ПриНажатииЛевойКнопки
- ПриОтжатииЛевойКнопки
- ПриДвиженииМыши
- ПослеСозданияФормы
- ПослеОткрытия
- ПриЗакрытии
2. При закрытии формы сохраняются размеры формы, при повторном открытии размеры восстанавливаются автоматически (при вызове ПослеОткрытия)

Текущая версия:
2.01.002 от 15.07.10 г.
- Исправлена ошибка класс «Коллекция». Не уничтожался из-за наличия внутренних ссылок.
- Исправлена ошибка привязки при открытии максимизированной формы со сплиттерами.
« Последняя редакция: 15. Июля 2010 :: 10:55 - vandalsvq »  

1Cv7_form_man_001.rar ( 70 KB | Загрузки )

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #1 - 10. Июля 2010 :: 10:23
Печать  
В общем пример привязки атрибутов и сплиттеров. Обратите внимание что указание атрибутов для сплиттера необходимо только для того чтобы определить минимальную левую и максимальную правую границу сплиттера.
  

anchoring.ert ( 10 KB | Загрузки )

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #2 - 10. Июля 2010 :: 10:30
Печать  
Предвидя вопрос, чем он отличается от класса "Общие.Форма.Привязки":
- иной интерфейс программиста, никакой обратной связи;
- иная логика реализации расчетов смещений при изменении формы и движении сплиттеров;
- более правильный расчет изменения границ элементов привязанных друг к другу при движении сплиттеров, поскольку при привязке происходит ранжирование элементов относительно атрибутов к кому они привязаны (форма, или другие элементы);
- сплиттер выступает элементом управления, если к нему никто не привязан он существует сам по себе;
- возможность реализации сплиттера таким образом чтобы при движении измерение привязанных реквизитов происходило не одновременно, а только по факту остановки сплиттера пользователем.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #3 - 12. Июля 2010 :: 06:53
Печать  
Скачал обработку, подвигал - все работает, потом решил поменять размеры формы - вроде тоже двигается, но в какой-то момент - привязка слетает и изменение размера формы - перестает влиять на размеры кнопок. Сплиттеры после этого тоже не двигаются.
  
Наверх
ICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #4 - 12. Июля 2010 :: 07:18
Печать  
При самостоятельном изменении размеров как атрибутов так и формы (например через Сервис) необходимо вызывать метод "Привязать".
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #5 - 12. Июля 2010 :: 12:23
Печать  
vandalsvq писал(а) 12. Июля 2010 :: 07:18:
При самостоятельном изменении размеров как атрибутов так и формы (например через Сервис) необходимо вызывать метод "Привязать".

Не, ты не понял... Я просто скачал твою обработку и начал испытывать сплиттеры - работает, потом начал изменять размеры формы - сначала работает, но в какой-то момент - перестает работать.
Добавлено:
Изменяешь сплиттером размер кнопки, чтобы она стала ма-а-аленькой, потом изменение размера формы перестает влиять на привязки и сплиттеры тоже перестают работать. Похоже когда проверка на размер кнопки дает "отказ", с размером формы - это приводит к указанным мной последствиям. Как вариант - устанавливать размер "малой" кнопки = минимальному размеру (вроде 5 у тебя), а остальные рисовать не "в пропорции", а просто на оставшееся место.
  
Наверх
ICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #6 - 12. Июля 2010 :: 12:56
Печать  
Вот как раз "на оставшееся" место и есть "в пропорции". До этого ни руки, ни голова не доходят.
В общем я бы это багом не назвал, а скорее "фичей". С ней можно побороться. Но если есть желание, я не против.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
qop_akaki
Junior Member
**
Отсутствует



Сообщений: 40
Местоположение: Красноярск
Зарегистрирован: 12. Июля 2010
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #7 - 14. Июля 2010 :: 10:11
Печать  
Проблема с УправлениеФормой.ПривязкаЭлементов;

Открывается форма сразу максимальная, при выводе сообщения открывается окно сообщения и закрывает кнопки и всю нижную часть.

Как с этим бороться?
  

Всем спасибо, я не понял!
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #8 - 14. Июля 2010 :: 10:32
Печать  
Форма именно "развернута" (максимизирована), или самостоятельно на весь экран растянута?
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
qop_akaki
Junior Member
**
Отсутствует



Сообщений: 40
Местоположение: Красноярск
Зарегистрирован: 12. Июля 2010
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #9 - 14. Июля 2010 :: 13:40
Печать  
Форма именно "развернута" (максимизирована)!
  

Всем спасибо, я не понял!
Наверх
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #10 - 14. Июля 2010 :: 13:45
Печать  
Дружеский совет.
После того как разберетесь с привязками в максимизированной форме проверьте работу в модальной форме и в форме с закладками, а также в их комбинации.
  

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


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #11 - 14. Июля 2010 :: 15:00
Печать  
Ну с модальными все очень просто. Они не изменяются в размере Улыбка. Ну по крайней мере у меня.
Что же касается закладок, я давно стандартными не пользуюсь. Через активикс все делаю. А "общеформенные" закладки вообще не пользую. Имхо не очень то и надо.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #12 - 14. Июля 2010 :: 15:03
Печать  
trad писал(а) 14. Июля 2010 :: 13:45:
Дружеский совет.

Это "недружеский" совет  Смех
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #13 - 14. Июля 2010 :: 17:10
Печать  
vandalsvq писал(а) 14. Июля 2010 :: 15:00:
Ну с модальными все очень просто. Они не изменяются в размере
и сплиттеры там не ездят?
  

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


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "УправлениеФормой"
Ответ #14 - 15. Июля 2010 :: 06:31
Печать  
trad писал(а) 14. Июля 2010 :: 17:10:
vandalsvq писал(а) 14. Июля 2010 :: 15:00:
Ну с модальными все очень просто. Они не изменяются в размере
и сплиттеры там не ездят?

Ездит только тот что слева-направо Улыбка. А "верх-вниз" проблемы. Мда.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 ... 6
ОтправитьПечать