Конференция "Прочее" » Align: К вопросам на засыпку.
 
  • KSergey © (10.08.16 14:22) [20]
    > Kilkennycat ©   (10.08.16 02:13) [9]
    > Если уж говорить точнее, то конфигурация зависит от ZOrder панелей

    Нет. Если панели имеют одного родителя - то зависит только от прядка присвоения алигнов.
    Во всяком случае я с вариантом зависимости от чего-ибо другого не встречался никогда.
  • DayGaykin © (10.08.16 14:30) [21]
    Удивительно, что несколько лет посвятив Delphi я никогда не задавался этим вопросом. Я делал сначала две формы top и client, а потом внутри второй делал client и right.

    Причем я помню точно, что на взаимное положение двух панелей alRight влияет их свойство left. Если мышкой переместить более правую панель влево, то он встанет слева.
    Front, Back не влияют.
  • Kilkennycat © (10.08.16 16:56) [22]
    А, значит, я это откуда-то из другой среды почерпнул, да в голове перемешалось...
  • Inovet © (10.08.16 19:12) [23]
    Вроде бы всегда считал, что будет вариант А.
    Но я так не делаю. Делаю две панели - первую топ вторую клиент, на вторую ещё две - райт и клиент. Просто потом так с этим удобнее работать, сплитеры там добавить проще, ну и не только 3 их может быть, может и сложнее что-то, и ещё какие-то соображения были, сходу не вспомню.
  • Тимохов Дима © (11.08.16 00:36) [24]
    Коллеги, предлагаю все же включить дельфи и применить принцип Игоря Шевченко, а именно - практика критерий истины.

    В результате вы увидите, что:
    1. Порядок присвоения Align не важен. Всегда будет вариант А.
    2. А потом надо залезть в метод, обозначенный мною выше, и сделать вывод, что всегда будет А.

    ЗЫ. Я тоже всегда считал, что в Align все как-то тухло - не поймешь, как оно будет. И тоже всегда для Panel2 и Panel3 делал родителя с alClient. Полез неск. лет назад изучать исходники VCL. Оказалось, что в дельфи клевые программисты и избавили меня от родителя для Panel2 и Panel3.
  • Sha © (11.08.16 00:56) [25]
    > Тимохов Дима ©   (11.08.16 00:36) [24]

    Вопрос о том, обладает ли человеческое мышление предметной истинностью,— вовсе не вопрос теории, а практический вопрос. В практике должен доказать человек истинность, т. е. действительность и мощь, посюсторонность своего мышления. Спор о действительности или недействительности мышления, изолирующегося от практики, есть чисто схоластический вопрос.

    Карл, ты слышишь, Карл)
  • Германн © (11.08.16 01:15) [26]

    > Тимохов Дима ©   (11.08.16 00:36) [24]
    >
    > Коллеги, предлагаю все же включить дельфи и применить принцип
    > Игоря Шевченко, а именно - практика критерий истины.
    >
    > В результате вы увидите, что:

    Действительно увидел.
    Но я как и Inovet ©   (10.08.16 19:12) [23]
    всегда использовал дополнительные панели.
  • Тимохов Дима © (11.08.16 01:34) [27]

    > Sha ©   (11.08.16 00:56) [25]

    Чот я не готов воспринимать философию так глубоко)))

    Лично мне приятно, что на вопрос автора у меня получилось дать правильный ответ без запуска Delphi, причем аргументированный (со ссылкой на исх. код VCL).

    ЗЫ Расстраивает слабость справки к Дельфи(((
  • Германн © (11.08.16 01:52) [28]

    > ЗЫ Расстраивает слабость справки к Дельфи(((
    >

    Да ладно тебе, Дим. Вполне терпимая справка.
  • Тимохов Дима © (11.08.16 02:00) [29]

    > Германн ©   (11.08.16 01:52) [28]
    >
    > > ЗЫ Расстраивает слабость справки к Дельфи(((
    > >
    >
    > Да ладно тебе, Дим. Вполне терпимая справка.


    Я не фанат МС, но могу сказать (уверенно), что формат MSDN: about, using, reference - идеален. Вернее, БЫЛ идеален. Сейчас (через internet) не могу найти, как справка была в MSDN раньше. Но именно раньше было круче всего - about, using, reference.
  • Kilkennycat © (11.08.16 03:34) [30]

    > всегда использовал дополнительные панели.

    как-то раз я их такую кучу наиспользовал, что форма нехило так тормозить начала :)
  • Тимохов Дима © (11.08.16 03:45) [31]

    > Kilkennycat ©   (11.08.16 03:34) [30]
    >
    > > всегда использовал дополнительные панели.
    >
    > как-то раз я их такую кучу наиспользовал, что форма нехило
    > так тормозить начала :)


    у меня вообще надстройка (фреймворк некий свой) над VCL.
    так он тааак тормозит из-за этих доп. панелей.
    рекомендация простая - купи машинку побыстрее.
    был недавно у заказчика поразился, почему они не ропщут - десктопы как сервера, да еще и мониторы в метр шириной)))
    сам то сижу на чем-то допотопном...  

    "бабло побеждает зло" (с) Умные люди.
  • Kilkennycat © (11.08.16 03:55) [32]

    > Тимохов Дима ©   (11.08.16 03:45) [31]

    ну, требуй у них такой же себе, скажи, что не можешь нормально делать для них прогу, так как твой комп круче на порядок, и ты боишься, что программа у них будет тормозить :)
  • Тимохов Дима © (11.08.16 03:57) [33]

    > Kilkennycat ©   (11.08.16 03:55) [32]
    >
    > > Тимохов Дима ©   (11.08.16 03:45) [31]
    >
    > ну, требуй у них такой же себе, скажи, что не можешь нормально
    > делать для них прогу, так как твой комп круче на порядок,
    >  и ты боишься, что программа у них будет тормозить :)

    Мой принцип простой - комп разработчика д.б. хуже, чем у заказчика.
    тогда, если немного хоть пооптимизируешь у себя, то у заказчика летать будет.
  • L_G © (11.08.16 08:10) [34]
    А вот если несколько контролов алигнятся к одному краю и важен их порядок, то, по крайней мере в семерке-классике имел значение не зет-ордер, и даже не порядок назначения проперти "алигн", а одна из координат контрола в момент назначения ему алигна к краю (например, для верхнего края - свойство "топ").
    То есть, если по координате верха он выше каких-то контролов, уже приалигненых к верху и ниже других, то встрянет между первыми и вторыми.
    (поди-ка догадайся об этом без подсматривания в исходник)
  • Sha © (11.08.16 10:24) [35]
    > Тимохов Дима ©   (11.08.16 01:34) [27]
    > Чот я не готов воспринимать философию так глубоко)))

    На самом деле и я тоже.
    Но цитата в свое время была одной из популярнейших.
  • L_G © (11.08.16 15:16) [36]

    > KSergey ©   (10.08.16 14:22) [20]
    > ...от прядка присвоения алигнов.
    > Во всяком случае я с вариантом зависимости от чего-ибо другого
    > не встречался никогда.
    Это потому, что при присвоении контролу алигна, скажем, к топу, его топ-координата обычно становится меньше топ-координаты того, который приалигнят следующим. Но если этого не произойдет - следующий контрол после приалигнивания таки окажется ближе к краю родителя.
    Присвойте свойству топ контрола число меньше нуля перед приалигниванием - и он гарантированно окажется в самом верху. (Проверить можно и в дизайнтайме.)
  • DayGaykin © (15.08.16 11:20) [37]
    Кстати, еще вопрос: что такое alCustom? Кто-нибудь этим пользовался и как?
  • Игорь Шевченко © (15.08.16 15:18) [38]
    В случае alCustom используются функции WinControl
       function CustomAlignInsertBefore(C1, C2: TControl): Boolean; virtual;
       procedure CustomAlignPosition(Control: TControl; var NewLeft, NewTop, NewWidth,
         NewHeight: Integer; var AlignRect: TRect; AlignInfo: TAlignInfo); virtual;

    и, соответственно, события
    FOnAlignInsertBefore
    FOnAlignPosition

    Поэтому и custom, что можно перекрывать методы и устанавливать пользовательские (custom) обработчики событий

    Это на вопрос: "что такое".
    Пользоваться не пользовался, нужды не было, хватало стандратного Align
  • DayGaykin © (16.08.16 21:12) [39]
    Спасибо за ответ! Умеете удивлять!
 
Конференция "Прочее" » Align: К вопросам на засыпку.
Есть новые Нет новых   [134467   +7][b:0][p:0.001]