编辑器
整理代码,以及优化编辑器提示
This commit is contained in:
+30
-111
@@ -33,22 +33,20 @@ Function tslcstructure(data,dsize,pack,ptr);
|
||||
|
||||
//function CompareRect(orect,nrect);
|
||||
function calldatafunction();
|
||||
//function CallMessgeFunction(f,o,e);
|
||||
function CallMessgeFunction(f,o,e);
|
||||
//////////////////////执行tsl脚本代码////////////////////
|
||||
//function TSL_Check(func,funclen,oResult);
|
||||
function CheckTslCode(code,err); //检查tsl语法
|
||||
//function SysExecWait(handle,exe,cmd,dir,fui); //执行 win32 程序
|
||||
function TS_ModulePath();
|
||||
function TS_ExecPath();
|
||||
function TS_GetAppPath();
|
||||
//function TS_ModulePath();
|
||||
//function TS_ExecPath();
|
||||
//function TS_GetAppPath();
|
||||
function TS_GetUserProfileHome();
|
||||
function TS_GetIniPath(hometype,IniName);
|
||||
//function TS_GetIniPath(hometype,IniName);
|
||||
function CopyUsedTslDllToNewDir(p);
|
||||
/////////////////////////////////////////////
|
||||
function DeleteAllFiles(path);
|
||||
function CreateDirWithFileName(fname);
|
||||
function GetPathFromFullName(fullname,fname,ftype);
|
||||
|
||||
//************************
|
||||
//*******************************
|
||||
function MessageBoxA(txt,title,flag,hd);
|
||||
@@ -57,6 +55,9 @@ function _twinproc_(hwnd,message,wparam,lparam);//win32
|
||||
function _MessgeHook_a(hwnd,message,wparam,lparam);
|
||||
function remotetslcallback(data);
|
||||
//********其他辅助函数*******
|
||||
function TslToHexFormatStr(tsl);
|
||||
function HexFormatStrToTsl(D);
|
||||
function GetTextWidthAndHeightWidthFont(s,f,mul);
|
||||
//**********操作系统相关函数*********************
|
||||
function initlib();
|
||||
////////////////////////////////////
|
||||
@@ -10369,45 +10370,6 @@ type TDragManager=class(TComponent)
|
||||
property DragThreshold:Integer read FDragThreshold write FDragThreshold; // default 5;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
function GetPathFromFullName(fullname,fname,ftype);
|
||||
begin
|
||||
{**
|
||||
@explan(说明) 获得当前执行tsl文件的所在路径 %%
|
||||
@param(fullname)(string) 全名 %%
|
||||
@param(fname)(string) 文件名 ,变参返回%%
|
||||
@param(ftype)(string) 文件类型 ,变参返回%%
|
||||
@return(string) 路径 %%
|
||||
**}
|
||||
ph := fullname;
|
||||
n := "";
|
||||
rp := "";
|
||||
fname := "";
|
||||
ftype := "";
|
||||
firstd := true;
|
||||
iofp := ioFileseparator();
|
||||
for i := length(ph)downto 1 do
|
||||
begin
|
||||
vi := ph[i];
|
||||
if vi="." and firstd then
|
||||
begin
|
||||
ftype := n;
|
||||
n := "";
|
||||
firstd := false;
|
||||
end else
|
||||
if vi=iofp then
|
||||
begin
|
||||
rp := ph[1:i-1];
|
||||
break;
|
||||
end else
|
||||
n := vi+n;
|
||||
end
|
||||
FName := n;
|
||||
return rp;
|
||||
end
|
||||
|
||||
function GetAndDispatchMessageA(hwnd,minm,maxm);
|
||||
begin
|
||||
{**
|
||||
@@ -10778,11 +10740,11 @@ function TSL_NewObject():pointer;cdecl;external {$ifdef linux}"libTSSVRAPI.so"{$
|
||||
function TSL_InterpGetLFromWrap(L:pointer):pointer;cdecl;external "TSSVRAPI.dll" name "TSL_InterpGetLFromWrap";
|
||||
function TS_GetGlobalL():pointer;cdecl;external {$ifdef linux}"libTSSVRAPI.so"{$else}"TSSVRAPI.dll"{$endif} name "TS_GetGlobalL";
|
||||
function TSL_FreeObj(L:pointer;v:pointer);cdecl;external {$ifdef linux}"libTSSVRAPI.so"{$else}"TSSVRAPI.dll"{$endif} name "TSL_FreeObj";
|
||||
function TS_ModulePath():string;cdecl;external {$ifdef linux}"libTSSVRAPI.so"{$else}"TSSVRAPI.dll"{$endif} name "TS_ModulePath";
|
||||
function TS_ExecPath():string;cdecl;external {$ifdef linux}"libTSSVRAPI.so"{$else}"TSSVRAPI.dll"{$endif} name "TS_ExecPath";
|
||||
function TS_GetAppPath():string;cdecl;external {$ifdef linux}"libTSSVRAPI.so"{$else}"TSSVRAPI.dll"{$endif} name "TS_ExecPath";
|
||||
//function TS_ModulePath():string;cdecl;external {$ifdef linux}"libTSSVRAPI.so"{$else}"TSSVRAPI.dll"{$endif} name "TS_ModulePath";
|
||||
//function TS_ExecPath():string;cdecl;external {$ifdef linux}"libTSSVRAPI.so"{$else}"TSSVRAPI.dll"{$endif} name "TS_ExecPath";
|
||||
//function TS_GetAppPath():string;cdecl;external {$ifdef linux}"libTSSVRAPI.so"{$else}"TSSVRAPI.dll"{$endif} name "TS_ExecPath";
|
||||
function TS_GetUserProfileHome():string;cdecl;external {$ifdef linux}"libTSSVRAPI.so"{$else}"TSSVRAPI.dll"{$endif} name "TS_GetUserProfileHome";
|
||||
function TS_GetIniPath(hometype:integer; var IniName:string):string;cdecl;external {$ifdef linux}"libTSSVRAPI.so"{$else}"TSSVRAPI.dll"{$endif} name "TS_GetIniPath";
|
||||
//function TS_GetIniPath(hometype:integer; var IniName:string):string;cdecl;external {$ifdef linux}"libTSSVRAPI.so"{$else}"TSSVRAPI.dll"{$endif} name "TS_GetIniPath";
|
||||
function TSL_Check(func:string;funclen:integer;oResult:pointer):integer;cdecl;external {$ifdef linux}"libTSSVRAPI.so"{$else}"TSSVRAPI.dll"{$endif} name "TSL_Check";
|
||||
procedure tslprocessmessages();begin {echo "\r\n processmessage";}end;
|
||||
function RunWorkerThreadLoop();
|
||||
@@ -10800,71 +10762,12 @@ begin
|
||||
end
|
||||
function CreateDirWithFileName(fname);
|
||||
begin
|
||||
{**
|
||||
@explan(说明) 根据文件全名构造目录 %%
|
||||
**}
|
||||
if not(ifstring(fname)and(length(fname)>4))then exit;
|
||||
info := FileList("",fname);
|
||||
if info then exit;
|
||||
len := length(fname);
|
||||
iofp := ioFileseparator();
|
||||
for i := len downto 1 do
|
||||
begin
|
||||
vi := fname[i];
|
||||
if vi=iofp then
|
||||
begin
|
||||
ffname := fname[1:i];
|
||||
break;
|
||||
end
|
||||
end
|
||||
if not ffname then exit;
|
||||
nct := 4;
|
||||
{$ifdef linux}
|
||||
nct := 1;
|
||||
{$endif}
|
||||
ph := ffname[1:nct];
|
||||
for i := nct+1 to length(ffname) do
|
||||
begin
|
||||
vi := ffname[i];
|
||||
if vi=iofp then
|
||||
begin
|
||||
if not FileList("",ph)then
|
||||
begin
|
||||
CreateDir("",ph);
|
||||
end
|
||||
end
|
||||
ph += vi;
|
||||
end
|
||||
return unit(utslvclauxiliary).CreateDirWithFileName(fname);
|
||||
end
|
||||
|
||||
function DeleteAllFiles(path);
|
||||
begin
|
||||
{**
|
||||
@explan(说明) 删除指定路径的文件或者文件夹 %%
|
||||
**}
|
||||
if not ifstring(path)then return 0;
|
||||
if not path then return 0;
|
||||
iofp := ioFileseparator();
|
||||
if path[length(path)]=iofp then return call(thisfunction,path[1:(length(path)-1)]);
|
||||
info := FileList("",path); //"A"
|
||||
if info then
|
||||
begin
|
||||
if pos("D",info[0]["Attr"])then
|
||||
begin
|
||||
fs := FileList("",path+iofp+"*");
|
||||
for i,v in fs do
|
||||
begin
|
||||
n := v["FileName"];
|
||||
if n in array(".","..")then continue;
|
||||
call(thisfunction,path+iofp+n);
|
||||
end
|
||||
return RemoveDir("",path);
|
||||
end else
|
||||
begin
|
||||
return FileDelete("",path);
|
||||
end
|
||||
return 0;
|
||||
end
|
||||
return unit(utslvclauxiliary).DeleteAllFiles(path);
|
||||
end
|
||||
|
||||
function LoginTslServer(usr,pwd,addr,port);
|
||||
@@ -11097,6 +11000,22 @@ begin
|
||||
**}
|
||||
return(a and not(b))or(b and not(a));
|
||||
end
|
||||
function TslToHexFormatStr(tsl);
|
||||
begin
|
||||
return unit(utslvclauxiliary).TslToHexFormatStr(tsl);
|
||||
end
|
||||
function HexFormatStrToTsl(D);
|
||||
begin
|
||||
return unit(utslvclauxiliary).HexFormatStrToTsl(d);
|
||||
end
|
||||
function GetTextWidthAndHeightWidthFont(s,f,mul);
|
||||
begin
|
||||
return unit(utslvclgdi).GetTextWidthAndHeightWidthFont(s,f,mul);
|
||||
end
|
||||
function CallMessgeFunction(f,o,e);
|
||||
begin
|
||||
return unit(utslvclauxiliary).CallMessgeFunction(f,o,e);
|
||||
end
|
||||
|
||||
|
||||
Initialization
|
||||
|
||||
@@ -32,6 +32,9 @@ function ParserCommandLine(s); //
|
||||
//function TslToHexStr(d);
|
||||
function TslToHexFormatStr(tsl);
|
||||
function HexFormatStrToTsl(D);
|
||||
function DeleteAllFiles(path);
|
||||
function CreateDirWithFileName(fname);
|
||||
|
||||
type tuiglobaldata=class
|
||||
static UIData;
|
||||
class Function uisetdata(n,d);
|
||||
@@ -1893,6 +1896,11 @@ begin
|
||||
end
|
||||
function TslToHexFormatStr(tsl);
|
||||
begin
|
||||
{**
|
||||
@explan(说明) 将tsl类型转换为16进制字符串,每行长度为64,用\r\n分割 %%
|
||||
@param(tsl)(any) tsl基础类型%%
|
||||
@return(string) 字符串形式的16进制 %%
|
||||
**}
|
||||
s := TslToHexStr(tsl);
|
||||
r := "";
|
||||
n := length(s);
|
||||
@@ -1907,7 +1915,7 @@ begin
|
||||
r += s[i:n];
|
||||
break;
|
||||
end else
|
||||
r += s[i:ij];
|
||||
r += s[i:ij];
|
||||
if ij>n then break;
|
||||
r += "\r\n";
|
||||
i := ij+1;
|
||||
@@ -2119,6 +2127,73 @@ begin
|
||||
end
|
||||
return array(0,0);
|
||||
end
|
||||
function DeleteAllFiles(path);
|
||||
begin
|
||||
{**
|
||||
@explan(说明) 删除指定路径的文件或者文件夹 %%
|
||||
**}
|
||||
if not ifstring(path)then return 0;
|
||||
if not path then return 0;
|
||||
iofp := ioFileseparator();
|
||||
if path[length(path)]=iofp then return call(thisfunction,path[1:(length(path)-1)]);
|
||||
info := FileList("",path); //"A"
|
||||
if info then
|
||||
begin
|
||||
if pos("D",info[0]["Attr"])then
|
||||
begin
|
||||
fs := FileList("",path+iofp+"*");
|
||||
for i,v in fs do
|
||||
begin
|
||||
n := v["FileName"];
|
||||
if n in array(".","..")then continue;
|
||||
call(thisfunction,path+iofp+n);
|
||||
end
|
||||
return RemoveDir("",path);
|
||||
end else
|
||||
begin
|
||||
return FileDelete("",path);
|
||||
end
|
||||
return 0;
|
||||
end
|
||||
end
|
||||
function CreateDirWithFileName(fname);
|
||||
begin
|
||||
{**
|
||||
@explan(说明) 根据文件全名构造目录 %%
|
||||
**}
|
||||
if not(ifstring(fname)and(length(fname)>4))then exit;
|
||||
info := FileList("",fname);
|
||||
if info then exit;
|
||||
len := length(fname);
|
||||
iofp := ioFileseparator();
|
||||
for i := len downto 1 do
|
||||
begin
|
||||
vi := fname[i];
|
||||
if vi=iofp then
|
||||
begin
|
||||
ffname := fname[1:i];
|
||||
break;
|
||||
end
|
||||
end
|
||||
if not ffname then exit;
|
||||
nct := 4;
|
||||
{$ifdef linux}
|
||||
nct := 1;
|
||||
{$endif}
|
||||
ph := ffname[1:nct];
|
||||
for i := nct+1 to length(ffname) do
|
||||
begin
|
||||
vi := ffname[i];
|
||||
if vi=iofp then
|
||||
begin
|
||||
if not FileList("",ph)then
|
||||
begin
|
||||
CreateDir("",ph);
|
||||
end
|
||||
end
|
||||
ph += vi;
|
||||
end
|
||||
end
|
||||
|
||||
initialization
|
||||
|
||||
|
||||
Reference in New Issue
Block a user