Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.25;
Скачать: 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 вся ветка

Текущий архив: 2005.12.25;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.052 c
4-1130276882
ВАсилий
2005-10-26 01:48
2005.12.25
Form Hide


3-1131020357
Juice
2005-11-03 15:19
2005.12.25
Читающая транзакция в dbExpress


11-1115148344
Леший
2005-05-03 23:25
2005.12.25
Перерисовка окна


1-1133431567
archisan
2005-12-01 13:06
2005.12.25
Internet Explorer :(


3-1131432001
antoxa2005
2005-11-08 09:40
2005.12.25
Проблема! Если на обном компьютере запись дата сета наход. в реда