Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Создание object типа TForm


Автор: pvg79 26.9.2008, 09:55
Привет, подскажите:
Как из программы создать объект типа TForm, но есть нюанс имя объекта записано в таблице
в поле ID, т.е. значение переменной должно быть объектом. Таких объектов одновременно будет открыватся несколько, и в каждой форме присутствует объект "Button" при нажатии на них должны обрабатыватся разные прцедуры и т.д. smile

Автор: pseud 26.9.2008, 09:58
Код

with TForm.Create do
begin
  Name := 'EntityForm' + YourDataSet.FieldByName('ID').AsString; // вот тебе уникальное имя
  Show;
end;


Добавлено через 7 минут и 44 секунды
а еще лучше так:
допустим форма сущности - класс TEntityForm

Код

  sFormName := 'EntityForm' + YourDataSet.FieldByName('ID').AsString;

  iScreenFormCount := Screen.FormCount;

  tmpForm := nil;
  for i := iScreenFormCount - 1 downto 0 do
  begin
    tmpForm := Screen.Forms[i];
    if (tmpForm is TEntityForm)
    and (tmpForm.Name = sFormName) then
      Break
    else
      tmpForm := nil;
  end;

  if tmpForm = nil then
  begin
    tmpForm := TEntityForm.Create(Self);
    tmpForm.Name := sFormName;
  end;

  tmpForm.Show;

Автор: pvg79 26.9.2008, 14:39
 Я так делал, при работе со вторым окном все действия отображаются в первом.  smile 

Автор: aktuba 26.9.2008, 14:58
Цитата(pvg79 @  26.9.2008,  15:39 Найти цитируемый пост)
Я так делал, при работе со вторым окном все действия отображаются в первом. 

Ну так покажи тестовый проект, т.к. не понятна, в чем именно проблема у тебя.

Автор: pseud 26.9.2008, 15:34
Цитата(pvg79 @  26.9.2008,  14:39 Найти цитируемый пост)
Я так делал, при работе со вторым окном все действия отображаются в первом.  


значит неправильно ты получешь имя второго окна.  smile 
если б ты Я так делал, то у тебя бы все работало. как напрмер работает у меня  smile 
код в студию.  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)