MAV и Resizer

Обсуждение MAV Direct ODBC

Модератор: Andrew™

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion и MAV который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Денис
Бывалый
Сообщения: 70
Зарегистрирован: 07 Июль 2005, 5:39
Откуда: Хабаровск
Контактная информация:

MAV и Resizer

Сообщение Денис »

Привет Андрей. Вот такая проблема. Окно с ресайзом и твоим вровзом, если просто менять размеры - все ок. Но вот возникла необходимость изменить размеры контролов, в частности листа. После их изменения вызываю Resizer.Reset(), чтоб он запомнил новые размеры и положение контролов. После этого если изменить размер окна, то кнопки и листбокс остаются на месте.

Для проверки можешь в своем примере сделать какое нибуть окно с атрибутом Resize, и бросить на него кнопку, по нажатию которой будет выполняться код Resizer.Reset().
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Re: MAV и Resizer

Сообщение Andrew™ »

Денис писал(а):Привет Андрей. Вот такая проблема. Окно с ресайзом и твоим вровзом, если просто менять размеры - все ок. Но вот возникла необходимость изменить размеры контролов, в частности листа. После их изменения вызываю Resizer.Reset(), чтоб он запомнил новые размеры и положение контролов. После этого если изменить размер окна, то кнопки и листбокс остаются на месте.

Для проверки можешь в своем примере сделать какое нибуть окно с атрибутом Resize, и бросить на него кнопку, по нажатию которой будет выполняться код Resizer.Reset().
совсем ничего не понял, ресайзер то какой?
Денис
Бывалый
Сообщения: 70
Зарегистрирован: 07 Июль 2005, 5:39
Откуда: Хабаровск
Контактная информация:

Сообщение Денис »

Версия MAV 1009, Clarion 6.3 - 9053. ABC шаблон ресайзера: WindowResize - Allows controls to be resizedwith window
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Сообщение Andrew™ »

Денис писал(а):Версия MAV 1009, Clarion 6.3 - 9053. ABC шаблон ресайзера: WindowResize - Allows controls to be resizedwith window
ну а какие вопросы ко мне, это к WindowResize'еру, MAV за местоположение контролов не отвечает, и всё равно непонимаю почему данный феномен имеет место быть, т к нигде в библе не далается изменение местоположения и размеров шаблонных контролов
Денис
Бывалый
Сообщения: 70
Зарегистрирован: 07 Июль 2005, 5:39
Откуда: Хабаровск
Контактная информация:

Сообщение Денис »

А с самим ресайзером ты ничего не делаешь ? Ты ведь на окно наварачиваешь еще свой WindowManager. Может при вызове Resizer.Reset что нибуть отрывается, незнаю, но на окнах без MAV такого непроисходит
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Сообщение Andrew™ »

Денис писал(а):А с самим ресайзером ты ничего не делаешь ? Ты ведь на окно наварачиваешь еще свой WindowManager. Может при вызове Resizer.Reset что нибуть отрывается, незнаю, но на окнах без MAV такого непроисходит
давай так, раз уж ты всё таки грешишь на MAV, есть демка ABCMAVT.APP, сделайт тоже самое там, далее сделай чистую APP без MAV с LIST и кнопками не шаблонными и там тоже самое сделай(по твоим словам без MAV работает) пришли мне, тогда будет более детальный разговор

а вообще такие задачи хорошо ренализуются при использовании сплитов, есть пользовательские - юзверь из таскает по окошку, есть программные (HIDE) программно меняем их позицию и тем самым меняются все размеры и местоположения контролов которые связаны с данным сплитом.
http://www.ingasoftplus.com/id68.htm
Аватара пользователя
Admin
Администратор
Сообщения: 3960
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Сообщение Admin »

Решать данную проблему через Split не совсем корректно!
2Ден: Сделай демку дяде ... :) У него же нет времени на то чтобы под каждого юзера с его проблемой самому придумывать демку ...
Ну и просто можно так сказать ---> докажи факт глюка примером! :)
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Admin
Администратор
Сообщения: 3960
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Сообщение Admin »

2Andrew™: Кстати EasyResizeAndSplit не ты писал ?
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Денис
Бывалый
Сообщения: 70
Зарегистрирован: 07 Июль 2005, 5:39
Откуда: Хабаровск
Контактная информация:

Сообщение Денис »

Про то что я проверял ситуацию в твоей демке я написал в первом посте. Пример с использованием стандартного листа выслал тебе на мыло
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Сообщение Andrew™ »

Admin писал(а):2Andrew™: Кстати EasyResizeAndSplit не ты писал ?
Я
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Сообщение Andrew™ »

Денис писал(а):Про то что я проверял ситуацию в твоей демке я написал в первом посте. Пример с использованием стандартного листа выслал тебе на мыло
интересная ситуация, что такое 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'е
Денис
Бывалый
Сообщения: 70
Зарегистрирован: 07 Июль 2005, 5:39
Откуда: Хабаровск
Контактная информация:

Сообщение Денис »

Какой ресайзер можешь тогда посоветовать
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Сообщение Andrew™ »

Денис писал(а):Какой ресайзер можешь тогда посоветовать
какой, какой, конечно же мой, о котором я тут говорил, ERS, очень гибок в настройках и самое главное стратегии выставляются в Window Formater'е, что более удобно чем через секцию Extension, есть понятие наследование стратегии, сплиты трёх типов, ну и перерисовки более оптимальные - APIшные, без последующего моргания при перерисовках и мусора после перерисовки.
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Сообщение Andrew™ »

Admin писал(а):Решать данную проблему через Split не совсем корректно!
это почему, ставим невидимый сплит и привязываем LIST к этому сплиту, когда надо меняем местоположение сплита, тем самым автоматом меняется размер LIST, а местоположение сплита сохраняется при закрытии и восстанавливается при открытии окна
Денис
Бывалый
Сообщения: 70
Зарегистрирован: 07 Июль 2005, 5:39
Откуда: Хабаровск
Контактная информация:

Сообщение Денис »

Andrew™ писал(а):
Admin писал(а):Решать данную проблему через Split не совсем корректно!
это почему, ставим невидимый сплит и привязываем LIST к этому сплиту, когда надо меняем местоположение сплита, тем самым автоматом меняется размер LIST, а местоположение сплита сохраняется при закрытии и восстанавливается при открытии окна
В моем случае split - это лишнее, а ресайзер посмотрю
Ответить