This commit is contained in:
liujianjun 2025-04-10 17:02:24 +08:00
parent ab8b5bb6a5
commit ef1986a030
49 changed files with 188 additions and 1723 deletions

Binary file not shown.

BIN
Help/EDITORGUIDE.CHM Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -44,6 +44,7 @@ type teditorform = class(TVCform) //
const c_m_editor = "默认"; const c_m_editor = "默认";
const c_m_exer = "当前执行程序"; const c_m_exer = "当前执行程序";
const c_m_help = "帮助"; const c_m_help = "帮助";
const c_m_manu = "使用手册";
const c_m_tsl_help = "tsl语言帮助"; const c_m_tsl_help = "tsl语言帮助";
const c_m_about = "关于"; const c_m_about = "关于";
function WMACTIVATE(o,e):WM_ACTIVATE;override; //激活 function WMACTIVATE(o,e):WM_ACTIVATE;override; //激活
@ -400,7 +401,7 @@ type teditorform = class(TVCform) //
FHelpMenu := new TMenu(self); FHelpMenu := new TMenu(self);
FHelpMenu.Caption := c_m_help; FHelpMenu.Caption := c_m_help;
FHelpMenus := array(); FHelpMenus := array();
for i,v in array(c_m_tsl_help,c_m_about) do for i,v in array(c_m_manu,c_m_tsl_help,c_m_about) do
begin begin
vi := new TMenu(self); vi := new TMenu(self);
vi.Caption := v; vi.Caption := v;
@ -538,6 +539,10 @@ type teditorform = class(TVCform) //
function HelpClick(o,e); function HelpClick(o,e);
begin begin
case o.Caption of case o.Caption of
c_m_manu:
begin
return FEdter.showeditorchm();
end
c_m_tsl_help: c_m_tsl_help:
begin begin
return FEdter.ShowTslLangChm(); return FEdter.ShowTslLangChm();
@ -1106,7 +1111,7 @@ type TBlockManager=class(TVCForm)
bi.parent := self; bi.parent := self;
end end
FList := new TListView(self); FList := new TListView(self);
FList.Columns := array(("text":"ǰ׺","width":40),("text":"Ãû³Æ","width":130),("text":"Öµ","width":200),("text":"À©Õ¹","width":430)); FList.Columns := array(("text":"前缀","width":40),("text":"显示","width":130),("text":"提示关键字","width":200),("text":"插入代码块","width":430));
FList.ColumnAsBool(0); FList.ColumnAsBool(0);
{ {
r := array(); r := array();
@ -1572,6 +1577,7 @@ type tdirviewer = class(tcustomcontrol)
addtoolbar(); addtoolbar();
fnodes := array(); fnodes := array();
FEdit := new tedit(self); FEdit := new tedit(self);
FEdit.autosize := true;
FEdit.parent := self; FEdit.parent := self;
FEdit.Align := alTop; FEdit.Align := alTop;
FTree := new TTreeView(self); FTree := new TTreeView(self);

View File

@ -1752,10 +1752,15 @@ type TTslChmHelp=class()
begin begin
if fapi then return fapi.open_chm((FTSLinterpPath+FChmName)); if fapi then return fapi.open_chm((FTSLinterpPath+FChmName));
end end
function showeditorchm();
begin
if fapi then return fapi.open_chm((FTSLinterpPath+FeditorChmName));
end
function Create(p); function Create(p);
begin begin
fapi := p; fapi := p;
FChmName := "help"$ioFileseparator()$"LANGUAGEGUIDE.CHM"; FChmName := "help"$ioFileseparator()$"LANGUAGEGUIDE.CHM";
FeditorChmName := "help"$ioFileseparator()$"EDITORGUIDE.CHM";
FTSLinterpPath := TS_ModulePath(); FTSLinterpPath := TS_ModulePath();
end end
property ChmName read FChmName write FChmName; property ChmName read FChmName write FChmName;
@ -1764,6 +1769,7 @@ type TTslChmHelp=class()
FTSLinterpPath; FTSLinterpPath;
FHanle; FHanle;
FChmName; FChmName;
FeditorChmName;
end end
type TEditer=class(TCustomcontrol) //관윅묏야으,榴檄으,渴놔,꿴冷 type TEditer=class(TCustomcontrol) //관윅묏야으,榴檄으,渴놔,꿴冷
@ -3735,6 +3741,10 @@ type TEditer=class(TCustomcontrol) //
begin begin
FTslChmHelp.ShowTslLangChm(); FTslChmHelp.ShowTslLangChm();
end end
function showeditorchm();
begin
FTslChmHelp.showeditorchm();
end
function InitShowWndPos(wnd,n,ix,iy,flg); //셕炬놓迦貫零 function InitShowWndPos(wnd,n,ix,iy,flg); //셕炬놓迦貫零
begin begin
if flg or (not FFistShows[n])then if flg or (not FFistShows[n])then
@ -4698,6 +4708,17 @@ type TEditerEchoWnd=class(TSynMemoNorm) //
ClearAll(); ClearAll();
AppendString("ctrl+z 界岺;ctrl+c 릿齡朞嶝\r\n"); AppendString("ctrl+z 界岺;ctrl+c 릿齡朞嶝\r\n");
end; end;
fmcp := new TMenu(self);
fmcp.Caption := "¸´ÖÆ";
fmcp.parent := m;
fmcp.OnClick := function(o,e)
begin
self.ExecuteCommand(self.ecCopy);
end;
OnPopupMenu := function(o,e);
begin
if fmcp then fmcp.Enabled := SelAvail;
end
FProcess := new tcustomprocess(self); FProcess := new tcustomprocess(self);
FProcess.OnEcho := thisfunction(TEchoToString); FProcess.OnEcho := thisfunction(TEchoToString);
FProcess.onended := thisfunction(onprocend); FProcess.onended := thisfunction(onprocend);
@ -4811,6 +4832,7 @@ type TEditerEchoWnd=class(TSynMemoNorm) //
FDoLockTime; FDoLockTime;
F_Highlighter; F_Highlighter;
private private
[weakref]fmcp;
function format_build_params(d); function format_build_params(d);
begin begin
r := d["build"]+"="+format('"%s" ',d["buildfile"]); r := d["build"]+"="+format('"%s" ',d["buildfile"]);

View File

@ -1505,17 +1505,16 @@ type TxmlSynHighLighter = class(tcustomsynhighlighter)
end end
function SetTToken(tokens,ttk,idx,ext);override; function SetTToken(tokens,ttk,idx,ext);override;
begin begin
st := ExecuteCommand("getcurrentpairstate",">");
st1 := st.state;
d := inherited; d := inherited;
if not d then return ; if not d then return ;
if st1=1 and st.state=1 then st := ExecuteCommand("getcurrentpairstate",">");
if st then st1 := st.state;
if st1=1 {and st.state=1} then
begin begin
st.subitemadd(); st.subitemadd();
if st.subitemcount()>1 then if st.subitemcount()>1 then
begin begin
end else end else
begin begin
@ -1532,7 +1531,7 @@ type TxmlSynHighLighter = class(tcustomsynhighlighter)
d.FFColor := sysfuncolor; d.FFColor := sysfuncolor;
end end
end end;
end end
return d; return d;
//echo "\r\n>>>",st1,"====",st2; //echo "\r\n>>>",st1,"====",st2;

View File

@ -720,12 +720,19 @@ type TTslDebuga=class(TCustomControl)
FShowText.Border := true; FShowText.Border := true;
pmenu := new TPopUpMenu(self); pmenu := new TPopUpMenu(self);
cmu := new TMenu(self); cmu := new TMenu(self);
cmu2 := new TMenu(self);
cmu.OnClick := function(o,e) cmu.OnClick := function(o,e)
begin begin
FShowText.Text := ""; FShowText.Text := "";
end; end;
cmu.Caption := "Çå³ý"; cmu.Caption := "Çå³ý";
cmu2.Caption := "¸´ÖÆ";
cmu.Parent := pmenu; cmu.Parent := pmenu;
cmu2.Parent := pmenu;
cmu2.onClick := function(o,e)
begin
FShowText.ExecuteCommand(FShowText.ecCopy);
end
FShowText.PopUpMenu := pmenu; FShowText.PopUpMenu := pmenu;
dbwnd.addwnds(FStackList,FVaraiblesList,FCommandtext,FShowText); dbwnd.addwnds(FStackList,FVaraiblesList,FCommandtext,FShowText);
ExecuteCommand("clearall"); ExecuteCommand("clearall");
@ -2702,6 +2709,10 @@ type TGroupGridA=class(TDrawGrid)
o.Visible := false; o.Visible := false;
callDatafunction(FCelledit,o._Tag,o.text); callDatafunction(FCelledit,o._Tag,o.text);
end end
VK_ESCAPE:
begin
o.Visible := false;
end
end; end;
end end
function SetNodeData(d,ncls); //ÉèÖÃÊý¾Ý function SetNodeData(d,ncls); //ÉèÖÃÊý¾Ý

View File

@ -579,11 +579,12 @@ type TVclDesigner = class(tvcform)
)), )),
("type":"menu","caption":"帮助","items":( ("type":"menu","caption":"帮助","items":(
("type":"menu","caption":"关于","onclick":thisfunction(openabout)), ("type":"menu","caption":"关于","onclick":thisfunction(openabout)),
("type":"menu","caption":"使用手册","onclick":thisfunction(OpenHelp), ("type":"menu","caption":"使用手册","onclick":thisfunction(OpenHelp)),
("type":"menu","caption":"tsl语言","onclick":thisfunction(OpenHelp),
"bitmap":getmanubmpinfo()), "bitmap":getmanubmpinfo()),
("type":"menu","caption":"控件详情","onclick":thisfunction(OpenHelp), ("type":"menu","caption":"控件详情","onclick":thisfunction(OpenHelp),
"bitmap":getctlsbmpinfo()), "bitmap":getctlsbmpinfo()),
("type":"menu","caption":"范例..","onclick":thisfunction(OpenExaple), ("type":"menu","caption":"范例","onclick":thisfunction(OpenExaple),
"bitmap":getexamplesbmpinfo()) "bitmap":getexamplesbmpinfo())
), ),
@ -662,6 +663,10 @@ type TVclDesigner = class(tvcform)
FChmHelper := new unit(UtslCodeEditor).TTslChmHelp(_wapi); FChmHelper := new unit(UtslCodeEditor).TTslChmHelp(_wapi);
end end
case o.caption of case o.caption of
"tsl语言":
begin
FChmHelper.ChmName := "help"$ioFileseparator()$"LANGUAGEGUIDE.CHM";
end
"使用手册": "使用手册":
begin begin
FChmHelper.ChmName := "help"$ioFileseparator()$"designerUserGuid.CHM"; FChmHelper.ChmName := "help"$ioFileseparator()$"designerUserGuid.CHM";

View File

@ -1386,7 +1386,11 @@ type TTSLDataGrid=class(TDrawGrid)
function EditKeyPress(o,e); function EditKeyPress(o,e);
begin begin
k := e.wparam; k := e.wparam;
if k=VK_ESCAPE or k=13 then if k=VK_ESCAPE then
begin
o.visible := false;
end else
if k=13 then
begin begin
info := o._tag; info := o._tag;
if ifarray(info)then if ifarray(info)then
@ -1525,6 +1529,10 @@ type TGridCellNaturalEdit = class(TGridPropertyRender,TPropertyNatural)
end end
function EditKeyPress(o,e);virtual; function EditKeyPress(o,e);virtual;
begin begin
if VK_ESCAPE=e.wparam then
begin
o.visible := false;
end else
if 13 = e.wparam then if 13 = e.wparam then
begin begin
try try
@ -1661,6 +1669,10 @@ type TGridCellStringEdit = class(TGridCellNaturalEdit)
end end
function EditKeyPress(o,e);override; function EditKeyPress(o,e);override;
begin begin
if e.wparam=VK_ESCAPE then
begin
o.visible := false;
end else
if e.wparam <>13 then if e.wparam <>13 then
begin begin
end else inherited; end else inherited;

Binary file not shown.

BIN
exec_tsl/desginer.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@ -0,0 +1,31 @@
tsl语言本界面开发工具
版本:1.0.0
日期:2025-04-2
使用前请阅读<TSL语言许可权利和限制>
许可权利和限制
深圳市天软科技开发有限公司(以下简称天软)授予您使用程序的非排他性、不可转让、有限的许可,但必须遵守本协议和计划文档中规定的限制,仅限于在如下用途使用:
(I) 个人自用
(II) 开发用途
(III) 天软许可的产品中使用
(IV) 获得天软的独立商用许可后在商业用途中使用
被允许或禁止的行为
您可以在合理必要的范围内复制程序,以行使本协议中授予的许可权。
您不得有如下行为:
(I) 删除或修改任何程序标记或包含有天软的专有权利的任何信息;
(II) 以任何方式将程序提供给任何第三方,除非该第三方是代表您行事的承包商;
(III) 转让本协议或将程序或其中的权益分发、赠送或转让给任何第三方,除非该第三方为代表您行事的承包商仅在为您开发的范畴内使用;
(IV) 对程序进行反向工程、反汇编或反编译,除非是法律明确许可的范围。
(V) 程序可能包含源代码,除非在本协议中明确许可用于其他目的(例如,在开放源码许可下许可),否则根据本协议的条款提供的源代码仅供参考,不得修改。
权利说明
(I) 天软保留本协议中未明确授予的所有权利。如果您要将程序用于本协议明确允许之外的任何目的,均必须从天软或天软的经销商处获得有效的程序许可证。
(II) 天软或其许可方保留程序的所有所有权和知识产权。
(III) 所使用到的第三方技术或程序可能具有独立的条款,您需要在使用第三方技术或程序时遵守第三方技术的单独条款,第三方技术的权利不受本协议的任何限制。
(IV) 随软件可能附带有一些源代码,您需要遵守本协议以及源代码的相关的权利约束,这些源代码如果是第三方的,您还需要遵守第三方的源代码权利许可约束。
信息收集
程序的安装或自动更新过程可能会向天软或其服务提供商传输有关这些过程的数据,以帮助天软了解和优化这些过程。天软不会将这些数据与个人身份信息相关联。
免责声明
这些程序按原样提供,不提供任何形式的担保,且天软拒绝所有明示和默示的保证,包括但不限于对适销性、特定用途的适用性或不侵权的任何默示担保。
在任何情况下,除非适用法律要求,否则天软不对您承担任何损害责任,包括因使用或无法使用程序而造成的任何一般、特殊、附带或后果性损害(包括但不限于数据丢失或数据变得不准确、您或第三方遭受的损失或程序无法与任何其他程序一起运行),即使该持有者或其他方已被告知此类损害的可能性。
出口管制
中国的出口法律法规和任何其他相关的当地出口法律法规适用于这些项目。您同意此类出口管制法律管辖您对本协议下提供的程序(包括技术数据)和任何可交付服务的使用,并且您同意遵守所有此类出口法律和法规(包括“视为出口”和“视为再出口”规定)。您同意,程序或服务(或其直接产品)产生的任何数据、信息、程序和/或材料将不会直接或间接地违反这些法律而出口,也不会被用于这些法律禁止的任何目的。

BIN
exec_tsl/editor.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

BIN
exec_tsl/tsleditor.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@ -1,6 +1,6 @@
tsl语言本地编辑器 tsl语言本地编辑器
版本:1.0.0 版本:1.0.0
日期:2022-07-19 日期:2025-04-2
使用前请阅读<TSL语言许可权利和限制> 使用前请阅读<TSL语言许可权利和限制>
许可权利和限制 许可权利和限制
深圳市天软科技开发有限公司(以下简称天软)授予您使用程序的非排他性、不可转让、有限的许可,但必须遵守本协议和计划文档中规定的限制,仅限于在如下用途使用: 深圳市天软科技开发有限公司(以下简称天软)授予您使用程序的非排他性、不可转让、有限的许可,但必须遵守本协议和计划文档中规定的限制,仅限于在如下用途使用:

BIN
exec_tsl/tslvcltool.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@ -1,6 +1,6 @@
tsl语言本界面开发工具 tsl语言本界面开发工具
版本:1.0.0 版本:1.0.0
日期:2023-01-19 日期:2025-04-2
使用前请阅读<TSL语言许可权利和限制> 使用前请阅读<TSL语言许可权利和限制>
许可权利和限制 许可权利和限制
深圳市天软科技开发有限公司(以下简称天软)授予您使用程序的非排他性、不可转让、有限的许可,但必须遵守本协议和计划文档中规定的限制,仅限于在如下用途使用: 深圳市天软科技开发有限公司(以下简称天软)授予您使用程序的非排他性、不可转让、有限的许可,但必须遵守本协议和计划文档中规定的限制,仅限于在如下用途使用:

View File

@ -678,8 +678,9 @@ type TCustomMemo = class(TCustomScrollControl,TCustomMemoCmd) //
r[1]:= RC[1]+fTextHeight * iy; r[1]:= RC[1]+fTextHeight * iy;
iy++; iy++;
r[3]:= r[1]+fTextHeight; r[3]:= r[1]+fTextHeight;
if i+1=fCaretY then if (i+1=fCaretY) and (fBlockBegin = fBlockEnd) then
begin begin
//echo tostn(array(fBlockBegin ,fBlockEnd));
if Color<>fcurrentLineColor then if Color<>fcurrentLineColor then
begin begin
cvs.Brush.Color := fcurrentLineColor;//rgb(232,232,255); cvs.Brush.Color := fcurrentLineColor;//rgb(232,232,255);
@ -718,108 +719,6 @@ type TCustomMemo = class(TCustomScrollControl,TCustomMemoCmd) //
end end
paintlinestext(RC,FirstLine,LastLine,FirstCol,LastCol); paintlinestext(RC,FirstLine,LastLine,FirstCol,LastCol);
end end
{function DrawLongString2(cvs,dtx,tl,r,rnzf);
begin
if tl<1 then return ;
bt := 0;
ft := cvs.Font;
if rnzf>tl then
begin
qmzfs := 1;
ct := tl-1;
end else
begin
qmzfs := max(1,integer((0-r[0])/FCharWidth));
if qmzfs>3 and qmzfs<tl then
begin
if bytetype(dtx,qmzfs)=2 then qmzfs -= 1;
end
ct := min(tl-qmzfs+1,rnzf);
end
idx := qmzfs;
nqmzfs := qmzfs+ct;
qgqy := array((qmzfs,bt));
lqgqy := 1;
while idx<=(nqmzfs) do
begin
nbt := bytetype(dtx,idx)?1:0;
if nbt<>bt then
begin
qgqy[lqgqy++] := array(idx,nbt);
bt := nbt;
end
idx++;
end
qgqy[lqgqy] := array(nqmzfs+1,bt);
bn := ft.charset ;
for i:= 0 to lqgqy-1 do
begin
ks := qgqy[i][0];
jz := qgqy[i+1][0];
ct := jz-ks;
if ct then
begin
r2 := r;
dtx2 := copy(dtx,ks,ct);
r2[0]+=(ks-1)* FCharWidth;
r2[2]:= r2[0]+ct * FCharWidth;
if qgqy[i][1] then
begin
ft.charset := 134;
end else
begin
ft.charset := bn;
end
//echo ">>draw:",dtx2," --- ",ft.charset;
cvs.DrawText(dtx2,r2,DT_NOPREFIX);
end
end
ft.charset := bn;
end
function DrawLongString(cvs,dtx,tl,r,rnzf);
begin
bn := 100000;
ft := cvs.Font;
if rnzf>tl then
begin
for i := 1 to tl step 2 do
begin
if bytetype(dtx,i)<> 0 then
begin
bn := ft.charset;
ft.charset := 134;
break;
end
end
cvs.DrawText(dtx,r,DT_NOPREFIX);
end else
begin
qmzfs := max(1,integer((0-r[0])/FCharWidth));
if qmzfs>3 and qmzfs<tl then
begin
if bytetype(dtx,qmzfs)=2 then qmzfs -= 1;
end
ct := min(tl-qmzfs+1,rnzf);
for i := qmzfs to qmzfs+ct step 2 do
begin
if bytetype(dtx,i)<> 0 then
begin
bn := ft.charset;
ft.charset := 134;
break;
end
end
dtx2 := copy(dtx,qmzfs,ct);
r[0]+=(qmzfs-1)* FCharWidth;
r[2]:= r[0]+ct * FCharWidth;
cvs.DrawText(dtx2,r,DT_NOPREFIX);
end
if bn <> 100000 then
begin
ft.charset := bn;
end
end}
function DrawLongString(cvs,dtx,tl,r,rnzf); function DrawLongString(cvs,dtx,tl,r,rnzf);
begin begin
bn := 100000; bn := 100000;

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
tsjni.dll

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
tsnet.dll

Binary file not shown.

View File

@ -1,5 +1,92 @@
更新日志--------2025-3-24
修订TMemIniFile erasesection方法无法删除掉section本身。
修订TMemIniFile ValueExists和SectionExists在大小写敏感时查询到大小写不一致的内容。
更新日志--------2025-3-21
新增python 3.13支持。
修正office_plugin对XLSX错误类型处理对应正确的NAN类型可cverrget识别错误类型。
修正THashedStringList被派生后当成TStringList基类的问题。
修正Uppercase和lowercase支持特殊中文。
更新日志--------2025-3-17
修正InputDialog函数多选类型参数不选择时会报告错误的问题。
修正:一些错误的使用导致的内核健壮性问题。
修正tostn对非连续下标网格数组无法等待网格的结果。
修正类成员CONST还未初始化时断点调试访问会导致未初始化的CONST成员无法被初始化。
修正Unit中存在变量时classinfo问题。
修正LINUX版本sysexec多线程稳定性问题。
优化DateTimeToStr等时间转换字符串的性能提升。
升级提供平台管理基础协议cmdlist,cmdlists支持。
提示若用户使用MATLAB 2024A通过COM访问天软平台遇到无法正常使用RemoteCallFunc等需要使用到数组的调用需升级到update7以更正其BUG请联系第三方软件厂商。
更新日志--------2025-1-24
修正当使用RDO2调用本地方法的时候且非采用/tslstart启动模式一旦本地方法在系统变量里存贮对象等类型会导致不安全使用发生。
更新日志--------2025-1-23
**************************************************************************************************************************************
升级支持禁用无市场数据抛出异常。新增系统函数为pn_noraisenodata()设置为1禁用。测试版本平台已支持
当客户端打开选项或者手动设定该系统参数,可以禁止市场数据类函数当股票不存在、缺乏时间序列数据或者实时行情等引发的主动异常。
**************************************************************************************************************************************
修正zip相关函数的目录分割符号问题。
升级:周期类开盘价、最高价、最低价考虑期间交易情况。(测试版本平台已支持)
升级:提供平台管理基础协议支持。(为平台管理工具提供基础支撑)
优化内核性能优化INI读取的性能提高减少别名连接方法读配置的开销。
更新日志--------2024-12-25
修正客户端解决深圳新节点的端口仅为4433原有客户端登录加入新节点采用了缺省443。
深圳新节点的配置可以手动修正端口为4433或者删除掉该节点再重新登录可以添加正确的端口。
更新日志--------2024-12-24
服务:深圳新节点已经启用,欢迎大家使用,预计新节点的性能比原有节点的性能高数倍,请选择深圳新节点登录。
深圳新节点已启用智能DNS如需指定联通链路112.95.140.61电信链路119.147.24.199,移动链路120.232.255.75端口为4433
更新日志--------2024-12-23
升级WORD转PDF渲染公式的增强。
更新日志--------2024-12-19
优化:内核优化性能。
修订WriteFile可能在多个线程同时因无法打开导致重建丢失写入内容的可能性。修订后版本无需加锁写入。
WriteFile仅需要将位置设置为-1则可保障追加模式如果调用失败可检测返回值为字符串后然后重试即可。当多线程尝试打开同一个文件写入时会返回错误
更新日志--------2024-11-28
升级pdf_plugin升级。
升级:错误包容性。在导出文件时,当包含路径的文件名中的路径被错误地设置为双斜杠,无论是//还是\\模式(即转义\\\\),当子目录未存在时,均可能会因为路径的错误无法创建子目录从而导致导出失败。
修正dbglocalrunning函数和dbginfo/dbginfosvr管理命令在执行服务极端高并发时存在的问题。
修正为保障和APACHE的兼容性JAVA WEB容器下运行TSL时候原TWebRequst.URL的输出在Java Web Server下不包含参数部分现改为包含。
更新日志--------2024-11-22
修正:具备高权限导出数据时,当别名为空,采用非绝对路径作为文件名时,可能会导致崩溃的问题。
升级保留旧版本的邮件以及FTP类类名以legacy_作为前缀如legacy_smtp,legacy_pop3,legacy_mailmsg,legacy_ftp等类当新版本的相关类无法正常使用时可使用目前发现对某些ExchangeServer的邮件服务存在认证问题有待排查测试升级
更新日志--------2024-11-18
修正:类中常量定义 const ddd=true但ddd被设定0的问题。
更新日志--------2024-11-16
升级:提供更快速的数据压缩传输模式,极大提高大结果集的传输速度(需服务器支持)。
升级支持更大的流文件格式导入导出需设置pubkrnl.ini配置[Memory]的MaxStrmSize64值(KB))。
升级客户端新增dbglocalcancel(ID:Integer)函数ID为dbglocalrunning中返回信息中的id字段以十六进制模式转换为64位整数该功能可以用来终止运行的WEB任务。
升级firedac APIPoco连接JDBC模式在数据库执行过程中支持取消防止因数据库锁等调用使得取消无法完成。
修正LINUX下sysexec异步执行多个子进程执行的时候当某个子进程结束时会使得sleep需要等待所有子进程结束。
修正:客户端关于中重复显示项问题。
更新日志--------2024-11-05
升级新增filemove函数filemove(srcAlias,srcname,destAlias,destname:String[;flag:Integer]):Boolean 相比filerename而言支持跨卷移动。
flag .& 1 为真时 相当于设定MOVEFILE_REPLACE_EXISTING允许替换
flag .& 2 为真时 相当于设定MOVEFILE_COPY_ALLOWED允许复制模式
更新日志--------2024-11-04
升级客户端新增dbglocalrunning函数获得当前所有的任务列表以及堆栈信息主要用于web等检查在运行中的任务。
升级新增unicompress(统一压缩函数)和uniuncompress(统一解压函数)函数,使用方式如下:
function unicompress(type:string;data:string/binary[;compresslevel:Integer]):String;
type目前支持zstd,zlib,lz4三种类型压缩级别在zstd和zlib模式下生效。
function uniuncompress(type:string;data:string/binary[;srclen:Integer]):String;
type目前支持zstd,zlib,lz4三种类型srclen的设置是解压的大小不设定会自动识别设定后会比较大小是否相符如果知道原大小则应该设定该参数。
升级syscreatemutex创建的互斥在任务结束时如果未释放主动进行释放防止当取消任务或者调试时停止造成的问题。
升级linux版本syscreatemutex创建的互斥支持线程内syswaitforsingleobject重复获得锁。
更新日志--------2024-10-23 更新日志--------2024-10-23
升级修复10-10流处理的问题。 升级修复10-10流处理的问题。
升级hpdf库支持压缩模式。
更新日志--------2024-10-10 更新日志--------2024-10-10
升级:内核对特殊错误数据的健壮性。 升级:内核对特殊错误数据的健壮性。