Tecsitel_FactuGES2/Source/Base/Utiles/ClassRegistry/uViewRegistryUtils.pas

51 lines
1.2 KiB
ObjectPascal

unit uViewRegistryUtils;
interface
uses
Classes, Forms, uClassRegistryUtils, uCustomView;
type
IViewRegistry = interface (IComponentRegistry)
['{F49AE52F-47EC-42AF-8365-A09270E4B45D}']
function CreateView(const aClassOrDisplayname: String;
aOwner: TComponent = nil): TCustomView;
end;
TViewRegistry = class(TComponentRegistry, IViewRegistry)
protected
procedure ValidateMinAcceptableClass(var aMinAcceptableClass: TClass); override;
function CreateView( const aClassOrDisplayname: String;
aOwner: TComponent = nil ): TCustomView;
end;
var
ViewRegistry : IViewRegistry;
implementation
{ TViewRegistry }
function TViewRegistry.CreateView(const aClassOrDisplayname: String;
aOwner: TComponent): TCustomView;
begin
Result := CreateComponent( aClassOrDisplayname, aOwner ) as TCustomView;
end;
procedure TViewRegistry.ValidateMinAcceptableClass(
var aMinAcceptableClass: TClass);
begin
inherited;
if not aMinAcceptableClass.InheritsFrom(TCustomView) then
aMinAcceptableClass := TCustomView;
end;
initialization
ViewRegistry := TViewRegistry.Create;
finalization
ViewRegistry := NIL;
end.