Jump to content
uniGUI Discussion Forums

loginov_d

Members
  • Content Count

    4
  • Joined

  • Last visited

Community Reputation

1 Neutral

About loginov_d

  • Rank
    Newbie
  1. Проблема устранена в версии 1.10.0.1457
  2. Как оказалось, UniGui передает высоту рабочей области скроллбокса только один раз. Используется свойство ScrollHeight, которое было определено автоматически в дизайн-тайме (в инспекторе объектов его не видно). Мне же потребовалось расположить на скроллбоксе несколько TUnimPanel со свойством Height=auto. Получилось, что реальная суммарная высота панелек отличается от размера, который был в свойстве ScrollHeight, в результате компоненты в скроллбоксе обрезались то снизу, то сверху. Я потратил почти весь день на то, чтобы решить эту проблему. Решить её только на стороне браузера не получилось, поскольку UniGui прячет некоторые детали скроллбокса. Если я вызываю UnimScrollBox1.ScrollHeight := 1000, то видно, что UniGui обращается к какому-то дополнительному объекту и именно для него вызывает setHeight(1000). Как достучаться до этого объекта из кода JS - я не разобрался. Пришлось прибегнуть в Ajax-запросу. Для UnimScrollBox1 написал клиентский обработчик: function resize(sender, info, eOpts) { var h = MainmForm.UnimPanel1.el.dom.offsetHeight + MainmForm.UnimPanel2.el.dom.offsetHeight + MainmForm.UnimPanel3.el.dom.offsetHeight + MainmForm.UnimPanel4.el.dom.offsetHeight; ajaxRequest(MainmForm.UnimScrollBox1, 'SetScrollHeight', { "sh1": h }); } Обработка Ajax-запроса: procedure TMainmForm.UnimScrollBox1AjaxEvent(Sender: TComponent; EventName: string; Params: TUniStrings); begin if EventName = 'SetScrollHeight' then UnimScrollBox1.ScrollHeight := StrToInt(Params.Values['sh1']); end; Есть ли идеи как решить задачу более красиво? Неплохо было бы, если бы данную задачу мог решить UniGui без написания дополнительного кода.
  3. loginov_d

    TUnimPanel / TUnimContainerPanel height autosize

    Кстати, компонент TUnimFieldSet обеспечивает автоматическую настройку высоты, но у него другая проблема: если компонентов TUnimFieldSet несколько, то между ними образуется большое пространство, которое невозможно убрать с помощью имеющихся настроек (это - на последней триальной версии)
  4. Моя организация приняла решение разработать веб-приложение с использованием UniGui. Благодаря поддержки Sencha ExtJS 6.5.3, теперь можно использовать в UniGui набор компонентов Mobile, которые используют компоненты Modern из ExtJS. Благодаря этому, приложением можно пользоваться на смартфонах, на планшетах и на обычных компьютерах. Большой недостаток UniGui заключается в том, что документации почти никакой нет, огромное время приходится тратить на то, чтобы разобраться с элементарными вещами. Вчера я весь день потратил на то, чтобы заставить компоненты TUnimPanel / TUnimContainerPanel автоматически изменять свою высоту в зависимости от расположенных на них компонентов. Я взял панель TUnimContainerPanel, установил тип вывавнивания - клиентское, установил свойство vbox, изменил для наглядности цвет, кинул на него несколько компонентов TUnimEdit (Width=100%) и пытался добиться того, чтобы TUnimContainerPanel менял свою высоту автоматически в зависимости от количества компонентов TUnimEdit. Это очень важно для того, чтобы программа выглядела красиво на смартфонах, планшетах и на обычных компьютерах. Нигде в интернете я не нашёл, как это сделать. Этого нет в документации UniGui. Этого нет в результатах поиска на форуме UniGui. В результате в голову пришла мысль проверить какие варианты могут быть для высоты элементов в HTML. Поиск показал, что существует значение "auto", я установил LayoutConfig.Height = 'auto' и всё заработало как я и хотел. Ура! У меня есть огромная просьба: сделайте у компонентов TUnimPanel / TUnimContainerPanel какое-нибудь свойство, например HeightAutoSize, при выставлении которого будет автоматически выставляться LayoutConfig.Height = 'auto'. Это позволит сэкономить огромное время для других разработчиков. P.S. Хотел перевести на английский и расположить в разделе "Общее", однако гугл-переводчик очень сильно искажает смысл моего сообщения. Если не затруднит, дайте знать о моём предложении разработчикам!
×