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


Автор: sergio1982 7.7.2006, 14:55
Доброе время Ув. знатоки.

Ситуация такая.
Есть MDI приложение, никак не могу добиться того, что бы ДОЧЕРНЕЕ окно запускалось токо в одном варианте.

Специфика заключается в том, что у меня для всех журнальных форм (шаблон формы - с кнопинями - типа добавить,удалить, редактировать и ГРИДОМ)... Так вот, эту ворму я вызываю так:

Код

 ttType := ttNakladPrihod;
 TfSelect.CreateIt(fMain,conn,id_sess,ttType);
 

параметры значения не имеют ... далее, конструктор формы выглядет так:
Код

constructor TfSelect.CreateIt(Owner:TComponent;con:MySQL;ses_id:Integer;tp:TTableType;param:Integer=0);
begin

 inherited Create(Owner);
 conn := con;
 id_sess   := ses_id;
 id_param  := param; 
 ttType    := tp;
 flag := False;
 fclose := False;
 FTableView := tp;

 if (Owner.ClassName = 'TEdit')OR(Owner.ClassName = 'TSpeedButton') then begin
  flag := True;
  Position := poMainFormCenter; 
  FormStyle   := fsNormal;
  BorderStyle := bsDialog;
  bOk.Visible := True;

  ShowModal;
 end else begin
  FormStyle   := fsMDIChild;
  BorderStyle := bsSizeable;
  ttTypeBack := ttType;
  Show;
 end;

 lblTime.Caption := Время: '+TimeToStr(Time);
end;



Так как же, все таки победить данную задачу? 

Автор: _hunter 7.7.2006, 16:00
у главной формы есть свойство Childs (или похожее)
перед созданием новой формы пробегись по всем элементам этого свойства; если формы нет -- создавай 

Автор: sergio1982 7.7.2006, 16:15
А как я форму ИДЕНТЕФИЦИРУЮ? 

Автор: _hunter 7.7.2006, 18:17
можеш по Tag' уб можеш по имени класса, можеш по типу класса, ... -- методов -- куча... 

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