Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26164
Рейтинг: 2127
#46: 2010-06-30 23:49:42 ЛС | профиль | цитата
evgenyatam писал(а):
форма движется.

Наконец-то, понятно стало, что имелось в виду под словом "ездит". А что, в оригинальном Delphi с VCL такое тоже есть
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#47: 2010-06-30 23:58:43 ЛС | профиль | цитата
nesco писал(а):
И не только у evgenyatam работает, много пользователей ее проверяли.
А твое, неподтвержденное видеоскриншотом, утверждение, я считаю набросом г...на на вентилятор

к сожалению Slim9009, прав и первый вариант не может работать идеально. Формула "((%1 + %2) > 250) * %2" не ограничивает размер окна, а всего лишь не позволяет ему измениться на значение меньше 250. Тестировать нужно тоже уметь, господа.

nesco писал(а):
А вот полна формулая для MinMax

а у этого варианта тот же самый недостаток только для обоих ограничений.

Вывод: нет никакого смысла пытаться реализовать ф-ал, который уже предоставлен API операционной системы.
------------ Дoбавленo в 23.58:
evgenyatam писал(а):
если попытаться уменьшить форму за левую или верхнюю границу меньше минимума или больше максимума - форма движется.
ps может это и не глюк. но как-то неожиданно

а с чего это должен быть глюк? Движение за левый или верхний край формы изменяет два параметра - позицию и размер. Если размер ограничен и не может быть изменен, то с чего это позиция должна перестать меняться?
карма: 27
0
Ответов: 1161
Рейтинг: 160
#48: 2010-06-30 23:58:59 ЛС | профиль | цитата
Есть некоторые проблемы с лицензией при попытке добавления компонента MinMaxInfo:
MinMaxInfo.txt писал(а):
-Вы можете свободно распротранять мою программу при условии неизменности ее дистрибутива.

Соответсвенно, при добавлении этого компонента в пакет нарушается его лицензия.
карма: 0

0
Разработчик
Ответов: 26164
Рейтинг: 2127
#49: 2010-07-01 00:00:40 ЛС | профиль | цитата
Dilma, а вот теперь ты мне ответь -- на кой черт, тогда, ты вставил эти точки, для какого понта, если они не предоставляют нужного функционала по ограничению размера
------------ Дoбавленo в 00.00:
LainX, где находится эта прога, дайте ссылку, я посмотрю на код. Если там используется API, то плевать можно на лицензию, по причине того, что код можно переписать как угодно под себя
карма: 22

0
Ответов: 1161
Рейтинг: 160
#50: 2010-07-01 00:05:19 ЛС | профиль | цитата
В первом посте была
http://www.hiasm.com//getfile/19146
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#51: 2010-07-01 00:07:21 ЛС | профиль | цитата
nesco писал(а):
а вот теперь ты мне ответь -- на кой черт, тогда, ты вставил эти точки, для какого понта, если они не предоставляют нужного функционала по ограничению размера

может быть не будем горячиться? Предлагаю посмотреть ревизию 1304 прежде чем столь категорично выражаться.
карма: 27
0
Разработчик
Ответов: 26164
Рейтинг: 2127
#52: 2010-07-01 00:29:14 ЛС | профиль | цитата
Dilma писал(а):
может быть не будем горячиться?

Ну, я спросил, ты ответил. Извини, что эмоционально спросил
------------ Дoбавленo в 00.29:
Dilma, ну нашел я описание установки размеров окна. Но какой смысл добавлять это во все контролы, достаточно прописать это в только формах
карма: 22

0
Ответов: 534
Рейтинг: 5
#53: 2010-07-01 00:40:21 ЛС | профиль | цитата
nesco писал(а):
достаточно прописать это в только формах
Если ты про включение в соответствующие компоненты точек для ограничения размера, выдранных из MinMaxInfo, то я только за.
------------ Дoбавленo в 00.40:
nesco писал(а):
Боюсь, что Slim9009, доэкспериментировался со своими KOL-ами, что теперь наводит тень на плетень и орет
Не надо, не разобрашивсь, валить всё на меня. Ведь
Dilma писал(а):
Slim9009, прав

карма: 0

0
Разработчик
Ответов: 26164
Рейтинг: 2127
#54: 2010-07-01 01:11:19 ЛС | профиль | цитата
Slim9009 писал(а):
Не надо, не разобрашивсь, валить всё на меня

А надо учиться нормально объяснять, как это сделал evgenyatam, которого, почему-то, я понял сразу
evgenyatam писал(а):
если попытаться уменьшить форму за левую или верхнюю границу меньше минимума или больше максимума - форма движется

А не просто
Slim9009 писал(а):
размер не изменяется, зато "форма ездит"

карма: 22

0
Ответов: 1379
Рейтинг: 86
#55: 2010-07-01 01:31:45 ЛС | профиль | цитата
[flood]
Slim9009 писал(а):
зато "форма ездит"

ага. по дорогам России [/flood]
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#56: 2010-07-01 01:54:06 ЛС | профиль | цитата
nesco писал(а):
Но какой смысл добавлять это во все контролы, достаточно прописать это в только формах

nesco, все же посмотри авторство и комментарий к ревизии 1304 - там и причина, и ссылка на топик форума даны с обсуждением проблемы. Если элемент MinMaxInfo работает на всех визуальных элементах, то им можно полностью заменить точки (WidthHeight)Controls и это будет более правильно.
карма: 27
0
Разработчик
Ответов: 26164
Рейтинг: 2127
#57: 2010-07-01 03:07:17 ЛС | профиль | цитата
Dilma писал(а):
Если элемент MinMaxInfo работает на всех визуальных элементах

Там интересная проблема при разворачивании формы получается -- она разворачивается только до максимального размера и возвращается всегда в нулевые координаты, если их не отслеживать, а если их отслеживать, то форма разворачивается из них за пределы экрана при отсутствии ограничения размеров. Давай, я попробую выложить то, что получилось и уже конкретно посмотрим, что можно сделать дальше

------------ Дoбавленo в 02.24:
Кажется понял, к чему это сделано
------------ Дoбавленo в 02.30:
На первый взгляд, немного разные вещи
WM_WINDOWPOSCHANGING, который используется в WidthControls и HeightControls позволяют изменить текущий размер, а WM_GETMINMAXINFO устанавливает границы размера, а не сам размер, те то, что я делал формулами
------------ Дoбавленo в 03.07:
Добавил. Можно посмотреть.

Насчет того, чтобы заменить WidthControls и HeightControls, на ум ничего не пришло. Вообще-то, ИМХО, этого делать не стоит, из-за разных алгоритмов работы -- в одном случае: отлавливаются текущие изменения размера, в другом: устанавливаются допустимые границы изменения размера
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#58: 2010-07-01 10:22:57 ЛС | профиль | цитата
ввиде элемента смотрелось лучше
карма: 27
0
Разработчик
Ответов: 26164
Рейтинг: 2127
#59: 2010-07-01 13:40:23 ЛС | профиль | цитата
Dilma писал(а):
ввиде элемента смотрелось лучше

Можно менеджером сделать. Но лишние связи сейчас -- совсем не комильфо
------------ Дoбавленo в 10.49:
Но в компоненте MinMaxInfo меня убило вот это

Астрамак писал(а):
1) В компонент был включен Универсальный Динамический Перехватчик оконных процедур.
2) Благодаря новому перехватчику было снято ограничение на число одновременно используемых компонентов.
3) Новый узел и событие: теперь ограничение можно как устанавливать, так и снимать


Ну и зверства. На несчастные десять строчек кода в обработчике, лепить такого горбатого. А название-то какое -- Универсальный Динамический Перехватчик оконных процедур
------------ Дoбавленo в 10.52:
Надо посмотреть внимательно разворачивание и сворачивание в различных режимах, меня это больше волнует. После отработки окончательного алгоритма можно подумать и об отдельном компоненте
------------ Дoбавленo в 13.40:
Сделал менеджером MinMaxSizeManager, но только для формы, для контролов корректно не работает

Пример:


Add(MainForm,2953706,112,112)
{
MinMaxSizeManager="minmax"
}
Add(MinMaxSizeManager,10813833,112,161)
{
Name="minmax"
EnabledMinMax=0
ControlMaxLeftTop=0
}

карма: 22

0
Разработчик
Ответов: 4698
Рейтинг: 426
#60: 2010-07-01 13:45:06 ЛС | профиль | цитата
Dilma писал(а):
ввиде элемента смотрелось лучше
nesco писал(а):
Можно менеджером сделать

Если речь о MinMax размеров контрола, то да, но тогда было бы полезнее его сделать для всех контролов, а не только для формы, в таком случае можно было бы регулировать размер например кнопок в слоях, но я не смотрел концепцию WM_GETMINMAXINFO, поэтому не могу с уверенностью сказать, что он подойдет для всех контролов, мое предложение лишь предложение ( )
карма: 10
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)