Jump to content

Динамическая загрузка компонентов в приложение из ресурсов *.DFM


EOR

Recommended Posts

Приветствую всех,

Пытаюсь реализовать сабж.

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

image.png.bcaa8050c61631219131045b7a2c9240.png

Вот содержимое MyUniPanel.dfm

object MyUniPanel: TUniPanel
  Left = 0
  Top = 0
  Width = 500
  Height = 400
  object UniMemo1: TUniMemo
    Left = 10
    Top = 10
    Width = 200
    Height = 100
    Hint = ''
    Lines.Strings = (
      'UniMemo1'
      'UniMemo1'
      'UniMemo1'
      'UniMemo1'
      'UniMemo1')
    TabOrder = 0
  end
end

Вот код, который подгружает панель

procedure TMainForm.UniButton1Click(Sender: TObject);
var
  StrStream: TStringStream;
  Component: TUniPanel;
begin
  StrStream := TStringStream.Create;
  try
    StrStream.LoadFromFile(UniServerModule.FilesFolderPath + 'MyUniPanel.dfm');
    Component := TUniPanel(StringToComponent(StrStream.DataString));
    Component.Parent := MainForm;
    Component.Align := alClient;
    Application.InsertComponent(Component);
  finally
    StrStream.Free;
  end;
end;

Что я делаю не так???

Заранее спасибо. Тестовый проект прикладываю.

 

UniGUI_DFM_Load_Test.zip

Link to comment
Share on other sites

Все заработало. Забыл отписаться просто.

image.png?_uid=17948412&hid=1.1.2&ids=174795960537346280&name=image.png&yandex_class=yandex_inline_content_320.mail:17948412.E4535865:1657647339205724742513715063777_1.1.2_174795960537346280

DFM

object MyUniForm: TUniForm
  Left = 0
  Top = 0
  Width = 500
  Height = 400
  Color = clSkyBlue
  object UniMemo1: TUniMemo
    Left = 10
    Top = 10
    Width = 200
    Height = 80
    Hint = ''
    Color = clMoneyGreen
    Lines.Strings = (
      'UniMemo1'
      'UniMemo1'
      'UniMemo1'
      'UniMemo1'
      'UniMemo1')
    TabOrder = 0
  end
  object Label1: TUniLabel
    Left = 220
    Top = 10
    Width = 31
    Height = 13
    Caption = 'Label1'
  end
  object Button1: TUniButton
    Left = 220
    Top = 30
    Width = 75
    Height = 25
    Caption = 'Button1'
    TabOrder = 0
    OnClick = UniButton1Click <-- не работает
  end
  object ListBox1: TUniListBox
    Left = 10
    Top = 110
    Width = 200
    Height = 60
    TabOrder = 1
    Items.Strings = (
      'ListBox1'
      'ListBox1'
      'ListBox1')  
  end
end

 

Если интересно выложу демку.

Только пока с обработчиками событий на контролах не разобрался. Чего то там пока все глухо :( 

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...