Jump to content
View in the app

A better way to browse. Learn more.

FGX Native

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Реализовать поддержку фреймов

Featured Replies

Предлагаю реализовать поддержку фреймов как в VCL или FMX, но с одним добавлением - чтобы можно было задать для фрейма возможность загрузки своего содержимого либо по требованию (как в режиме выполнения, так и в режиме дизайна), либо автоматически (как в FMX)).

А зачем? Есть же возможность использовать форму как фрейм, даже демка есть. Ну а загружайте когда создаете, просто не совсем понятно зачем мне форма без содержимого если оно загружается.

  • Author

В демке формы используются даже под каждый элемент горизонтального списка. Мне кажется - это крайне некрасивое решение. Теоретически фреймы как минимум должны занимать меньше ресурсов. Ну и естественно форму нельзя использовать как фрейм в режиме проектирования.

  • Administrators

Добрый вечер,

Мои пять копеек на счет фреймов. Я согласен, что фреймы нужны и полезны. Да, можно встраивать формы, но куда проще кинуть фрейм, чем кодом встраивать форму. Более того, у меня уже почти реализованный вариант фреймов. Однако, все уперлось в то, что RAD Studio не дает API для добавления фреймов для сторонних фреймворков. Поэтому на текущий момент, я научил ее создавать фреймы и работать с ними в дизайнере. Однако, кинуть фрейм на форум через палитру компонентов нельзя. Единственный способ, это руками прописать класс фрейма в dfm файле формы, что для публичного релиза не годится.

Чтобы не быть голословным:

image.pngimage.png

 

Добрый вечер,

По вашему примеру, как прописать класс фрейма в dfm файле формы?

013.thumb.png.4bd31bdad7bba9282092279df16b86e5.png

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 by Александр Клопоцкий

  • Administrators
7 минут назад, Александр Клопоцкий сказал:

По вашему примеру, как прописать класс фрейма в dfm файле формы?

Так код фреймов не выпущен. Поэтому сейчас даже если прописать, ничего не будет. Могу в принципе закончить текущий вариант и встроить его в либу, чтобы хотя бы руками можно было бы пока через dfm встраивать

Лично я в FMX фреймы создаю динамически в рантайме (через фабрику классов), а необходимости их вставки в режиме разработки у меня нет.
Поэтому в FGX устроит поддержка фреймов в текущем варианте

Edited by tumaso

13 часов назад, tumaso сказал:

Лично я в FMX фреймы создаю динамически в рантайме (через фабрику классов), а необходимости их вставки в режиме разработки у меня нет.
Поэтому в FGX устроит поддержка фреймов в текущем варианте

+

  • 2 weeks later...

Create an account or sign in to comment

Recently Browsing 0

  • No registered users viewing this page.

Account

Navigation

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.