Вниз
Скачать: CL | DM;

Создание компонента по его имени   Найти похожие ветки 

← →
Long   (2005-12-05 12:13) [0]

Такая проблемма:
Как создать объект, зная его имя ?
Т.е. есть несколько классов, у которых общий предок TForm. Ну или другой, не важно.

procedure X(ИмяКлассаФормы: string);
begin
  MyForm:=<ФункцияСоздающаяЭкземплярКлассаПоЕгомени(ИмяКлассаФормы)>;
end
Например в рантайме это выглядит примерно так:
Я в поле ввода набираю Form1 и нажав на кнопку, мне создается форма Form1 и т.п.
Вариант типа If - не предлагать :)


← →
Игорь Шевченко ©   (2005-12-05 12:15) [1]


> Я в поле ввода набираю Form1 и нажав на кнопку, мне создается
> форма Form1 и т.п.


FindClass + Create ?


← →
Long   (2005-12-05 12:20) [2]

А разве FindClass найдет не созданный объект ?


← →
Anatoly Podgoretsky ©   (2005-12-05 12:23) [3]

Long   (05.12.05 12:20) [2]
FindClass не ищет объектов


← →
Long   (2005-12-05 12:27) [4]

я вот так замутил,но не работает:

var MyProcessClass: TFormClass;
   MyProcessForm : TProcessForm;
begin
     MyProcessClass:=TFormClass(FindClass(MyFormClassName));
     MyProcessForm:=TProcessForm(MyProcessClass.Create(Application));

create проходит а на присвоении контролов вываливается. :-(


← →
Igor_thief   (2005-12-05 14:54) [5]

var
 Form1: TForm1;
 fc: TFormClass;
 frm: TForm;

implementation

{$R *.dfm}

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 fc := TForm;
 frm := fc.Create(Self);
 frm.Parent := Self;
 frm.Left := 10;
 frm.Top := 10;
 Tag := TAg + 1;
 frm.Name := "From" + IntToStr(Tag);
 frm.Visible := true;
end;


← →
Long   (2005-12-05 20:56) [6]

Это не то, что нужно.
Мне нужно создать форму (или какой-либо другой класс) передав его имя в виде СТРОКИ



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.024 c
14-1133269095
ooops!!!
2005-11-29 15:58
2005.12.25
Исходник ICQ клиента


2-1134335155
RX
2005-12-12 00:05
2005.12.25
TTree


14-1133561602
56656
2005-12-03 01:13
2005.12.25
ParamStr(0) в DLL


14-1133402215
Grom PE
2005-12-01 04:56
2005.12.25
Есть ли на Delphi SDL? (Simple Directmedia Layer)


3-1131289782
Сафаров
2005-11-06 18:09
2005.12.25
использование триггеров




   Наверх