home *** CD-ROM | disk | FTP | other *** search
- {*******************************************************}
- { }
- { eXpert Development Kit }
- { }
- { Copyright (c) 1996,97 Sergey Orlik }
- { - product manager of Borland Russia }
- { }
- {*******************************************************}
- unit XDKMain;
-
- interface
- uses
- SysUtils, Classes, Forms,
- LibIntf, ExptIntf;
-
- type
- ExdkInitError = class(Exception);
-
- procedure xdkInitModule(ModuleClass:TComponentClass; var Reference);
- procedure xdkDoneModule(Module:TComponent);
-
- //====================================================================
- implementation
- //====================================================================
-
- const
- sToolServicesError = 'XDK initialization error!';
- sInitModuleError = 'Module of %s-class is not initialized!';
-
- procedure ToolServicesError;
- begin
- raise ExdkInitError.Create(sToolServicesError);
- end;
-
- procedure InitModuleError(const ModuleClassName:string);
- begin
- raise ExdkInitError.Create(Format(sInitModuleError,[ModuleClassName]));
- end;
-
- //=====================================================================
-
- procedure xdkInitModule(ModuleClass:TComponentClass; var Reference);
- var
- Instance: TComponent;
- begin
- Instance := TComponent(ModuleClass.NewInstance);
- TComponent(Reference) := Instance;
- try
- Instance.Create(nil);
- except
- TComponent(Reference):=nil;
- Instance.Free;
- InitModuleError(ModuleClass.ClassName);
- end;
- if (Instance is TForm) then
- TForm(Instance).HandleNeeded;
- end;
-
- procedure xdkDoneModule(Module:TComponent);
- begin
- if Module<>nil then
- begin
- Module.Free;
- Module:=nil;
- end;
- end;
-
- //=====================================================================
- initialization
- try
- ToolServices:=DelphiIDE.GetToolServices;
- except
- ToolServicesError;
- end;
- end.
-