Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2012, 14:47   #11
DIMASIKXXX32
Пользователь
 
Регистрация: 26.01.2010
Сообщений: 72
По умолчанию

Цитата:
Сообщение от Прик Посмотреть сообщение
Ну, хотя бы так:
Код:
function TForm1.FCreate(FClass: TFormClass; FTitle: string) : TForm;
begin
  Result := FClass.Create(nil);
  Result.Caption := FTitle;
  Result.Show;
  Enabled := False; //Сделаем не доступной форму Form1
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2 := TForm2(FCreate(TForm2, 'Forma2'));
end;
TForm2 и TForm3 и TForm - это разные классы и они требуют приведения типов, а в процедуре этого не происходило и Form2, к примеру, все равно ни на что не указывало (nil). При обращении выходило AV.
А как сделать через процедуру? и как сделать это приведение
DIMASIKXXX32 вне форума Ответить с цитированием
Старый 15.11.2012, 14:54   #12
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Возвращаемое функцией значение приводится к нужному классу. Т.е. задача решена.
И зачем здесь процедура?
Прик вне форума Ответить с цитированием
Старый 15.11.2012, 15:14   #13
DIMASIKXXX32
Пользователь
 
Регистрация: 26.01.2010
Сообщений: 72
Радость

Прик Спасибо!!!

Да задача решена! Работает так как должно!

просто интересно через процедуру как это возможно

например моей которую писал, что надо добавить?

Код:
procedure TForm1.FCreate(FName: TForm; FClass: TFormClass; FTitle: string);
  begin
    FName := FClass.Create(nil);
    FName.Caption := FTitle;
    FName.Show;
    //ShowMessage(FName.ClassName);
    Enabled  :=  False; //Сделаем не доступной форму Form1
  end;
DIMASIKXXX32 вне форума Ответить с цитированием
Старый 15.11.2012, 15:23   #14
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Да, ничего там не добавишь.
Из-за разных типов классов, между тем, который передается в параметрах и, тем который нужно получить после создания формы.
Прик вне форума Ответить с цитированием
Старый 15.11.2012, 15:29   #15
DIMASIKXXX32
Пользователь
 
Регистрация: 26.01.2010
Сообщений: 72
Радость

Цитата:
Сообщение от Прик Посмотреть сообщение
Да, ничего там не добавишь.
Из-за разных типов классов, между тем, который передается в параметрах и, тем который нужно получить после создания формы.
Огромное тебе спасибо!!!
DIMASIKXXX32 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
БД Создание запроса и форм Lena_ Помощь студентам 0 18.10.2012 14:39
Создание форм Михаил Юрьевич Общие вопросы Delphi 5 16.07.2012 03:41
Создание нескольких форм Лера123 Общие вопросы Delphi 4 16.10.2010 18:16
Создание форм DeNyS=) Microsoft Office Access 2 13.12.2009 15:30
Создание нескольких форм в одной Лукманов Александр Общие вопросы Delphi 1 11.04.2009 13:08