Запуск редакторов моделей


procedure TTestForm.EditModel(Editor: IModelEdit; Model: TModel);
begin {$ifdef ReadOnly} Editor.ReadOnly := True; {$endif} // ReadOnly if Editor.EditModel(Model) then ShowMessage('OK!') else ShowMessage('Abort ...');
end; // TTestForm.EditModel procedure TTestForm.RunWizard(Sender: TObject);
var Employee: TEmployee; begin Employee := DataModel.NewEmployee; try EditModel(TWizard.Create(Self), Employee);
finally Employee.Free; end; end; procedure TTestForm.RunSheet(Sender: TObject);
var Employee: TEmployee; begin Employee := DataModel.LoadEmployee(3);
try EditModel(TPropertySheet.Create(Self), Employee);
finally Employee.Free; end; end;

Лично меня в реализации мастера и списка свойств поражает, как просто выглядит такой обобщенный код на Delphi. Ключевым здесь является аргумент-массив array of TViewClass, передаваемый InitializeSheet() и Initialize Wizard() (см. листинг 10.8).



Содержание раздела