17.02.2006, 19:34
общий
это ответ
Здравствуйте, Андрей Темный!
Темны дела твои господи
1) Для того чтобы управлять MDIChild не требуется "отлавливать событие onClick"
Для того чтобы ими управлять есть несколько простых процедур (см. приложение) которые вызываются событием onClick от кнопки или меню. По MDI вообще желательно почитать книжки, чтобы использовать его полноценно.
2) Мне смешно, когда сегодня всерьез обсуждают "количество занимаемой памяти"
Если используется Delphi то наблюдается быстрый рост размера приложения от 200к до 1,5Мб, дальнейший рост резко замедляется. ЕСли используется много одинаковых компонентов, то размер приложения практически не растет.
У меня достаточно сложное приложения с БД, с деревьями, вычислениями и протоколами и я с трудом перевалил за 3.5Мб. Сейчас уже нет компьютеров, для которых такой размер являлся бы какой-то проблемой.
Приложение:
procedure TMainForm.FileNew1Execute(Sender: TObject);begin CreateMDIChild(‘NONAME‘ + IntToStr(MDIChildCount + 1));end;procedure TMainForm.FileOpen1Execute(Sender: TObject);begin if OpenDialog.Execute then CreateMDIChild(OpenDialog.FileName);end;procedure TMainForm.btnFileSaveClick(Sender: TObject);Var rpFileName : String; rpExtIndex : Integer;begin If not (ActiveMDIChild=nil) then begin If ActiveMDIChild is TfmAddressFull then TfmAddressFull(ActiveMDIChild).SaveFile(Sender); If ActiveMDIChild is TfmGoodsEdit then TfmGoodsEdit(ActiveMDIChild).SaveFile(Sender); If ActiveMDIChild is TfmPropNameEdit then TfmPropNameEdit(ActiveMDIChild).SaveFile(Sender);// If ActiveMDIChild is TfmContract then TfmContract(ActiveMDIChild).SaveFile(Sender); end else begin If SaveDialog.Execute then begin rpFileName := SaveDialog.FileName; rpExtIndex := SaveDialog.FilterIndex; If (rpExtIndex=1) then SaveAsSQL1(Self,rpFileName);// If (rpExtIndex=2) then fmHttpHost.SaveAsRTF1(Self,rpFileName); end; end;end;