Займемся созданием главной формы. Главная форма должна предоставляить механизм обработки набора кнопок. Для этого на главной форме создадим список операций (ActionList) и определим 3 операции (ActionItem): ActionPrint, ActionPreview, ActionExport. Создадим панель инструментов с набором кнопок: Печать, Предварительный просмотр и Экспорт и назначим этим кнопки соответствующие операции. Для каждой операции назначим один и тот же метод обработки событий OnUpdate
procedure TfrmMain.ActionPrButtonUpdate(Sender: TObject); var m: TPrButton; begin TAction(Sender).Enabled := False;
if Sender = ActionPrint then m := prPrint else if Sender = ActionPreview then m := prPreview else if Sender = ActionExport then m := prExport else Exit;
try TAction(Sender).Enabled := Assigned(Application. MainForm.ActiveMDIChild) and (Application.MainForm.Active MDIChild is TfrmParent) and TfrmParent(Application. MainForm.ActiveMDIChild).ButtonUpdate(m); except TAction(Sender).Enabled := False; end; // try Application.ProcessMessages; end; и OnExecute procedure TfrmMain.ActionPrButtonExecute(Sender: TObject); var m: TPrButton; begin if Not Assigned(Application.MainForm.ActiveMDIChild) or Not (Application.MainForm.ActiveMDIChild is TfrmParent) then Exit; if Sender = ActionPrint then m := prPrint else if Sender = ActionPreview then m := prPreview else if Sender = ActionExport then m := prExport else Exit; TfrmParent(Application.MainForm.ActiveMDIChild). ButtonExecute(m); end; |