program importtl; {$mode objfpc}{$H+} {$apptype console} uses classes,typelib,sysutils; var unitname,sPackageSource,sPackageRegUnitSource:string; sTL,sOutDir:string; F:text; slDep:TStringList; i:integer; bNoRecurse,bHelp,bActiveX,bPackage,bRemoveStructTag:boolean; begin slDep:=TStringList.Create; bNoRecurse:=false; bHelp:=false; bActiveX:=false; bPackage:=false; i:=1; while i<=Paramcount do begin if pos('-n',ParamStr(i))>0 then bNoRecurse:=true else if pos('-a',ParamStr(i))>0 then bActiveX:=true else if pos('-h',ParamStr(i))>0 then bHelp:=true else if pos('-p',ParamStr(i))>0 then bPackage:=true else if pos('-t',ParamStr(i))>0 then bRemoveStructTag:=true else if pos('-d',ParamStr(i))>0 then begin sOutDir:=trim(copy(ParamStr(i), pos('-d',ParamStr(i))+2, 260)); // windows MAX_PATH if sOutDir='' then if i'') then begin writeln('Writing package file to '+unitname+'P.lpk' ); AssignFile(F,unitname+'P.lpk'); Rewrite(F); Write(F,sPackageSource); CloseFile(F); writeln('Writing package registration file to '+unitname+'Preg.pas'); AssignFile(F,unitname+'Preg.pas'); Rewrite(F); Write(F,sPackageSource); CloseFile(F); end; bActiveX:=false; //don't create ActiveXContainer descendants in descendants bPackage:=false; writeln('Writing to '+unitname+'.pas'); AssignFile(F,unitname+'.pas'); Rewrite(F); Write(F,sTL); CloseFile(F); i:=i+1; until bNoRecurse or (i=slDep.Count); slDep.Destroy; end.