Вверх ↑
Этот топик читают: Гость
Ответов: 95
Рейтинг: 2
#1: 2013-02-22 16:28:04 ЛС | профиль | цитата
пытаюсь ограничить минимальные размеры формы. но после уменьшения ширины формы до минимума, расширить её уже не удаётся. помогите поправить.
code_30413.txt
карма: 0

0
файлы: 1code_30413.txt [600B] [117]
Ответов: 1536
Рейтинг: 176
#2: 2013-02-22 16:36:58 ЛС | профиль | цитата
Abracadabra, компонент MinMaxSize раздел контролы.
Add(MainForm,12315041,301,175)
{
Width=600
Height=400
Position=1
}
Add(MinMaxSize,5068449,308,224)
{
EnabledMinMax=0
MinWidth=600
MinHeight=400
MaxWidth=0
MaxHeight=0
}
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 9906
Рейтинг: 351
#3: 2013-02-22 18:55:39 ЛС | профиль | цитата
А есть штатные точки у любого Win-элемента: HeightControls и WidthControls
карма: 9

0
Гость
Ответов: 17029
Рейтинг: 0
#4: 2013-02-24 21:33:45 правка | ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2025-01-12 10:56:44
карма: 0

0
Ответов: 9906
Рейтинг: 351
#5: 2013-02-24 22:14:03 ЛС | профиль | цитата
Abracadabra писал(а):
посмотри мой пример

Угу.
Посмотри тоды мой

Add(MainForm,13546044,287,182)
{
Left=100
Top=100
Width=600
Point(WidthControls)
Point(HeightControls)
Point(Width)
Point(Height)
link(WidthControls,5425711:reCalc,[(293,173)(279,173)])
link(HeightControls,8457611:reCalc,[])
}
Add(MathParse,5425711,266,77)
{
DataCount=3
MathStr="max(%3-%1 ,%2)"
ResultType=0
Point(reCalc)
link(X1,13546044:Width,[(272,68)(258,68)(258,222)(293,222)])
link(X3,4791473:Var2,[(286,68)(328,68)])
}
Add(MathParse,8457611,287,133)
{
MathStr="max(200-%1 ,%2)"
ResultType=0
Point(reCalc)
link(X1,4791473:Var1,[(293,117)])
}
Add(GetDataEx,4791473,322,112)
{
Angle=2
link(Data,13546044:Height,[(328,222)(300,222)])
}
Важно: результаты вычислений должны быть целыми (не помню уже почему).
А вот способ получения этого целого результата - не важен, естественно
карма: 9

1
Голосовали:Abracadabra
Ответов: 95
Рейтинг: 2
#6: 2013-02-25 10:57:11 ЛС | профиль | цитата
Galkov писал(а):
Посмотри тоды мой
шикарно, сам бы я наверно ещё долго до такого варианта думал. спасибо!
карма: 0

0
Разработчик
Ответов: 26324
Рейтинг: 2147
#7: 2013-02-25 11:06:00 ЛС | профиль | цитата
На кой хрен использовать точки, когда для формы компонент отдельный есть Странный народ
карма: 22

0
Ответов: 9906
Рейтинг: 351
#8: 2013-02-25 11:46:52 ЛС | профиль | цитата
nesco писал(а):
На кой хрен использовать точки, когда для формы компонент отдельный есть

А кто тебе сказал, что функционал реального приложения ограничен задачами минимакса.
Например, поведение как в примере -- ты таким элементом не обеспечишь.

Странный тот, кто думает, что минимакс - это потолок человеческого интеллекта
карма: 9

0
Разработчик
Ответов: 26324
Рейтинг: 2147
#9: 2013-02-25 13:39:08 ЛС | профиль | цитата
Galkov писал(а):
Например, поведение как в примере -- ты таким элементом не обеспечишь.

Какие ваши доказательства (с)

Чем вот это, отличается от приведенного примера

Add(MainForm,13546044,168,126)
{
Left=100
Top=100
Width=600
Point(WidthControls)
Point(HeightControls)
Point(Width)
Point(Height)
}
Add(MinMaxSize,7748238,168,168)
{
EnabledMinMax=0
MinHeight=200
MaxWidth=0
MaxHeight=0
}


карма: 22

0
Ответов: 1536
Рейтинг: 176
#10: 2013-02-25 13:50:33 ЛС | профиль | цитата
nesco, я полагаю, что Galkov, каким-либо образом выпустил из виду элемент MinMaxSize, и даже не смотрел ранее приведённый мной пример использования компонента. Либо хочет подвести разговор о неразумном применении данного элемента.
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Разработчик
Ответов: 26324
Рейтинг: 2147
#11: 2013-02-25 14:08:36 ЛС | профиль | цитата
ser_davkin писал(а):
Либо хочет подвести разговор о неразумном применении данного элемента.

Так я его специально и сделал, чтобы не использовать элементы математики.
карма: 22

0
Ответов: 9906
Рейтинг: 351
#12: 2013-02-25 14:46:13 ЛС | профиль | цитата
ser_davkin, Вы ошибаетесь.

Упустил: Коллега, ты сам-то понял, чего сказал
Лучше спроси у nesco, знал ли он об этом функционале, когда элемент рисовал

Применение данного элемента весьма разумно, если ты себе не можешь представить задачи сложнее минимакса.
Если так - нет вопросов.

Если твои ограничения начинают зависеть от каких то других условий на внутренних контролах (да хоть бы от длины надписи в каком-то Лэйбле), тогда начинается "борьба с чужим интеллектом".
Это, вообще, могут не быть ограничения. Мало ли... Почему обязательно минимум, или максимум. Чего, в русском языке слов, что-ли других нету...

Условие именно минимума, или именно максимума -- это интеллект. Его отсутствие обладает преимуществом: с ним не надо бороться.
Но и недостатком (для некоторых): нужны мозги (это не мой недостаток).
Вот я сторонник подхода, когда не я думаю за пользователя, а предоставляю возможность это делать самому.
А nesco - противоположного. Он предпочитает "три" специализированных элемента (в которых он уже как бы все придумал за пользователя), взамен одного универсального.

Ну и ладно. Кого то обращать в свою веру -- не есть моя цель.






------------ Дoбавленo в 14.46:
nesco писал(а):
Какие ваши доказательства

Мог бы и сам ручками попробовать сделать высоту больше ширины
карма: 9

0
Разработчик
Ответов: 26324
Рейтинг: 2147
#13: 2013-02-25 15:04:09 ЛС | профиль | цитата
Galkov писал(а):
Мог бы и сам ручками попробовать сделать высоту больше ширины

Вот как ты сказал, так я и попробовал -- работает. Или я что-то не понял, или давай свой пример, где я не смогу применить компонент MinMaxSize для формы. Я вообще не понимаю, к чему бадяга, точки есть, их никто не отменял. Любой может их использовать. А вот к тебе вопрос, как к одному из разработчиков -- что будут больще весить для ограничения формы по размерам -- два MathParse или один MinMaxSize, который использует простое заполнение определенной структуры при обработке всего одного сообщения WM_GETMINMAXINFO
------------ Дoбавленo в 15.04:
Galkov писал(а):
предпочитает "три" специализированных элемента

Пардонсе -- а это вообще о чем
Galkov, я при разработке чего-то стараюсь не рассчитывать на то, что у пользователя будет твой уровень знаний
карма: 22

0
Ответов: 9906
Рейтинг: 351
#14: 2013-02-25 15:44:56 ЛС | профиль | цитата
nesco писал(а):
Вот как ты сказал, так я и попробовал -- работает

Ну ты чего слов-то простых не понимаешь, блин.
Да, у тебя работает.
А я хочу, чтобы НЕ работало.
И в моем примере это реализовано. Что, заметить это трудно ???
Сделай, что бы в твоем это было реализовано. И у тебя появится та самая математика, НЕ использование которой и было твоей целью. Разве ты не это сказал
Дальше цитата: к чему была эта бодяга.
Которую я и не заводил. Меня спросили почему, я ответил: случаются в жизни ситуации, которые применением минимума или максимума не ограничиваются
Ты думаешь, что таких ситуаций не бывает, а я думаю, что бывают.
Ну и слава богу. Думай.
Пусть, вообще, каждый думает ка хочет.




nesco писал(а):
Пардонсе -- а это вообще о чем

Да ладно тебе.

Будем считать что я немного гиперболизировал наши давние диспуты.
Совсем чуть-чуть.
Таки это же ты делал MinMaxSize. А я - (Width|Height)Controls

В коде ты сидишь на WM_GETMINMAXINFO, а я -- на WM_WINDOWPOSCHANGING. Не сложнее "простого заполнения структуры".
Опять же, мне представляется что второй механизм винды более универсальный, и первый базируется на использовании как раз второго (в дефолте, естественно)
Руку на отсечение не дам. Но пока думаю, что именно так.



------------ Дoбавленo в 15.44:
nesco писал(а):
не рассчитывать на то, что у пользователя будет твой уровень знаний

Да, я знаю.
А я всегда исхожу из "презумпции невиновности".

Пользователь не глупее тебя. Пока не доказал обратного.
Тут мы не сходимся
карма: 9

0
Разработчик
Ответов: 26324
Рейтинг: 2147
#15: 2013-02-25 16:15:30 ЛС | профиль | цитата
Galkov писал(а):
Да, у тебя работает.А я хочу, чтобы НЕ работало.

Ниче не понимаю (с)
Galkov писал(а):
Сделай, что бы в твоем это было реализовано.

До сих пор не въехал, что конкретно в твоем примере сверхординарного
Galkov писал(а):
Ты думаешь, что таких ситуаций не бывает, а я думаю, что бывают

А я разве такое утверждал Мы говорили про конкретный пример ТС, а не про виртуальные возможности
nesco писал(а):
точки есть, их никто не отменял. Любой может их использовать

Пусть пользователь сам выбирает, что ему использовать, если знает вообще о существовании чего-то, окромя того, что сам нашел. Точки -- универсальный метод, но в большинстве случаев, их применение не оправдано. ИМХО.
Galkov писал(а):
Пользователь не глупее тебя

Не спорю, но статистика вопросов на форуме говорит об обратном. Хватит с нас выше крыши использования EventFromData вместо Memory
------------ Дoбавленo в 16.15:
Я кажется понял прикол твоего примера -- при возврате из полноэкранного режима он не возвращается к размерам из которых стартанул, и даже в исходные не возвращается, а возвращается в какие-то новые размеры. Ну, не знаю, мне это не особо нравится. Кому как, короче
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)