Вниз
Скачать: 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.028 c
14-1133767491
Кабан
2005-12-05 10:24
2005.12.25
Спектр


14-1133573594
Копир
2005-12-03 04:33
2005.12.25
Русская и азиатская поэзия.


14-1133525165
vrem
2005-12-02 15:06
2005.12.25
xp ругается на размер и показывает знак :)


1-1133027361
SergP
2005-11-26 20:49
2005.12.25
Прерывание Thread из-за исключения...


3-1131438547
XGarik
2005-11-08 11:29
2005.12.25
Вложенный DataSet




   Наверх