AIMP Forum

AIMP for PC => Предложения / Suggestions => Skin Editor, Skin Engine => Skin Engine => Topic started by: Kibermanick on September 11, 2015, 14:43:01

Title: [Есть решение] Предложение по выравниванию объектов
Post by: Kibermanick on September 11, 2015, 14:43:01
Предлагаю такую штуку. Дополнительно к существующей. Когда объекты, выравниваются относительно только одной стороны. То при растягивании окна они остаются на месте. Предлагаю что бы объекты еще могли позиционироваться пропорцианально.

(http://storage2.static.itmages.ru/i/15/0911/h_1441971750_8930105_2e8ac56797.png)
Title: Re: Предложение по выравниванию объектов.
Post by: Black_AVP_Bim on September 11, 2015, 16:00:49
Предлагаю что бы объекты еще могли позиционироваться пропорцианально.
Случай, близкий к экзотическим, к тому же частный - кнопки расположены симметрично от центра окна, а могут быть и с боку, и по вертикали. Математику всего этого представляете?
А частный случай можно разрешить и сейчас - с помощью скриптов.
Title: Re: Предложение по выравниванию объектов.
Post by: Zhenya on September 11, 2015, 16:11:55
Случай, близкий к экзотическим, к тому же частный - кнопки расположены симметрично от центра окна, а могут быть и с боку, и по вертикали. Математику всего этого представляете?
Согласен.

А частный случай можно разрешить и сейчас - с помощью скриптов.
Даже легче - с помощью контейнеров с выравниванием "laClient".
Title: Re: Предложение по выравниванию объектов.
Post by: Kibermanick on September 11, 2015, 16:27:25
Случай, близкий к экзотическим, к тому же частный - кнопки расположены симметрично от центра окна, а могут быть и с боку, и по вертикали. Математику всего этого представляете?
А частный случай можно разрешить и сейчас - с помощью скриптов.

Никакой разницы, по центру или с боку. Математика проста. Надо что бы расстояние преобразовывалось в проценты.
Title: Re: Предложение по выравниванию объектов.
Post by: Kibermanick on September 11, 2015, 16:28:35
Даже легче - с помощью контейнеров с выравниванием "laClient".

Вы серьезно. Это вообще не вариант.
Title: Re: Предложение по выравниванию объектов.
Post by: Kibermanick on September 11, 2015, 16:30:45
И да, на счет частного случая. Данный пример, просто пример. Элименты могут быть различными.
Title: Re: Предложение по выравниванию объектов.
Post by: Kibermanick on September 11, 2015, 16:49:25
А частный случай можно разрешить и сейчас - с помощью скриптов.

Я даже близко не программист. И не любитель. Даже не дилетант.
Title: Re: Предложение по выравниванию объектов.
Post by: Artem on September 11, 2015, 16:55:01
Кидаете панель, на нее - элементы, выравниваете панель как нужно, затем убираете у нее якоря.
Title: Re: Предложение по выравниванию объектов.
Post by: Kibermanick on September 11, 2015, 17:20:25
Кидаете панель, на нее - элементы, выравниваете панель как нужно, затем убираете у нее якоря.

Это ничего не даст.
Title: Re: Предложение по выравниванию объектов.
Post by: Tarik on September 11, 2015, 18:43:09
Даже легче - с помощью контейнеров с выравниванием "laClient".
+1
Title: Re: Предложение по выравниванию объектов.
Post by: Artem on September 11, 2015, 20:04:36
Это ничего не даст.

Разве? Вы попробуйте
Title: Re: Предложение по выравниванию объектов.
Post by: Kibermanick on September 11, 2015, 20:55:13
Разве? Вы попробуйте

Я пробовал. Результата ноль.
Title: Re: Предложение по выравниванию объектов.
Post by: Tarik on September 11, 2015, 21:12:01
Kibermanick, смотри пример. Использовал 3 вложенных контейнера с выравниванием laClient, в которых элементы не имеют привязок вообще никаких.
Title: Re: Предложение по выравниванию объектов.
Post by: Kibermanick on September 12, 2015, 08:53:25
Использовать миллиард контейнеров это бред.
Title: Re: Предложение по выравниванию объектов.
Post by: Artem on September 12, 2015, 11:09:52
Использовать миллиард контейнеров это бред.

Ну окей, настраивайте таким образом каждую кнопку, только расстояние между ними будет тоже прыгать.
Title: Re: Предложение по выравниванию объектов.
Post by: Black_AVP_Bim on September 12, 2015, 13:59:20
... Использовал 3 вложенных контейнера с выравниванием laClient, в которых элементы не имеют привязок вообще никаких.
Вполне лаконично получилось - куда уж проще. +1
Только маленький вопрос возник (когда то уже была у меня подобная ситуация): почему контейнеры расположились именно по горизонтали? Существует какой-то приоритет?
Title: Re: Предложение по выравниванию объектов.
Post by: Artem on September 12, 2015, 14:10:19
Вполне лаконично получилось - куда уж проще. +1
Только маленький вопрос возник (когда то уже была у меня подобная ситуация): почему контейнеры расположились именно по горизонтали? Существует какой-то приоритет?

Движок смотрит на одного из предков с отличным от laClient выравниванием и в зависимости от этого располагает группы горизонтально или вертикально
Title: Re: Предложение по выравниванию объектов.
Post by: Black_AVP_Bim on September 12, 2015, 19:23:17
Движок смотрит на одного из предков с отличным от laClient выравниванием и в зависимости от этого располагает группы горизонтально или вертикально
Но, в приведённом примере у всех родителей до самого окна выравнивание laClient. Как быть в подобной ситуации, если захочется расположить контейнеры вертикально?
К тому же, если у контейнера будет выравнивание, отличное от laClient, то растягивание будет невозможно.
Title: Re: Предложение по выравниванию объектов.
Post by: Tarik on September 12, 2015, 19:45:50
Но, в приведённом примере у всех родителей до самого окна выравнивание laClient. Как быть в подобной ситуации, если захочется расположить контейнеры вертикально?
К тому же, если у контейнера будет выравнивание, отличное от laClient, то растягивание будет невозможно.
Никто не мешает вложить еще один доп. контейнер.
Title: Re: Предложение по выравниванию объектов.
Post by: Zhenya on September 12, 2015, 21:20:16
К тому же, если у контейнера будет выравнивание, отличное от laClient, то растягивание будет невозможно.
Нет, laTop и laBottom разрешают растягивание в ширину, а laLeft и laRight в высоту.
Title: Re: Предложение по выравниванию объектов.
Post by: Black_AVP_Bim on September 12, 2015, 21:35:49
Нет, laTop и laBottom разрешают растягивание в ширину, а laLeft и laRight в высоту.
Да, так оно. Но если следовать совету Tarik'a, то по логике надо добавлять контейнер с выравниванием  laTop или laBottom, а растягивать надо по вертикали.
Вопрос, конечно, чисто теоретический, врядли это может где-то понадобиться. Пробовал принудительно расположить контейнеры по вертикали с выравниванием  laTop (laBottom), но как только назначаешь им выравнивание laClient, они выстраиваются по горизонтали.
Title: Re: Предложение по выравниванию объектов.
Post by: Tarik on September 13, 2015, 01:07:24
Да, так оно. Но если следовать совету Tarik'a, то по логике надо добавлять контейнер с выравниванием  laTop или laBottom, а растягивать надо по вертикали.
Вопрос, конечно, чисто теоретический, врядли это может где-то понадобиться. Пробовал принудительно расположить контейнеры по вертикали с выравниванием  laTop (laBottom), но как только назначаешь им выравнивание laClient, они выстраиваются по горизонтали.
Вот, сделал так, чтобы элементы равномерно располагались по высоте (добавлен один контейнер LayoutContainer5 laLeft, и для того, чтобы окно могло растягиваться, корневому контейнеру этого окна, LayoutContainer, выставлено свойство AutoSize = false)
Title: Re: Предложение по выравниванию объектов.
Post by: Tarik on September 13, 2015, 01:40:46
Ну и на последок - равномерное расположение элементов при растягивании во все встороны :)

Единственный недочет - растягиваются не контейнеры с содержимым (контейнеры с более темным фоном), а контейнеры-промежутки между ними, что в принципе не должно влиять на конечный результат.
Title: Re: Предложение по выравниванию объектов.
Post by: Black_AVP_Bim on September 13, 2015, 13:53:14
Ну и на последок - равномерное расположение элементов при растягивании во все встороны :)
Единственный недочет - растягиваются не контейнеры с содержимым (контейнеры с более темным фоном), а контейнеры-промежутки между ними, что в принципе не должно влиять на конечный результат.
Tarik,  спасибо за труды.
Внешне всё смотрится так, как надо, однако горизонтальное расположение контейнеров остаётся приоритетным. Если просто кинуть два контейнера с выравниванием alClient на форму , то они непременно расположатся по горизонтали и без некоторых ухищрений вертикально их не расставить. Может, стоит задуматься над этим моментом, добавить некое свойство контейнеру (родителю), указывающее на необходимое направление размещения в нём дочерних контейнеров для случая laClient у всех?
Title: Re: Предложение по выравниванию объектов.
Post by: Kibermanick on September 13, 2015, 15:17:23
Вот видите сколько трудностей.