From f77770db66a31d6a6fb0810c605ab6bf3b53166c Mon Sep 17 00:00:00 2001 From: JianjunLiu Date: Thu, 21 Sep 2023 16:51:53 +0800 Subject: [PATCH] =?UTF-8?q?=E7=95=8C=E9=9D=A2=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改目录结构 --- .../ListBox/e_listbox.tpj | 0 .../ListBox/e_listbox.tsl | 0 .../ListBox/e_listboxmain.tsf | 0 .../ListBox/resource.tfm/e_listboxmain.tfm | 0 .../ListView/e_listview.tpj | 0 .../ListView/e_listview.tsl | 0 .../ListView/e_listviewmain.tsf | 0 .../ListView/resource.tfm/e_listviewmain.tfm | 0 .../TreeView/e_treeview.tpj | 0 .../TreeView/e_treeview.tsl | 0 .../TreeView/e_treeviewmain.tsf | 0 .../TreeView/resource.tfm/e_treeviewmain.tfm | 0 .../examples => d_examples}/action/atsl.tsl | 0 .../action/e_action.tpj | 0 .../action/e_action.tsl | 0 .../action/e_actionmain.tsf | 0 .../action/resource.tfm/e_actionmain.tfm | 0 .../examples => d_examples}/menu/e_menu.tpj | 0 .../examples => d_examples}/menu/e_menu.tsl | 0 .../menu/e_menumain.tsf | 0 .../menu/resource.tfm/e_menumain.tfm | 0 .../toolbar/e_toolbar.tpj | 0 .../toolbar/e_toolbar.tsl | 0 .../toolbar/e_toolbarmain.tsf | 0 .../toolbar/resource.tfm/e_toolbarmain.tfm | 0 designer/tslediter.exe.cmd | 1 - designer/tslvcldesigner.tsf | 6 +++-- designer/udesignerproject.tsf | 22 +++++++++++++++++- designer/vcldesigner.exe.cmd | 1 - exec_tsl/tslediter.exe.cmd | 1 + {designer => exec_tsl}/tslediter.tsl | 0 {designer => exec_tsl}/tslediter.tsl.about | 0 exec_tsl/vcldesigner.exe.cmd | 1 + {designer => exec_tsl}/vcldesigner.tsl | 0 {designer => exec_tsl}/vcldesigner.tsl.about | 0 funcext/tvclib/utslvclstdctl.tsf | 5 ++-- tsleditor.exe | Bin 18432 -> 17920 bytes tslvcltool.exe | Bin 19456 -> 18944 bytes 38 files changed, 30 insertions(+), 7 deletions(-) rename {designer/examples => d_examples}/ListBox/e_listbox.tpj (100%) rename {designer/examples => d_examples}/ListBox/e_listbox.tsl (100%) rename {designer/examples => d_examples}/ListBox/e_listboxmain.tsf (100%) rename {designer/examples => d_examples}/ListBox/resource.tfm/e_listboxmain.tfm (100%) rename {designer/examples => d_examples}/ListView/e_listview.tpj (100%) rename {designer/examples => d_examples}/ListView/e_listview.tsl (100%) rename {designer/examples => d_examples}/ListView/e_listviewmain.tsf (100%) rename {designer/examples => d_examples}/ListView/resource.tfm/e_listviewmain.tfm (100%) rename {designer/examples => d_examples}/TreeView/e_treeview.tpj (100%) rename {designer/examples => d_examples}/TreeView/e_treeview.tsl (100%) rename {designer/examples => d_examples}/TreeView/e_treeviewmain.tsf (100%) rename {designer/examples => d_examples}/TreeView/resource.tfm/e_treeviewmain.tfm (100%) rename {designer/examples => d_examples}/action/atsl.tsl (100%) rename {designer/examples => d_examples}/action/e_action.tpj (100%) rename {designer/examples => d_examples}/action/e_action.tsl (100%) rename {designer/examples => d_examples}/action/e_actionmain.tsf (100%) rename {designer/examples => d_examples}/action/resource.tfm/e_actionmain.tfm (100%) rename {designer/examples => d_examples}/menu/e_menu.tpj (100%) rename {designer/examples => d_examples}/menu/e_menu.tsl (100%) rename {designer/examples => d_examples}/menu/e_menumain.tsf (100%) rename {designer/examples => d_examples}/menu/resource.tfm/e_menumain.tfm (100%) rename {designer/examples => d_examples}/toolbar/e_toolbar.tpj (100%) rename {designer/examples => d_examples}/toolbar/e_toolbar.tsl (100%) rename {designer/examples => d_examples}/toolbar/e_toolbarmain.tsf (100%) rename {designer/examples => d_examples}/toolbar/resource.tfm/e_toolbarmain.tfm (100%) delete mode 100644 designer/tslediter.exe.cmd delete mode 100644 designer/vcldesigner.exe.cmd create mode 100644 exec_tsl/tslediter.exe.cmd rename {designer => exec_tsl}/tslediter.tsl (100%) rename {designer => exec_tsl}/tslediter.tsl.about (100%) create mode 100644 exec_tsl/vcldesigner.exe.cmd rename {designer => exec_tsl}/vcldesigner.tsl (100%) rename {designer => exec_tsl}/vcldesigner.tsl.about (100%) diff --git a/designer/examples/ListBox/e_listbox.tpj b/d_examples/ListBox/e_listbox.tpj similarity index 100% rename from designer/examples/ListBox/e_listbox.tpj rename to d_examples/ListBox/e_listbox.tpj diff --git a/designer/examples/ListBox/e_listbox.tsl b/d_examples/ListBox/e_listbox.tsl similarity index 100% rename from designer/examples/ListBox/e_listbox.tsl rename to d_examples/ListBox/e_listbox.tsl diff --git a/designer/examples/ListBox/e_listboxmain.tsf b/d_examples/ListBox/e_listboxmain.tsf similarity index 100% rename from designer/examples/ListBox/e_listboxmain.tsf rename to d_examples/ListBox/e_listboxmain.tsf diff --git a/designer/examples/ListBox/resource.tfm/e_listboxmain.tfm b/d_examples/ListBox/resource.tfm/e_listboxmain.tfm similarity index 100% rename from designer/examples/ListBox/resource.tfm/e_listboxmain.tfm rename to d_examples/ListBox/resource.tfm/e_listboxmain.tfm diff --git a/designer/examples/ListView/e_listview.tpj b/d_examples/ListView/e_listview.tpj similarity index 100% rename from designer/examples/ListView/e_listview.tpj rename to d_examples/ListView/e_listview.tpj diff --git a/designer/examples/ListView/e_listview.tsl b/d_examples/ListView/e_listview.tsl similarity index 100% rename from designer/examples/ListView/e_listview.tsl rename to d_examples/ListView/e_listview.tsl diff --git a/designer/examples/ListView/e_listviewmain.tsf b/d_examples/ListView/e_listviewmain.tsf similarity index 100% rename from designer/examples/ListView/e_listviewmain.tsf rename to d_examples/ListView/e_listviewmain.tsf diff --git a/designer/examples/ListView/resource.tfm/e_listviewmain.tfm b/d_examples/ListView/resource.tfm/e_listviewmain.tfm similarity index 100% rename from designer/examples/ListView/resource.tfm/e_listviewmain.tfm rename to d_examples/ListView/resource.tfm/e_listviewmain.tfm diff --git a/designer/examples/TreeView/e_treeview.tpj b/d_examples/TreeView/e_treeview.tpj similarity index 100% rename from designer/examples/TreeView/e_treeview.tpj rename to d_examples/TreeView/e_treeview.tpj diff --git a/designer/examples/TreeView/e_treeview.tsl b/d_examples/TreeView/e_treeview.tsl similarity index 100% rename from designer/examples/TreeView/e_treeview.tsl rename to d_examples/TreeView/e_treeview.tsl diff --git a/designer/examples/TreeView/e_treeviewmain.tsf b/d_examples/TreeView/e_treeviewmain.tsf similarity index 100% rename from designer/examples/TreeView/e_treeviewmain.tsf rename to d_examples/TreeView/e_treeviewmain.tsf diff --git a/designer/examples/TreeView/resource.tfm/e_treeviewmain.tfm b/d_examples/TreeView/resource.tfm/e_treeviewmain.tfm similarity index 100% rename from designer/examples/TreeView/resource.tfm/e_treeviewmain.tfm rename to d_examples/TreeView/resource.tfm/e_treeviewmain.tfm diff --git a/designer/examples/action/atsl.tsl b/d_examples/action/atsl.tsl similarity index 100% rename from designer/examples/action/atsl.tsl rename to d_examples/action/atsl.tsl diff --git a/designer/examples/action/e_action.tpj b/d_examples/action/e_action.tpj similarity index 100% rename from designer/examples/action/e_action.tpj rename to d_examples/action/e_action.tpj diff --git a/designer/examples/action/e_action.tsl b/d_examples/action/e_action.tsl similarity index 100% rename from designer/examples/action/e_action.tsl rename to d_examples/action/e_action.tsl diff --git a/designer/examples/action/e_actionmain.tsf b/d_examples/action/e_actionmain.tsf similarity index 100% rename from designer/examples/action/e_actionmain.tsf rename to d_examples/action/e_actionmain.tsf diff --git a/designer/examples/action/resource.tfm/e_actionmain.tfm b/d_examples/action/resource.tfm/e_actionmain.tfm similarity index 100% rename from designer/examples/action/resource.tfm/e_actionmain.tfm rename to d_examples/action/resource.tfm/e_actionmain.tfm diff --git a/designer/examples/menu/e_menu.tpj b/d_examples/menu/e_menu.tpj similarity index 100% rename from designer/examples/menu/e_menu.tpj rename to d_examples/menu/e_menu.tpj diff --git a/designer/examples/menu/e_menu.tsl b/d_examples/menu/e_menu.tsl similarity index 100% rename from designer/examples/menu/e_menu.tsl rename to d_examples/menu/e_menu.tsl diff --git a/designer/examples/menu/e_menumain.tsf b/d_examples/menu/e_menumain.tsf similarity index 100% rename from designer/examples/menu/e_menumain.tsf rename to d_examples/menu/e_menumain.tsf diff --git a/designer/examples/menu/resource.tfm/e_menumain.tfm b/d_examples/menu/resource.tfm/e_menumain.tfm similarity index 100% rename from designer/examples/menu/resource.tfm/e_menumain.tfm rename to d_examples/menu/resource.tfm/e_menumain.tfm diff --git a/designer/examples/toolbar/e_toolbar.tpj b/d_examples/toolbar/e_toolbar.tpj similarity index 100% rename from designer/examples/toolbar/e_toolbar.tpj rename to d_examples/toolbar/e_toolbar.tpj diff --git a/designer/examples/toolbar/e_toolbar.tsl b/d_examples/toolbar/e_toolbar.tsl similarity index 100% rename from designer/examples/toolbar/e_toolbar.tsl rename to d_examples/toolbar/e_toolbar.tsl diff --git a/designer/examples/toolbar/e_toolbarmain.tsf b/d_examples/toolbar/e_toolbarmain.tsf similarity index 100% rename from designer/examples/toolbar/e_toolbarmain.tsf rename to d_examples/toolbar/e_toolbarmain.tsf diff --git a/designer/examples/toolbar/resource.tfm/e_toolbarmain.tfm b/d_examples/toolbar/resource.tfm/e_toolbarmain.tfm similarity index 100% rename from designer/examples/toolbar/resource.tfm/e_toolbarmain.tfm rename to d_examples/toolbar/resource.tfm/e_toolbarmain.tfm diff --git a/designer/tslediter.exe.cmd b/designer/tslediter.exe.cmd deleted file mode 100644 index 5180bdc..0000000 --- a/designer/tslediter.exe.cmd +++ /dev/null @@ -1 +0,0 @@ -"%~dp0..\tsl.exe" "%~dp0tslediter.tsl" -libpath "%~dp0;" \ No newline at end of file diff --git a/designer/tslvcldesigner.tsf b/designer/tslvcldesigner.tsf index f6cbd59..75dea60 100644 --- a/designer/tslvcldesigner.tsf +++ b/designer/tslvcldesigner.tsf @@ -366,7 +366,7 @@ type TVclDesigner = class(tvcform) begin if f[i]=fio then begin - ef := f[1:i]+"designer"+fio+"examples"; + ef := f[1:i]+"d_examples"; if filelist("",ef) then begin FProjectFileOpener.initialDir := ef; @@ -2055,9 +2055,11 @@ begin end function staticInit(); begin + global g_orig_lib_path; np := getdesignerpath()+"dcmps"+ioFileseparator(); CreateDirWithFileName(np+"1.txt"); - tsl_setlibpath_( np+";"+tsl_getlibpath_()); + g_orig_lib_path := tsl_getlibpath_(); + tsl_setlibpath_( np+";"+g_orig_lib_path); ini := static getdesginerini(); //class(TDSocketServer),class(TDSocketClient), //×¢²áµÄcomponet diff --git a/designer/udesignerproject.tsf b/designer/udesignerproject.tsf index 21809d5..8b6436d 100644 --- a/designer/udesignerproject.tsf +++ b/designer/udesignerproject.tsf @@ -1083,7 +1083,26 @@ type TProjectView = class(TVCForm) // fgoformmenu.Enabled := false; return; end - FTslEditer.TslSearchDir := array(p,Getfuncextdir()); + ////////////////////´Óй¹ÔìsearchĿ¼/////////////////////////////// + global g_orig_lib_path; + sdir := array(p); + idx := 1; + if ifstring(g_orig_lib_path) then + begin + for i,v in str2array(g_orig_lib_path,";") do + begin + tm := trim(v); + if tm then + begin + sdir[idx++] := tm; + end + end + end else + begin + sdir[idx++] := Getfuncextdir(); + end + ///////////////////////////////////// + FTslEditer.TslSearchDir := sdir;//array(p,Getfuncextdir()); FExecEntry := FprojName; if d["entryscript"]then begin @@ -2037,6 +2056,7 @@ BD141CA912494F502D48D224F45050274A21E03806FF2C7CA7516022D7D000000 Onclose := thisfunction(CloseHidden); exe := gettslexe(); fio := ioFileseparator(); + global g_orig_lib_path; FDefaultcmdline := format('"%s" "%s" -libpath "%s"',"$(TSL_EXE)","$(FULL_CURRENT_PATH)","$(SEARCH_PATH)"); end function getExecuteEditerSetcmdline(); diff --git a/designer/vcldesigner.exe.cmd b/designer/vcldesigner.exe.cmd deleted file mode 100644 index 9eaa9c8..0000000 --- a/designer/vcldesigner.exe.cmd +++ /dev/null @@ -1 +0,0 @@ -"%~dp0..\tsl.exe" "%~dp0vcldesigner.tsl" -libpath "%~dp0;" \ No newline at end of file diff --git a/exec_tsl/tslediter.exe.cmd b/exec_tsl/tslediter.exe.cmd new file mode 100644 index 0000000..def7d5b --- /dev/null +++ b/exec_tsl/tslediter.exe.cmd @@ -0,0 +1 @@ +"%~dp0..\tsl.exe" "%~dp0tslediter.tsl" -libpath "%~dp0;%~dp0..\designer\;" \ No newline at end of file diff --git a/designer/tslediter.tsl b/exec_tsl/tslediter.tsl similarity index 100% rename from designer/tslediter.tsl rename to exec_tsl/tslediter.tsl diff --git a/designer/tslediter.tsl.about b/exec_tsl/tslediter.tsl.about similarity index 100% rename from designer/tslediter.tsl.about rename to exec_tsl/tslediter.tsl.about diff --git a/exec_tsl/vcldesigner.exe.cmd b/exec_tsl/vcldesigner.exe.cmd new file mode 100644 index 0000000..5ac8cc8 --- /dev/null +++ b/exec_tsl/vcldesigner.exe.cmd @@ -0,0 +1 @@ +"%~dp0..\tsl.exe" "%~dp0vcldesigner.tsl" -libpath "%~dp0;%~dp0..\designer\;" \ No newline at end of file diff --git a/designer/vcldesigner.tsl b/exec_tsl/vcldesigner.tsl similarity index 100% rename from designer/vcldesigner.tsl rename to exec_tsl/vcldesigner.tsl diff --git a/designer/vcldesigner.tsl.about b/exec_tsl/vcldesigner.tsl.about similarity index 100% rename from designer/vcldesigner.tsl.about rename to exec_tsl/vcldesigner.tsl.about diff --git a/funcext/tvclib/utslvclstdctl.tsf b/funcext/tvclib/utslvclstdctl.tsf index a3d3954..a4d21df 100644 --- a/funcext/tvclib/utslvclstdctl.tsf +++ b/funcext/tvclib/utslvclstdctl.tsf @@ -6772,10 +6772,11 @@ type tcustomprocess = class(tcomponent) // **} if fprocesshandle then return 0; if fexecstr then - begin - if not(ifstring(e) and e) then return 0; + begin e := exe; + if not(ifstring(e) and e) then return 0; arg := cmd; + end else begin if not parserasexeclevparam(exe,cmd,e,arg,envp) then return 0; diff --git a/tsleditor.exe b/tsleditor.exe index b2d21266d541efbe98363437d203d5f5a1568d2b..f3ae176ee47acaca74c9ab5c630282f9ecd30c14 100644 GIT binary patch delta 5113 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 delta 5232 zcmeHLi+5DT8K1lCO*WfscJo-+BqrI!jf973k`1uDnj21_R~j$}P$-Qxyiq9Sk#I0# zH|>VXa$QRuZ1Geq)tpuyhlYnp)SfPeV-i>)0+vu}jUJEQG^mkE5R2aazI*R#s((Sx z={;xW_sws<`DW&unQvyd`7xn+r_kmR3J;8}TFT6CkQK6IODbcTASN2*?rc6qSSiH# z?}d!4i$Yu#*v8m+K&hXx^}i~}ND5RiRt#b{o0&Xx7SuKCYlEr^%NlMi_tOsR58qfb=8O^U-()rt#kwPgSvWynWdESW8 z!Yn>(#894X7Gs*b$;+4=aa=%$Ve!M6D1=TG_n%7Si>-47E8k}=L>{wF3NG+T{%*~^ zF&`?+y5!K!5kI}Nd25PP*Wl2)WUZT+;70>lRQa=;%*xoN#Mi1*BsP$swqraoIa1@3 zpyv5<~%M=g}A-Sjz%h6r-Jzs=1$nm7VgoD-9l5xgaa&H1{9L zt|@cK{-~@x=9AzH*&kEGjIo-?)4p0O|8qh?`EgPX*ZI71L_9+B)LybQRouM<CN|!#<1F)!WBz=&@82%F&K25Y( zpJ*^F780R|4-O;oh z^zE<^!vlEwJl$TMZ#7&Y-A^8p=HL5ucjI#S?;IXWdp2)(Ot8G0%?BOs1h`Ng zNZ@M{3oN%P`QwQ>6{95htovn}qqDkWyO@Zw`Wp7Q+HGg7CE92$j}Bz2uNZ|Sf46$r z&fiKb4&04Zz@W!%yV5usbKhEtCjCh|M@^c*H52!y&N+8Q2Uf|7d(UJ(-BxZXsN@@L zBj;s70Wo9FpfgQ$>vEbS7bq)r@DHYSUq`!$k*RISF+th`o*L!ki8+gLd?$-Z{hHSJ zki1Ns1_2S`rphndT7ow)eE)e2F1h7OW1{@1JDavK9gq&=I5khN1jBY*Zm_nTZ%o~B zM!kiN1-K4q6Aaa_j-Gp5fQEEgIW7C$m#|Ml?^MbcPRpUswMHE6GinuD4LB)OL>w

&RhRRG*;Y_fdry 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 VTSlAIR@%0pt-S5|)DiCr{{|~}3 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 aXHM$pKX>-Jd%e9