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

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

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

Ответить
Slava1970
новенький
Сообщения: 24
Зарегистрирован: 19.08.2016 11:26:38

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

Сообщение Slava1970 »

Здравствуйте!
Помогите, нужно вызвать любую форму проекта, получив ее имя из переменной.
У меня есть базовый класс формы, в нем определяю переменную с именем таблицы, нажав кнопку редактировать это имя берется как имя формы+слово Edit и
должна вызываться форма для редактирования записи с эти именем .
mig-31
постоялец
Сообщения: 224
Зарегистрирован: 14.07.2011 13:46:48

Сообщение mig-31 »

Код: Выделить всё

uses
   Unit1;//where is TForm1

var
  EditForm:TForm1;

procedure TForm2.EditButtonClick(Sender: TObject);
begin
   EditForm:=TForm1.Create(Self);
end;               
Slava1970
новенький
Сообщения: 24
Зарегистрирован: 19.08.2016 11:26:38

Сообщение Slava1970 »

Спасибо. Может быть.
А можно, что то типа такого
NameForm:='SprKnig';
(NameForm).Show;
Наверное уже сам начинаю догадываться, надо найти форму по имени. А потом вызвать ее.
А как ее найти, подскажите пжста.
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

Slava1970, а зачем? форма-то, по сути, одна.
Slava1970
новенький
Сообщения: 24
Зарегистрирован: 19.08.2016 11:26:38

Сообщение Slava1970 »

Формы вызова разные, а вызывать буду разные EditForm, для разных таблиц, чтобы не писать
одно и тоже каждый раз FormEditSprKnigi.Show; или FormEditSprAutor.Show; и процедуры
прописывать, одним разом в корне в базовом классе. Может можно и по другому...
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

Все равно же придется писать формы.
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

Код: Выделить всё

procedure TForm1.Button1Click(Sender: TObject);
var
  f:TForm;
begin
  f:=tform(application.FindComponent('Form2'));
  f.Show;
end;

Но лучше написать свою регистрацию и поиск форм
Slava1970
новенький
Сообщения: 24
Зарегистрирован: 19.08.2016 11:26:38

Сообщение Slava1970 »

Спасибо! А формы конечно придется писать, только кода немного меньше будет.
Ответить