x11 Posted October 28, 2021 Share Posted October 28, 2021 Во фрейме есть несколько контейнеров TuniFieldContainer. Layout построен на Border. Т.е. пользователь может менять размеры контейнеров мышкой. Но на бэкэнде как узнать новый размер контейнера, чтобы сохранить ширину или высоту. И чтобы при следующем сеансе восстановить те размеры, которые установил для себя пользователь. Quote Link to comment Share on other sites More sharing options...
Sherzod Posted October 28, 2021 Share Posted October 28, 2021 На данный момент, думаю Вы можете установить общий обработчик для всех панелей на контейнере. procedure TMainForm.UniPanel1Resize(Sender: TUniControl; OldWidth, OldHeight: Integer); begin oldWidth OldHeight (Sender as TUniPanel).Name end; Quote Link to comment Share on other sites More sharing options...
x11 Posted October 28, 2021 Author Share Posted October 28, 2021 Извините, я не понял, при чем здесь TuniPanel? Quote Link to comment Share on other sites More sharing options...
Sherzod Posted October 28, 2021 Share Posted October 28, 2021 1 minute ago, x11 said: Извините, я не понял, при чем здесь TuniPanel? Простите, это я на примере этой демо: \FMSoft\Framework\uniGUI\Demos\Desktop\Clientside Alignment - Layout Border Quote Link to comment Share on other sites More sharing options...
x11 Posted October 28, 2021 Author Share Posted October 28, 2021 Вопрос именно по компоненте TuniFieldContainer. Quote Link to comment Share on other sites More sharing options...
x11 Posted October 28, 2021 Author Share Posted October 28, 2021 Поймите, проблема не в этом конкретном событии. А в том, что когда пользователь меняет размер панели или контейнера в браузере, то на бэкэнде размер остается старый. Quote Link to comment Share on other sites More sharing options...
Sherzod Posted October 28, 2021 Share Posted October 28, 2021 14 minutes ago, x11 said: А в том, что когда пользователь меняет размер панели или контейнера в браузере, то на бэкэнде размер остается старый. Понимаю. Но, с другой стороны, это и есть Client-side alignment. Quote Link to comment Share on other sites More sharing options...
x11 Posted October 28, 2021 Author Share Posted October 28, 2021 Хорошо, тогда как в onResize назначить новые размеры? код в этом событии не работает (Sender as TuniPanel).Width := (Sender as TuniPanel).Width; код тоже не работает: uniPanel1.Width := (Sender as TuniPanel).Width; Quote Link to comment Share on other sites More sharing options...
x11 Posted October 28, 2021 Author Share Posted October 28, 2021 Смотрите какая ситуация. На форме три панели, я их обвел красным. Пользователь тянет за воображаемый сплиттер влево, я его обозначил синим. По идее меняется размер левой (первой) панели, но код: procedure TfrdAppSettings.pnlSysfilesLeftResize(Sender: TUniControl; OldWidth, OldHeight: Integer); begin UniMainModule.StoreRestore.StorePropertiesToDB(self, Sender as TuniPanel, constWidth);// сохранить в базу размер ShowMessage((Sender as TuniPanel).Name); end; показывает имя средней панели. Тогда как получить новую ширину левой панели? Т.е. получается, что у левой панели (LayoutConfig.Region := west) событие Resize никогда не срабатывает. Quote Link to comment Share on other sites More sharing options...
x11 Posted October 28, 2021 Author Share Posted October 28, 2021 1 hour ago, Sherzod said: Clientside Alignment - Layout Border берем ваш пример, добавляем код procedure TMainForm.UniPanel1Resize(Sender: TUniControl; OldWidth, OldHeight: Integer); begin ShowMessage((Sender as TuniPanel).Name); end; Вопрос. Как узнать новые размеры UniPanel1? Quote Link to comment Share on other sites More sharing options...
Sherzod Posted October 28, 2021 Share Posted October 28, 2021 3 hours ago, x11 said: И чтобы при следующем сеансе восстановить те размеры, которые установил для себя пользователь. Есть одно решение на основе stateful (CookieProvider). Quote Link to comment Share on other sites More sharing options...
Sherzod Posted October 28, 2021 Share Posted October 28, 2021 Quote Link to comment Share on other sites More sharing options...
x11 Posted October 29, 2021 Author Share Posted October 29, 2021 14 hours ago, Sherzod said: Есть одно решение на основе stateful (CookieProvider). Вы не поняли. Я не прошу решения, как хранить и восстанавливать размеры. Я не могу получить размеры измененной панели. Событие просто не срабатывает. Как это сделать? Quote Link to comment Share on other sites More sharing options...
Sherzod Posted October 29, 2021 Share Posted October 29, 2021 41 minutes ago, x11 said: Событие просто не срабатывает. Пожалуйста, отправьте запрос в портал поддержки. Quote Link to comment Share on other sites More sharing options...
x11 Posted October 29, 2021 Author Share Posted October 29, 2021 у вас даже support-портал глючит Quote Link to comment Share on other sites More sharing options...
x11 Posted October 29, 2021 Author Share Posted October 29, 2021 21 minutes ago, Sherzod said: тправьте запрос в портал поддержки. отправил http://jira.fmsoft.net/servicedesk/customer/portal/4/FSD-4260 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.