Меню сайта
Мини-чат
Чтобы добавить сообщение, необходимо авторизоваться.
Главная » Статьи » Не стандартные примеры на Delphi » Pascal

Создание объектов любого типа

CLASSES.PAS определяет функцию с именем FindClass, возвращающую классовую ссылку на этот класс (такую же, как и при регистрации класса). Вот пример, который динамически создает компоненты на основе имени класса, введенного в поле редактирования. Не забывайте при этом вызвать RegisterClasses и перечислять все возможные классы, которые вы имеете намерение создать.


   
unit Unit1;

interface

uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls, Grids, DBGrids, ExtCtrls, DBCtrls, DB, DBTables;

type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
public
NextTop : integer;
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
NewObj : TControl;
NewClass: TPersistentClass;
begin
NewClass := FindClass(Edit1.Text);
NewObj :=
TControl(TComponentClass(NewClass).Create(Self));
NewObj.Parent := Self;
NewObj.Name := NewObj.ClassName+IntToStr(NextTop);
NewObj.Top := NextTop;
NextTop := NextTop+20;
end;

initialization
RegisterClasses([TButton,TEdit,TLabel]);
end.
Категория: Pascal | Добавил: DelphiAiX (09.05.2012)
Просмотров: 562 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]