Форум: "Начинающим";
Текущий архив: 2005.12.25;
Скачать: [xml.tar.bz2];
ВнизСоздание компонента по его имени Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.014 c