Создать форму из текстового DFM

отредактировано 07:06 Раздел: FastScript
Здраствуйте,

научите как создать форму из текстового DFM
при помощи скриптера.

Спасибо.
Дмитрий.

Комментарии

  • отредактировано 07:06
    dmitry72 написал:
    научите как создать форму из текстового DFM
    при помощи скриптера.
    а такое возможно средствами FastScript?

    Думаю тут надо очень много работать, писать юниту которая обрабатывала бы DFM-файл и строила в runtime форму...
    Извините, если не прав

  • Vlad MatvienkoVlad Matvienko Mariupol
    отредактировано 07:06
    procedure CreateCustomForm (const dfm_file_name: string );
    var
    form: TForm;
    FileStream: TFileStream;
    MemoryStream: TMemoryStream;
    begin
    // создание формы на основе внешнего dfm файла

    Form := TForm.CreateNew(nil);
    FileStream := TFileStream.Create(dfm_file_name, fmOpenRead);
    MemoryStream := TMemoryStream.Create();
    ObjectTextToResource(FileStream, MemoryStream);
    MemoryStream.Position :=0;
    MemoryStream.ReadComponentRes(Form);
    MemoryStream.Destroy();
    FileStream.Destroy();

    Form.ShowModal();
    Form.Destroy();
    end;
    //

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

    Правда, там все не так гладко и есть пару нюансов именно при создании форм из dfm с кучей компонентов, связанных с RegiterClass и тем, что форма в dfm должны быть класса TForm.
  • отредактировано 07:06
    >и тем, что форма в dfm должны быть класса TForm.


    обходимо.
    берем стринг с DFM и правим первую строку прямо в рантайм на
    object Form1 : TForm\r\n
  • отредактировано 07:06
    Ну, допустим мы создали форму из DFM. Как сейчас в скрипте привязать логику, как обращаться к элементам этой формы.. Че-та я не понимаю...
  • отредактировано 07:06
    >Как сейчас в скрипте привязать логику, как обращаться к элементам этой >формы..

    К элементам формы обращаться можно по имени
    FindComponent

    А логику...
    Думаю что если скриптер поставлен на форму и в него положен скрипт,
    то и скрипт вместе с ресурсами сохраниться и восстановиться из DFM.

  • отредактировано 07:06
    dmitry72 написал:
    А логику...
    Думаю что если скриптер поставлен на форму и в него положен скрипт,
    то и скрипт вместе с ресурсами сохраниться и восстановиться из DFM.
    А вот это надо попробовать! Может кто-нить реализует прототип такого приложения???.. небольшой рабочий примерчик не помешает...

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.