Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.015 c
1-1133376234
WandR
2005-11-30 21:43
2005.12.25
Кодирование буфера


10-1109863493
Shaden
2005-03-03 18:24
2005.12.25
Midas


4-1130328960
Mpokemonov
2005-10-26 16:16
2005.12.25
открыть DLL


2-1133941899
vitek
2005-12-07 10:51
2005.12.25
Регистрация DLL


2-1133899550
floxi
2005-12-06 23:05
2005.12.25
MonthCalendar





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский