Главная страница
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.48 MB
Время: 0.059 c
8-1121864574
asprofi
2005-07-20 17:02
2005.12.25
Люди кому интересно, я дописал видео плейер "AV v.1.3"


5-1118656499
Subdigger
2005-06-13 13:54
2005.12.25
TDataset


4-1130219731
Alex_C
2005-10-25 09:55
2005.12.25
Как передать фокус другой программе?


6-1126863529
nokk
2005-09-16 13:38
2005.12.25
IP адрес


1-1133079585
antoxa2005
2005-11-27 11:19
2005.12.25
Уважаемые мастера, подскажите алгаритм получения всех "Child-ов"