Как вызвать нужную форму

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Как вызвать нужную форму

Сообщение Slava1970 » 06.09.2016 10:55:03

Здравствуйте!
Помогите, нужно вызвать любую форму проекта, получив ее имя из переменной.
У меня есть базовый класс формы, в нем определяю переменную с именем таблицы, нажав кнопку редактировать это имя берется как имя формы+слово Edit и
должна вызываться форма для редактирования записи с эти именем .
Slava1970
новенький
 
Сообщения: 24
Зарегистрирован: 19.08.2016 12:26:38

Re: Как вызвать нужную форму

Сообщение mig-31 » 06.09.2016 11:36:58

Код: Выделить всё
uses
   Unit1;//where is TForm1

var
  EditForm:TForm1;

procedure TForm2.EditButtonClick(Sender: TObject);
begin
   EditForm:=TForm1.Create(Self);
end;               
mig-31
постоялец
 
Сообщения: 224
Зарегистрирован: 14.07.2011 13:46:48

Re: Как вызвать нужную форму

Сообщение Slava1970 » 06.09.2016 12:02:08

Спасибо. Может быть.
А можно, что то типа такого
NameForm:='SprKnig';
(NameForm).Show;
Наверное уже сам начинаю догадываться, надо найти форму по имени. А потом вызвать ее.
А как ее найти, подскажите пжста.
Slava1970
новенький
 
Сообщения: 24
Зарегистрирован: 19.08.2016 12:26:38

Re: Как вызвать нужную форму

Сообщение Лекс Айрин » 06.09.2016 12:16:24

Slava1970, а зачем? форма-то, по сути, одна.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Как вызвать нужную форму

Сообщение Slava1970 » 06.09.2016 12:33:00

Формы вызова разные, а вызывать буду разные EditForm, для разных таблиц, чтобы не писать
одно и тоже каждый раз FormEditSprKnigi.Show; или FormEditSprAutor.Show; и процедуры
прописывать, одним разом в корне в базовом классе. Может можно и по другому...
Slava1970
новенький
 
Сообщения: 24
Зарегистрирован: 19.08.2016 12:26:38

Re: Как вызвать нужную форму

Сообщение Лекс Айрин » 06.09.2016 12:54:05

Все равно же придется писать формы.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Как вызвать нужную форму

Сообщение zub » 06.09.2016 14:26:49

Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
var
  f:TForm;
begin
  f:=tform(application.FindComponent('Form2'));
  f.Show;
end;

Но лучше написать свою регистрацию и поиск форм
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: Как вызвать нужную форму

Сообщение Slava1970 » 06.09.2016 14:39:18

Спасибо! А формы конечно придется писать, только кода немного меньше будет.
Slava1970
новенький
 
Сообщения: 24
Зарегистрирован: 19.08.2016 12:26:38


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 241

Рейтинг@Mail.ru