MAV и Resizer
Модератор: Andrew™
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion и MAV который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion и MAV который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
-
- Бывалый
- Сообщения: 70
- Зарегистрирован: 07 Июль 2005, 5:39
- Откуда: Хабаровск
- Контактная информация:
MAV и Resizer
Привет Андрей. Вот такая проблема. Окно с ресайзом и твоим вровзом, если просто менять размеры - все ок. Но вот возникла необходимость изменить размеры контролов, в частности листа. После их изменения вызываю Resizer.Reset(), чтоб он запомнил новые размеры и положение контролов. После этого если изменить размер окна, то кнопки и листбокс остаются на месте.
Для проверки можешь в своем примере сделать какое нибуть окно с атрибутом Resize, и бросить на него кнопку, по нажатию которой будет выполняться код Resizer.Reset().
Для проверки можешь в своем примере сделать какое нибуть окно с атрибутом Resize, и бросить на него кнопку, по нажатию которой будет выполняться код Resizer.Reset().
Re: MAV и Resizer
совсем ничего не понял, ресайзер то какой?Денис писал(а):Привет Андрей. Вот такая проблема. Окно с ресайзом и твоим вровзом, если просто менять размеры - все ок. Но вот возникла необходимость изменить размеры контролов, в частности листа. После их изменения вызываю Resizer.Reset(), чтоб он запомнил новые размеры и положение контролов. После этого если изменить размер окна, то кнопки и листбокс остаются на месте.
Для проверки можешь в своем примере сделать какое нибуть окно с атрибутом Resize, и бросить на него кнопку, по нажатию которой будет выполняться код Resizer.Reset().
ну а какие вопросы ко мне, это к WindowResize'еру, MAV за местоположение контролов не отвечает, и всё равно непонимаю почему данный феномен имеет место быть, т к нигде в библе не далается изменение местоположения и размеров шаблонных контроловДенис писал(а):Версия MAV 1009, Clarion 6.3 - 9053. ABC шаблон ресайзера: WindowResize - Allows controls to be resizedwith window
давай так, раз уж ты всё таки грешишь на MAV, есть демка ABCMAVT.APP, сделайт тоже самое там, далее сделай чистую APP без MAV с LIST и кнопками не шаблонными и там тоже самое сделай(по твоим словам без MAV работает) пришли мне, тогда будет более детальный разговорДенис писал(а):А с самим ресайзером ты ничего не делаешь ? Ты ведь на окно наварачиваешь еще свой WindowManager. Может при вызове Resizer.Reset что нибуть отрывается, незнаю, но на окнах без MAV такого непроисходит
а вообще такие задачи хорошо ренализуются при использовании сплитов, есть пользовательские - юзверь из таскает по окошку, есть программные (HIDE) программно меняем их позицию и тем самым меняются все размеры и местоположения контролов которые связаны с данным сплитом.
http://www.ingasoftplus.com/id68.htm
- Admin
- Администратор
- Сообщения: 3959
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 25 раз
- Поблагодарили: 22 раза
- Контактная информация:
Решать данную проблему через Split не совсем корректно!
2Ден: Сделай демку дяде ... У него же нет времени на то чтобы под каждого юзера с его проблемой самому придумывать демку ...
Ну и просто можно так сказать ---> докажи факт глюка примером!
2Ден: Сделай демку дяде ... У него же нет времени на то чтобы под каждого юзера с его проблемой самому придумывать демку ...
Ну и просто можно так сказать ---> докажи факт глюка примером!
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
интересная ситуация, что такое MAV Browse - это LIST с динамическим HEADER'ом, если в свойствах шаблона отключить на закладке Other иконки индикации сортировки то динамический HEADER не строится и всё работает пучком.Денис писал(а):Про то что я проверял ситуацию в твоей демке я написал в первом посте. Пример с использованием стандартного листа выслал тебе на мыло
а что такое динамический HEADER - это трючок по созданию CREATE:STRING контролов в CREATE:List контроле, штатно через CREATE сразу создать CREATE:STRING в CREATE:List нельзя, а вот потом через SetPatrent - можно, но видать клаша про это никак не знает
почему работает до Resizer.Reset() нормальное изменение размеров LIST, так потому что инициализация Resizer'а была раньше инициализации MAV Browse и создание динамического HEADER'а
при вызове Resizer.Reset() происходит переинициализация Resizer'а, тут он натыкается на хитрые CREATE:String контролы и кранты...
выход конечно есть, после первой инициализации запомнить RECORDS(Resizer.ResizeList), а после .Reset() удалить все записи в этом списке больше запомненного количества, тады клаша опять не будет видеть динамический LIST HEADER
самое, конечно, простое решение отказаться от этого штатного WindowResizer'а
данную ситуацию багом в MAV назвать не могу, скоее это баг в WindowResizer'е
какой, какой, конечно же мой, о котором я тут говорил, ERS, очень гибок в настройках и самое главное стратегии выставляются в Window Formater'е, что более удобно чем через секцию Extension, есть понятие наследование стратегии, сплиты трёх типов, ну и перерисовки более оптимальные - APIшные, без последующего моргания при перерисовках и мусора после перерисовки.Денис писал(а):Какой ресайзер можешь тогда посоветовать
это почему, ставим невидимый сплит и привязываем LIST к этому сплиту, когда надо меняем местоположение сплита, тем самым автоматом меняется размер LIST, а местоположение сплита сохраняется при закрытии и восстанавливается при открытии окнаAdmin писал(а):Решать данную проблему через Split не совсем корректно!
-
- Бывалый
- Сообщения: 70
- Зарегистрирован: 07 Июль 2005, 5:39
- Откуда: Хабаровск
- Контактная информация:
В моем случае split - это лишнее, а ресайзер посмотрюAndrew™ писал(а):это почему, ставим невидимый сплит и привязываем LIST к этому сплиту, когда надо меняем местоположение сплита, тем самым автоматом меняется размер LIST, а местоположение сплита сохраняется при закрытии и восстанавливается при открытии окнаAdmin писал(а):Решать данную проблему через Split не совсем корректно!