КОМПЬЮТЕРНЫЕ КУРСЫ "ПОИСК"
[Главная страница] [Delphi] [Контакты]
Создайте консольный проект DynaForm и модуль DynaMemo.
Этот пример показывает, как динамически создать форму и TMemo. TMemo заполняется случайными символами.
На практике разработчики Delphi обычно создают формы в ходе разработки, что предполагает выведение нового класса из базового класса и визуальное построение содержания формы. Но для отображения формы не обязательно создавать класс-потомок класса TForm, особенно если это касается простой формы.
Предположим необходимо вывести на экран длинное сообщение (на основе строки) для пользователя. При этом вы не хотите использовать простое предопределенное окно сообщения, потому что оно будет выглядеть слишком большим и не предусматривает полосы прокрутки. Можно создать форму с компонентом TMemo и отобразить в нем строку. Ничто не препятствует созданию такой формы обычным визуальным способом, но это нужно будет сделать с помощью кода, особенно если необходима большая степень гибкости.
В неординарном в некотором смысле примере DynaForm нет формы, определенной в ходе разработки, но имеется модуль с такой функцией;
unit DynaMemo; interface procedure ShowStringForm (str: string); implementation uses Forms, Controls, StdCtrls; procedure ShowStringForm (str: string); var form: TForm; begin Application.CreateForm (TForm, form); form.caption := 'DynaForm'; form.Position := poScreenCenter; with TMemo.Create (form) do begin Parent := form; Align := alClient; Scrollbars := ssVertical; ReadOnly := True; Color := form.Color; BorderStyle := bsNone; WordWrap := True; Text := str; end; form.Show; end; end.
Форма создается путем вызова метода CreateForm глобального объекта Application. Написать такое код сложнее, но он позволяет добиться большей гибкости, поскольку параметр может зависеть от внешних настроек.
Функция ShowStringForm не выполняется с помощью события другой формы, поскольку в этой программе нет обычных форм. Вместо этого исходный код проекта изменен следующим образом.
program DynaForm; uses Forms, DynaMemo in 'DynaMemo.pas'; {$R *.RES} var str: string; begin str := ''; Randomize; while Length (str) < 2000 do str := str + Char (32 + Random (94)); ShowStringForm (str); Application.Run; end.
В результате выполнения программы DynaForm получается странного вида форма, заполненная случайными символами. Сама по себе она не представляет практической пользы, но подчеркивает идею.
Исходный код здесь.
Источник:Кэнту М. Delphi 7:Для профессионалов