Lucky
Зарегистрирован: 15.05.2003 Сообщения: 6 Откуда: Каменск
|
Добавлено: Ср Май 21 2003 11:26 Заголовок сообщения: Re: Создание MDI приложений и их висяки.(Требуется код для примера) |
|
|
SRC="http://goldsoft.by.ru/Error.JPG" BORDER=0 VSPACE=4 HSPACE=6> К сожалению у меня нет под рукой не билдера не куска кода, но могу попытатся помочь на примере делфей поскольку пару дней назад писал подобную вещь в своем дипломе и тоже не мог понять. Вообщем я не уверен, что в MDI приложении можно пользоваться свойством Visible, поскольку я хотел скрыть все свои окна, перед этим я указал главную форму как MDI, а остальные как MDICild, и как только я нажал на Visible, то ту же вывалиось окно говорящие о том, что такого типа окна нельзя скрывать, тогда я поступил так. 1. При старте все окна создаются.
program ProjectProd;
uses Forms, main in 'main.pas' {fmMain}, dmod in 'dmod.pas' {fmDMod: TDataModule}, start in 'start.pas' {fmStart}, Klient in 'Klient.pas' {fmKlient}, Bank in 'Bank.pas' {fmBank}, sklad in 'sklad.pas' {fmSklad}, NALOG in 'NALOG.pas' {fmNalog}, material in 'material.pas' {fmMaterial}, Edism in 'Edism.pas' {fmEDISM}, Plan in 'Plan.pas' {fmPlan}, Nomenkl in 'Nomenkl.pas' {fmNomenkl}, Vip in 'Vip.pas' {fmVip}, Zach in 'Zach.pas' {fmZach}, VidNom in 'VidNom.pas' {fmVidNom}, psn in 'psn.pas' {fmpsn}, SFVid in 'SFVid.pas' {fmSFVid}, NOtgr in 'NOtgr.pas' {fmNOtgr}, ZD in 'ZD.pas' {fmZD}, Chit in 'Chit.pas' {fmChit}, TYPOP in 'TYPOP.pas' {fmtypop}, Dover in 'Dover.pas' {fmDover}, PrintKniga in 'PrintKniga.pas' {fmPrintKniga};
{$R *.RES}
begin Application.Initialize; Application.CreateForm(TfmMain, fmMain); Application.CreateForm(TfmDMod, fmDMod); Application.Run; end.
я оставил только те окна которые, нужны будут сразу - это главная форма и форма DataMod содержащая объекты для работы с БД, точнее даже не форма а контейнер. Создание всех остальных форм я убрал.
2. Далее, если мне надо показать какую нибуль из форм я делал так - это реакция на выбор в меню
procedure TfmMain.N20Click(Sender: TObject); begin if fmBank=nil then fmBank:=TfmBank.Create(fmMain) end;
3. Для благополучного закрытия формы я добавил метод который удаляет объект формы и все работало
procedure TfmBank.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; fmBank.Free; fmBank:=nil; end;
т.к. билдер основан на библиотеках и компонетха делфей, то следовательно есть большая вероятность, что все описанно будет работать, но требует переработки, а точнее заменить методы, в остальном думаю все будет нормально |
|