Posted January 5, 20232 yr Предлагаю реализовать поддержку фреймов как в VCL или FMX, но с одним добавлением - чтобы можно было задать для фрейма возможность загрузки своего содержимого либо по требованию (как в режиме выполнения, так и в режиме дизайна), либо автоматически (как в FMX)).
January 5, 20232 yr А зачем? Есть же возможность использовать форму как фрейм, даже демка есть. Ну а загружайте когда создаете, просто не совсем понятно зачем мне форма без содержимого если оно загружается.
January 7, 20232 yr Author В демке формы используются даже под каждый элемент горизонтального списка. Мне кажется - это крайне некрасивое решение. Теоретически фреймы как минимум должны занимать меньше ресурсов. Ну и естественно форму нельзя использовать как фрейм в режиме проектирования.
January 7, 20232 yr Administrators Добрый вечер, Мои пять копеек на счет фреймов. Я согласен, что фреймы нужны и полезны. Да, можно встраивать формы, но куда проще кинуть фрейм, чем кодом встраивать форму. Более того, у меня уже почти реализованный вариант фреймов. Однако, все уперлось в то, что RAD Studio не дает API для добавления фреймов для сторонних фреймворков. Поэтому на текущий момент, я научил ее создавать фреймы и работать с ними в дизайнере. Однако, кинуть фрейм на форум через палитру компонентов нельзя. Единственный способ, это руками прописать класс фрейма в dfm файле формы, что для публичного релиза не годится. Чтобы не быть голословным:
January 11, 20232 yr Добрый вечер, По вашему примеру, как прописать класс фрейма в dfm файле формы? Form.Main.pas unit Form.Main; interface {$SCOPEDENUMS ON} uses System.Types, System.Classes, FGX.Forms, FGX.Forms.Types, FGX.Controls, FGX.Controls.Types, FGX.Layout, FGX.Layout.Types; type TFormMain = class(TfgForm) private { Private declarations } public { Public declarations } end; var FormMain: TFormMain; implementation {$R *.xfm} uses System.SysUtils, FGX.Application, FGX.Dialogs, FGX.Log, Unit1; end. Form.Main.xfm object FormMain: TFormMain Size.Width = 360.000000000000000000 Size.Height = 590.000000000000000000 SavedSizeWidth = 360s SavedSizeHeight = 590s object Frame1: TFrame1 Size.Width = 360.000000000000000000 Size.Height = 640.000000000000000000 SavedSizeWidth = 360s SavedSizeHeight = 640s object fgButton1: TfgButton Text = 'fgButton1' Position.X = 56.000000000000000000 Position.Y = 80.000000000000000000 RelativePosition.Left = 56.000000000000000000 RelativePosition.Top = 80.000000000000000000 Size.Width = 120.000000000000000000 Size.Height = 36.000000000000000000 SavedSizeWidth = 120s SavedSizeHeight = 36s end object fgSwitch1: TfgSwitch Position.X = 224.000000000000000000 Position.Y = 88.000000000000000000 RelativePosition.Left = 224.000000000000000000 RelativePosition.Top = 88.000000000000000000 Size.Width = 44.000000000000000000 Size.Height = 26.000000000000000000 SavedSizeWidth = 44s SavedSizeHeight = 26s ColorDefaultName = 'Theme\Text\Text' end end end Unit1.pas unit Unit1; interface {$SCOPEDENUMS ON} uses System.Types, System.Classes, FGX.Forms, FGX.Forms.Types, FGX.Controls, FGX.Controls.Types, FGX.Layout, FGX.Layout.Types, FGX.Button.Types, FGX.StaticLabel, FGX.Switch, FGX.Button; type TFrame1 = class(TfgForm) fgButton1: TfgButton; fgSwitch1: TfgSwitch; private { Private declarations } public { Public declarations } end; var Frame1: TFrame1; implementation {$R *.xfm} uses System.SysUtils, FGX.Application, FGX.Dialogs, FGX.Log; end. Unit1.xfm object Frame1: TFrame1 Size.Width = 360.000000000000000000 Size.Height = 640.000000000000000000 SavedSizeWidth = 360s SavedSizeHeight = 640s object fgButton1: TfgButton Text = 'fgButton1' Position.X = 56.000000000000000000 Position.Y = 80.000000000000000000 RelativePosition.Left = 56.000000000000000000 RelativePosition.Top = 80.000000000000000000 Size.Width = 120.000000000000000000 Size.Height = 36.000000000000000000 SavedSizeWidth = 120s SavedSizeHeight = 36s end object fgSwitch1: TfgSwitch Position.X = 224.000000000000000000 Position.Y = 88.000000000000000000 RelativePosition.Left = 224.000000000000000000 RelativePosition.Top = 88.000000000000000000 Size.Width = 44.000000000000000000 Size.Height = 26.000000000000000000 SavedSizeWidth = 44s SavedSizeHeight = 26s ColorDefaultName = 'Theme\Text\Text' end end Edited January 11, 20232 yr by Александр Клопоцкий
January 11, 20232 yr Administrators 7 минут назад, Александр Клопоцкий сказал: По вашему примеру, как прописать класс фрейма в dfm файле формы? Так код фреймов не выпущен. Поэтому сейчас даже если прописать, ничего не будет. Могу в принципе закончить текущий вариант и встроить его в либу, чтобы хотя бы руками можно было бы пока через dfm встраивать
January 11, 20232 yr Лично я в FMX фреймы создаю динамически в рантайме (через фабрику классов), а необходимости их вставки в режиме разработки у меня нет. Поэтому в FGX устроит поддержка фреймов в текущем варианте Edited January 11, 20232 yr by tumaso
January 12, 20232 yr 13 часов назад, tumaso сказал: Лично я в FMX фреймы создаю динамически в рантайме (через фабрику классов), а необходимости их вставки в режиме разработки у меня нет. Поэтому в FGX устроит поддержка фреймов в текущем варианте +
January 25, 20232 yr Administrators После долгих и упорных поисков удалось найти обходное решение, чтобы отобразить кнопку встраивания фрейма на форму. Поддержка фреймов добавлена в 1.15.3.0.
Create an account or sign in to comment