界面库

修改目录结构
This commit is contained in:
JianjunLiu
2023-09-21 16:51:53 +08:00
parent e35938ec54
commit f77770db66
38 changed files with 30 additions and 7 deletions
-18
View File
@@ -1,18 +0,0 @@
array(
"name":"e_listbox",
"version":"1.2.0",
"dir":(
),
"files":(
"e_listboxmain":(
"name":"e_listboxmain",
"type":"form"
),
"e_listbox":(
"name":"e_listbox",
"type":"tsl"
)
),
"mainform":"e_listboxmain",
"time":"2021-02-03 11:10:32"
)
-6
View File
@@ -1,6 +0,0 @@
//工程E_ListBox界面库主程序
uses tslvcl; //引入界面库
app := InitializeApplication(); //获得界面管理器
app.CreateForm(class(E_ListBoxmain),fm); //构造主窗口
fm.show(); //显示主窗口
app.run(); //开始消息循环
@@ -1,94 +0,0 @@
type E_ListBoxmain=class(tdcreateform)
uses tslvcl;
listbox1:tlistbox;
btn1:tbtn;
btn2:tbtn;
btn3:tbtn;
btn4:tbtn;
btn5:tbtn;
btn6:tbtn;
function Create(AOwner);override; //构造
begin
inherited;
end
function btn6_clk(o;e);virtual; //选择当前选中项的后一项
begin
if listbox1.Multisel=0 then
begin
idx := listbox1.getCurrentSelection();
nidx := (idx+1+listbox1.ItemCount) mod listbox1.ItemCount;
listbox1.setCurrentSelection(nidx);
end
end
function btn5_clk(o;e);virtual; //在选中项前插入
begin
listbox1.insertItem(datetimetostr(now()),listbox1.getCurrentSelection());
end
function btn4_clk(o;e);virtual; //在最后加入
begin
listbox1.appendItem(datetimetostr(now()));
end
function btn3_clk(o;e);virtual; //多选单选设置
begin
if o.caption="多选/(单选)" then
begin
listbox1.Multisel := 1;
o.caption :="(多选)/单选";
end else
begin
listbox1.Multisel := 0;
o.caption :="多选/(单选)"
end
end
function btn2_clk(o;e);virtual; //删除选中
begin
listbox1.DeleteSelectedItems();
end
function btn1_clk(o;e);virtual; //初始化数据
begin
InitListData();
end
function InitListData();
begin
listbox1.Items := array(
"龙岗区",
"盐田区",
"坪山区",
"大鹏新区",
"深汕特别合作区",
"宝安区",
"光明区",
"南山区",
"福田",
"南山"
);
end
function e_listboxmain1_close(o;e);virtual;
begin
{**
@explan(说明) 主窗口关闭回调 %%
@param(e)(tuievent) 消息对象 %%
@param(o)(ttimer) 当前主窗口 %%
**}
if MessageBoxA('是否关闭当前窗口','关闭',MB_YESNO,o)<>IDYES then e.skip := true;
end
function DoControlAlign();override;//对齐子控件
begin
//当窗口大小改变时,该函数会被调用,
//可以通过 clientrect 获取客户区大小,设置子控件的位置以及大小
//如果自己处理了子控件的对齐,就可以去掉 inherited
inherited;
end
function Recycling();override; //回收变量
begin
inherited;
ci := self.classinfo(); //将成员变量赋值为nil避免循环引用
for i,v in ci["members"] do
begin
invoke(self,v["name"],nil);
end
end
end
@@ -1,53 +0,0 @@
object e_listboxmain1:e_listboxmain
caption="ListBox 范例"
height=585
left=374
onclose=e_listboxmain1_close
top=189
width=559
object listbox1:tlistbox
caption="listbox1"
height=526
left=6
top=12
width=400
end
object btn1:tbtn
caption="设置初始值"
height=31
left=416
onclick=btn1_clk
top=34
width=94
end
object btn2:tbtn
caption="删除选择"
left=419
onclick=btn2_clk
top=83
end
object btn3:tbtn
caption="多选/(单选)"
left=419
onclick=btn3_clk
top=134
end
object btn4:tbtn
caption="追加一项"
left=419
onclick=btn4_clk
top=187
end
object btn5:tbtn
caption="插入"
left=419
onclick=btn5_clk
top=238
end
object btn6:tbtn
caption="选择后一项"
left=420
onclick=btn6_clk
top=289
end
end
-18
View File
@@ -1,18 +0,0 @@
array(
"name":"e_listview",
"version":"1.2.0",
"dir":(
),
"files":(
"e_listviewmain":(
"name":"e_listviewmain",
"type":"form"
),
"e_listview":(
"name":"e_listview",
"type":"tsl"
)
),
"mainform":"e_listviewmain",
"time":"2021-02-09 16:30:48"
)
@@ -1,6 +0,0 @@
//工程E_Listview界面库主程序
uses tslvcl; //引入界面库
app := InitializeApplication(); //获得界面管理器
app.CreateForm(class(E_Listviewmain),fm); //构造主窗口
fm.show(); //显示主窗口
app.run(); //开始消息循环
@@ -1,105 +0,0 @@
type E_Listviewmain=class(tdcreateform)
uses tslvcl;
listview1:tlistview;
btn1:tbtn;
btn2:tbtn;
btn3:tbtn;
btn4:tbtn;
btn5:tbtn;
btn6:tbtn;
btn7:tbtn;
btn8:tbtn;
function Create(AOwner);override; //构造
begin
inherited;
end
function btn8_clk(o;e);virtual;
begin
Messageboxa(tostn(listview1.SelectedValue),"选中数据",0,self);
end
function btn7_clk(o;e);virtual;
begin
Messageboxa(tostn(listview1.ListValues),"数据",0,self);
end
function btn6_clk(o;e);virtual; //插入
begin
listview1.InsertItem(array(0,datetimetostr(now())),listview1.SelectedId);
ModifyIndex();
end
function btn4_clk(o;e);virtual; //清空所有
begin
listview1.DeleteAllColumns();
end
function btn3_clk(o;e);virtual; //删除数据项
begin
listview1.DeleteAllItems();
end
function btn2_clk(o;e);virtual; //删除选中
begin
listview1.deleteselect();
ModifyIndex();
end
function btn1_clk(o;e);virtual; //追加一项
begin
listview1.appendItem(array(listview1.ItemCount+1,datetimetostr(now())));
end
function btn5_clk(o;e);virtual; //初始数据
begin
listview1.Columns := array(("text":"id"),("text":"value","width":260));
listview1.DeleteAllItems();
d := array((1,"福田"),
(2,"南山"),
(3,"宝安"),
(4,"龙岗"),
(5,"罗湖"),
(6,"盐田")
);
listview1.Appenditems(d);
end
function e_listviewmain1_close(o;e);virtual;
begin
{**
@explan(说明) 主窗口关闭回调 %%
@param(e)(tuievent) 消息对象 %%
@param(o)(ttimer) 当前主窗口 %%
**}
if MessageBoxA('是否关闭当前窗口','关闭',MB_YESNO,o)<>IDYES then e.skip := true;
end
function DoControlAlign();override;//对齐子控件
begin
//当窗口大小改变时,该函数会被调用,
//可以通过 clientrect 获取客户区大小,设置子控件的位置以及大小
//如果自己处理了子控件的对齐,就可以去掉 inherited
inherited;
end
function Recycling();override; //回收变量
begin
inherited;
ci := self.classinfo(); //将成员变量赋值为nil避免循环引用
for i,v in ci["members"] do
begin
invoke(self,v["name"],nil);
end
end
function ModifyIndex(); //修正序号
begin
for i := 0 to listview1.ItemCount-1 do
begin
listview1.SetSubItemByIndex(i,0,i+1);
end
end
end
@@ -1,89 +0,0 @@
object e_listviewmain1:e_listviewmain
caption="Listview范例"
height=608
left=434
minmaxbox=false
onclose=e_listviewmain1_close
top=248
width=728
wssizebox=false
object listview1:tlistview
columns= [<
width=80
text="id"
>
<
width=280
text="value"
>
]
height=532
left=17
top=17
width=384
end
object btn1:tbtn
caption="追加行"
height=31
left=432
onclick=btn1_clk
top=168
width=233
end
object btn2:tbtn
caption="删除选中行"
height=31
left=431
onclick=btn2_clk
top=221
width=233
end
object btn3:tbtn
caption="清空数据"
height=31
left=432
onclick=btn3_clk
top=275
width=232
end
object btn4:tbtn
caption="清空数据和列名"
height=31
left=431
onclick=btn4_clk
top=330
width=233
end
object btn5:tbtn
caption="初始化数据"
height=31
left=431
onclick=btn5_clk
top=73
width=229
end
object btn6:tbtn
caption="在选中位置插入"
height=31
left=432
onclick=btn6_clk
top=125
width=226
end
object btn7:tbtn
caption="获得数据"
height=31
left=429
onclick=btn7_clk
top=381
width=235
end
object btn8:tbtn
caption="获得选中数据"
height=31
left=431
onclick=btn8_clk
top=428
width=232
end
end
-18
View File
@@ -1,18 +0,0 @@
array(
"name":"e_treeview",
"version":"1.2.0",
"dir":(
),
"files":(
"e_treeviewmain":(
"name":"e_treeviewmain",
"type":"form"
),
"e_treeview":(
"name":"e_treeview",
"type":"tsl"
)
),
"mainform":"e_treeviewmain",
"time":"2021-02-18 10:01:20"
)
@@ -1,6 +0,0 @@
//工程E_TreeView界面库主程序
uses tslvcl; //引入界面库
app := InitializeApplication(); //获得界面管理器
app.CreateForm(class(E_TreeViewmain),fm); //构造主窗口
fm.show(); //显示主窗口
app.run(); //开始消息循环
@@ -1,119 +0,0 @@
type E_TreeViewmain=class(tdcreateform)
uses tslvcl;
treeview1:ttreeview;
btn1:tbtn;
btn2:tbtn;
btn3:tbtn;
btn4:tbtn;
btn5:tbtn;
btn6:tbtn;
btn7:tbtn;
btn8:tbtn;
function Create(AOwner);override; //构造
begin
inherited;
end
function btn8_clk(o;e);virtual;
begin
treeview1.HasLine := not treeview1.HasLine;
end
function e_treeviewmain1_close(o;e);virtual;
begin
{**
@explan(说明) 主窗口关闭回调 %%
@param(e)(tuievent) 消息对象 %%
@param(o)(ttimer) 当前主窗口 %%
**}
if MessageBoxA('是否关闭当前窗口','关闭',MB_YESNO,o)<>IDYES then e.skip := true;
end
function btn7_clk(o;e);virtual;
begin
Messageboxa(tostn(treeview1.RootNode.toarray()),"数据",0,self);
end
function btn6_clk(o;e);virtual; //修改文本
begin
nd := treeview1.CurrentNode;
if not nd then return;
r := nd.caption;
wd := new TInPutQuerys(self);
wd.parent := self;
d := array(("Name":"b","value":r,"caption":"标题名:"));
wd.SetData(d);
if wd.ShowDlg(r1,"输入标题") then
begin
nd.caption := r1["b"];
treeview1.InvalidateItem(nd);
end
end
function btn4_clk(o;e);virtual;//checkbox
begin
treeview1.checkbox := not treeview1.checkbox;
treeview1.InvalidateRect(nil,false);
end
function btn5_clk(o;e);virtual; //删除选择
begin
nd := treeview1.CurrentNode;
if nd then
begin
nd.Recycling();
end
end
function btn3_clk(o;e);virtual;//插入子节点
begin
nd := treeview1.CurrentNode;
if nd then
begin
nnd := treeview1.CreateTreeNode();
nnd.caption := datetimetostr(now());
nnd.parent := nd;
treeview1.SetSel(nnd);
end
end
function btn2_clk(o;e);virtual; //初始化
begin
rnd := treeview1.RootNode;
ndsz := treeview1.CreateTreeNode();
ndsz.caption := "深圳";
ndsz.parent := rnd;
ndgz := treeview1.CreateTreeNode();
ndgz.caption := "广州";
ndgz.parent := rnd;
for i,v in array("福田","罗湖","宝安","龙岗","盐田") do
begin
nd := treeview1.CreateTreeNode();
nd.caption := v;
nd.parent := ndsz;
end
for i,v in array("白云","花都","天河") do
begin
nd := treeview1.CreateTreeNode();
nd.caption := v;
nd.parent := ndgz;
end
end
function btn1_clk(o;e);virtual; //清空
begin
treeview1.RootNode.RecyclingChildren();
end
function DoControlAlign();override;//对齐子控件
begin
//当窗口大小改变时,该函数会被调用,
//可以通过 clientrect 获取客户区大小,设置子控件的位置以及大小
//如果自己处理了子控件的对齐,就可以去掉 inherited
inherited;
end
function Recycling();override; //回收变量
begin
inherited;
ci := self.classinfo(); //将成员变量赋值为nil避免循环引用
for i,v in ci["members"] do
begin
invoke(self,v["name"],nil);
end
end
end
@@ -1,81 +0,0 @@
object e_treeviewmain1:e_treeviewmain
caption="树控件范例"
height=520.0
left=483
minmaxbox=false
onclose=e_treeviewmain1_close
top=258
width=632
wssizebox=false
object treeview1:ttreeview
caption="treeview1"
height=420
left=15
top=26
width=371
end
object btn1:tbtn
caption="清空树"
height=31
left=418
onclick=btn1_clk
top=412
width=153
end
object btn2:tbtn
caption="初始化数据"
height=31
left=418
onclick=btn2_clk
top=38
width=155
end
object btn3:tbtn
caption="插入子节点"
height=31
left=420
onclick=btn3_clk
top=91
width=152
end
object btn4:tbtn
caption="checkbox"
height=31
left=418
onclick=btn4_clk
top=204
width=152
end
object btn5:tbtn
caption="删除选择节点"
height=31
left=420
onclick=btn5_clk
top=148
width=150
end
object btn6:tbtn
caption="修改选中节点文本"
height=31
left=420
onclick=btn6_clk
top=308
width=151
end
object btn7:tbtn
caption="获得数据"
height=31
left=419
onclick=btn7_clk
top=360
width=151
end
object btn8:tbtn
caption="hasline"
height=31
left=419
onclick=btn8_clk
top=259
width=150
end
end
-1
View File
@@ -1 +0,0 @@
//tsl script :atsl
-27
View File
@@ -1,27 +0,0 @@
array(
"name":"e_action",
"version":"1.1.2",
"dir":(
),
"files":(
"e_actionmain":(
"name":"e_actionmain",
"type":"form",
"dir":""
),
"e_action":(
"name":"e_action",
"type":"tsl",
"dir":""
),
"atsl":(
"name":"atsl",
"type":"tsl",
"dir":""
)
),
"mainform":"e_actionmain",
"entryscript":"e_action",
"time":"2022-04-24 17:32:45",
"commandline":"\"$(TSL_EXE)\" \"$(FULL_CURRENT_PATH)\" -libpath \"$(SEARCH_PATH)\""
)
-6
View File
@@ -1,6 +0,0 @@
//工程E_Action界面库主程序
uses tslvcl; //引入界面库
app := InitializeApplication(); //获得界面管理器
app.CreateForm(class(E_Actionmain),fm); //构造主窗口
fm.show(); //显示主窗口
app.run(); //开始消息循环
-65
View File
@@ -1,65 +0,0 @@
type E_Actionmain=class(tdcreateform)
uses tslvcl;
btn1:tbtn;
actionlist1:tactionlist;
action1:taction;
btn2:tbtn;
btn3:tbtn;
btn4:tbtn;
btn5:tbtn;
popupmenu1:tpopupmenu;
menu1:tmenu;
btn6:tbtn;
function Create(AOwner);override; //构造
begin
inherited;
end
function action1_onexecute(o;e);
begin
{**
@explan(说明) onexecute消息回调 %
@param(e)(tuievent) 消息对象 %
@param(o)(tcomponent) 组件 %
**}
echo "\r\naction do ";
end
function btn5_clk(o;e);virtual; //修改caption
begin
action1.caption := datetimetostr(now());
end
function btn6_clk(o;e);virtual; //修改enabled状态
begin
action1.Enabled := not action1.Enabled;
end
function e_actionmain1_close(o;e);virtual;
begin
{**
@explan(说明) 主窗口关闭回调 %%
@param(e)(tuievent) 消息对象 %%
@param(o)(ttimer) 当前主窗口 %%
**}
if MessageBoxA('是否关闭当前窗口','关闭',MB_YESNO,o)<>IDYES then e.skip := true;
end
function DoControlAlign();override;//对齐子控件
begin
//当窗口大小改变时,该函数会被调用,
//可以通过 clientrect 获取客户区大小,设置子控件的位置以及大小
//如果自己处理了子控件的对齐,就可以去掉 inherited
inherited;
end
function Recycling();override; //回收变量
begin
inherited;
ci := self.classinfo(); //将成员变量赋值为nil避免循环引用
for i,v in ci["members"] do
begin
invoke(self,v["name"],nil);
end
end
end
@@ -1,81 +0,0 @@
object e_actionmain1:e_actionmain
caption="action 范例"
height=520
left=451
onclose=e_actionmain1_close
popupmenu=popupmenu1
top=256
width=510
object btn1:tbtn
action=action1
caption="btn1"
height=31
left=25
onclick=btn1_clk
top=67
width=163
end
object actionlist1:tactionlist
left=225
top=189
height=30
width=30
object action1:taction
caption="绑定action的控件"
enabled=true
onexecute=action1_onexecute
end
end
object btn2:tbtn
action=action1
caption="btn2"
height=31
left=25
onclick=btn2_clk
top=126
width=163
end
object btn3:tbtn
action=action1
caption="btn3"
height=31
left=25
top=182
width=162
end
object btn4:tbtn
action=action1
caption="btn4"
height=31
left=27
top=241
width=161
end
object btn5:tbtn
caption="修改action的caption"
height=31
left=280
onclick=btn5_clk
top=98
width=140
end
object popupmenu1:tpopupmenu
left=162
top=329
height=30
width=30
caption="popupmenu1"
object menu1:tmenu
action=action1
caption="menu1"
end
end
object btn6:tbtn
caption="修改action enabed"
height=31
left=281
onclick=btn6_clk
top=248
width=143
end
end
-18
View File
@@ -1,18 +0,0 @@
array(
"name":"e_menu",
"version":"1.2.0",
"dir":(
),
"files":(
"e_menumain":(
"name":"e_menumain",
"type":"form"
),
"e_menu":(
"name":"e_menu",
"type":"tsl"
)
),
"mainform":"e_menumain",
"time":"2021-02-18 11:07:09"
)
-6
View File
@@ -1,6 +0,0 @@
//工程E_Menu界面库主程序
uses tslvcl; //引入界面库
app := InitializeApplication(); //获得界面管理器
app.CreateForm(class(E_Menumain),fm); //构造主窗口
fm.show(); //显示主窗口
app.run(); //开始消息循环
-45
View File
@@ -1,45 +0,0 @@
type E_Menumain=class(tdcreateform)
uses tslvcl;
mainmenu1:tmainmenu;
menu1:tmenu;
menu2:tmenu;
menu3:tmenu;
menu4:tmenu;
menu5:tmenu;
popupmenu1:tpopupmenu;
menu6:tmenu;
menu7:tmenu;
function Create(AOwner);override; //构造
begin
inherited;
end
function Menuclick(o,e);//菜单点击
begin
messageboxa(format("菜单项:%s 被点击",o.caption),"菜单点击:",0,self);
end
function e_menumain1_close(o;e);virtual;
begin
{**
@explan(说明) 主窗口关闭回调 %%
@param(e)(tuievent) 消息对象 %%
@param(o)(ttimer) 当前主窗口 %%
**}
if MessageBoxA('是否关闭当前窗口','关闭',MB_YESNO,o)<>IDYES then e.skip := true;
end
function DoControlAlign();override;//对齐子控件
begin
//当窗口大小改变时,该函数会被调用,
//可以通过 clientrect 获取客户区大小,设置子控件的位置以及大小
//如果自己处理了子控件的对齐,就可以去掉 inherited
inherited;
end
function Recycling();override; //回收变量
begin
inherited;
ci := self.classinfo(); //将成员变量赋值为nil避免循环引用
for i,v in ci["members"] do
begin
invoke(self,v["name"],nil);
end
end
end
@@ -1,101 +0,0 @@
object e_menumain1:e_menumain
caption="²Ëµ¥·¶Àý"
height=392
left=488
mainmenu=mainmenu1
onclose=e_menumain1_close
popupmenu=popupmenu1
top=220
width=375
object mainmenu1:tmainmenu
left=58
top=73
height=30
width=30
object menu1:tmenu
caption="menu1"
object menu3:tmenu
caption="²Ëµ¥3"
onclick=menuclick
end
object menu4:tmenu
caption="menu4"
object menu5:tmenu
caption="menu5"
onclick=menuclick
end
end
end
object menu2:tmenu
caption="menu2"
onclick=menuclick
end
end
object popupmenu1:tpopupmenu
left=172
top=98
height=30
width=30
caption="popupmenu1"
object menu6:tmenu
bitmap={ 0502000000060400000074797065000203000000696D670006040000006461746
100020103000089504E470D0A1A0A0000000D4948445200000020000000200806
000000737A7AF4000000017352474200AECE1CE90000000467414D410000B18F0
BFC6105000000097048597300000EC300000EC301C76FA8640000029649444154
5847ED964B68135114865D894BC1951BE946A42B752356505C54042D882E846A5
BA13B6B151491D295B4882B2D08E293D6422D55918AF5416AC5A22008BAD085D4
5A6D9A986812E3249989B1769263FEDB7BAF379957122DA5900F0EC99C398F7FE
69E99B9CB689159FA02326F5FD3B7CE760AECAF67BFC6D8437EA634FE49803E3A
4293B5AB6862CDF2020B1F3BC423BCF114103BDF455AFF2532E331EEF9CBCCBEE
DACE174FD061687C64284F1CCC7A3DC2910F0BDA79B12B76EF0A379444158A071
27690357C94CFC60E770DBD17C76F23D3B065F5AF7B2D868F729EE71470A885FB
F201B850E37CAA210E56FA893E784059A765162A897B27A8AC509D098D5686FE6
1E77A480ACA153B0A54136800895F4AB17143DDB49D33B36CA1866352B2898BFE
AE4DD01CAFD4C33C1F063494AC13203C6D347ECD6A65F8E738F15E3F918454E9F
A0CFDB6A0BC47C58B792426D0728393C48B95F191EED8EE7107A618CFBE86B471
B4D6DAA2910F371FD6A0A1F6FA5D4C81D22738E475B910252F786D8731CE93AC9
3DE5A3E7DF01688AE6AA18888348FDC903A25C8E47CF2305A80973A120F75A316
311FECF1DDD779FC2475BD8B2A8B5B16CEA7C48017883C52F9FCBDFD251EEB1F2
3BE867457035E5907A3C4CA12307D9C0223F71BB9F9F71980134FAB465ADE551C
260A20086B45250437D746D05884630153701D1331DB6F3632635CABC7BC38FAC
FC3701221E312AFEDD9B995F7D5BAA2CB80027BFA02AA02AA02A606909C8EA49B
9FF2B061B98E24D0CA848C0ECD4844CC477A152C4C70BE6F43AB6150066F66C65
89F12B3DDC533EC81502C446B6184701DACD6B32195F46AC7B39861C91EFF6F97
61400B0D6A248A5A6F55DE4D5EC711500B08ED840408C9D61176C67C829657E3C
052C348B2C80E80FBF5E212863E9B00A0000000049454E44AE42608200 }
caption="menu6"
onclick=menuclick
end
object menu7:tmenu
bitmap={ 0502000000060400000074797065000203000000696D670006040000006461746
100024503000089504E470D0A1A0A0000000D4948445200000020000000200806
000000737A7AF4000000017352474200AECE1CE90000000467414D410000B18F0
BFC6105000000097048597300000EC300000EC301C76FA864000002DA49444154
5847C597BD6A54411886BD066BADD45E11BC01116C6C142F402C2CAC44112C949
47A031606B7515288918022A8202EF107D42A0988C4D5603624EBAE68B2C6282A
9FFB8CE73D993D993973768DF8C040767EDF39F3CDFB4DB6D87F66200193CDAF7
6A6FEC1F6DF7C6FBBAFCDD9B6D1866DEF95BDD7E7ECE0AD79BBF0B46D77DF7DB1
C5D59FD9883449012BDF7FD995A94F6ED1AD97672B9791671DEBACA585940AB8F
8BC637B7A3BF527DE596BD8A189A69D7BDCB61BAF576C7CB66B23BD9D1FB9BD60
BB6A6FFBFAEE1B9BB3B157CBD96C61A2022EBDF8D837D9F9276D9BEE7CCB5AE3C
CF4FA9CAEB7FAC69E7CD8CA5A37121470F4CE423E78C7D586D5E757B396EAD466
965D7C681EE60CB141006A35E8C483A5AC76780EF78E46F371A445FA04705EEAC
CC014A71EB55C49C14662227201442C4143273E5D8A63F716F349F93B0547495F
829A9B2572015C1B4DC8F995E12FAE9212411CA92FD75A380118871A89E032428
BABA4447093E887A7082700F7D2245CA318FEE2136FBAC1BFCB44708DD50F5705
27000BA5122389515C1CF41BAA8AC0C8E883A58313808F53899B85082D0EAA135
544E0A2B4EB189C00920995586A11DF17FCC541F53EBE88900362E1B491CCC009
9063E1EB451045E7E2E2A0858A48446843E40FDAC8A4E004F02326A08C9880322
4405EE304B0432A438ACB1846808E8063072740B93E1684318611A02024F0C109
9041945DC310C308D0353C3BE95DC3974B6BF964654654645001BE1129DE9C003
830FEC70B5256EC33A8007D694AB3FBC3D5E50248106A4C2523A1FE55F0931189
4FE40248917AFF5549C7308800A56352BEFF58CD05008F054D5AE54142445352F
80F92A2D7F40980E3F7D77D7FB39F64A3539FB3DA75360800DD55CA663D4A635F
2A280050ABC194BF7996F35563440500E7A577A2CA20FF9810D4A197B04FA9002
062FDF7629582A770ADFDC7678CA4008171B05B2C141F279970C664529219F984
63C25507A1B2807F83D96FD95753C0FE2C3C9B0000000049454E44AE42608200 }
caption="menu7"
onclick=menuclick
end
end
end
-18
View File
@@ -1,18 +0,0 @@
array(
"name":"e_toolbar",
"version":"1.2.0",
"dir":(
),
"files":(
"e_toolbarmain":(
"name":"e_toolbarmain",
"type":"form"
),
"e_toolbar":(
"name":"e_toolbar",
"type":"tsl"
)
),
"mainform":"e_toolbarmain",
"time":"2021-02-18 10:41:29"
)
-6
View File
@@ -1,6 +0,0 @@
//工程E_Toolbar界面库主程序
uses tslvcl; //引入界面库
app := InitializeApplication(); //获得界面管理器
app.CreateForm(class(E_Toolbarmain),fm); //构造主窗口
fm.show(); //显示主窗口
app.run(); //开始消息循环
@@ -1,43 +0,0 @@
type E_Toolbarmain=class(tdcreateform)
uses tslvcl;
toolbar1:ttoolbar;
controlimagelist1:tcontrolimagelist;
toolbutton1:ttoolbutton;
toolbutton2:ttoolbutton;
toolbutton3:ttoolbutton;
toolbutton4:ttoolbutton;
toolbutton5:ttoolbutton;
function Create(AOwner);override; //构造
begin
inherited;
end
function ToolbarItemClick(o,e);//item 点击
begin
Messageboxa(format("按钮:%s 被点击",o.caption),"点击",0,self);
end
function e_toolbarmain1_close(o;e);virtual;
begin
{**
@explan(说明) 主窗口关闭回调 %%
@param(e)(tuievent) 消息对象 %%
@param(o)(ttimer) 当前主窗口 %%
**}
if MessageBoxA('是否关闭当前窗口','关闭',MB_YESNO,o)<>IDYES then e.skip := true;
end
function DoControlAlign();override;//对齐子控件
begin
//当窗口大小改变时,该函数会被调用,
//可以通过 clientrect 获取客户区大小,设置子控件的位置以及大小
//如果自己处理了子控件的对齐,就可以去掉 inherited
inherited;
end
function Recycling();override; //回收变量
begin
inherited;
ci := self.classinfo(); //将成员变量赋值为nil避免循环引用
for i,v in ci["members"] do
begin
invoke(self,v["name"],nil);
end
end
end
@@ -1,168 +0,0 @@
object e_toolbarmain1:e_toolbarmain
caption="묏야으렀절"
height=520.0
left=429
onclose=e_toolbarmain1_close
top=236
width=664
object toolbar1:ttoolbar
caption="toolbar1"
height=29
imagelist=controlimagelist1
width=648
object toolbutton1:ttoolbutton
caption="객큐1"
imageid=0
onclick=toolbaritemclick
end
object toolbutton2:ttoolbutton
caption="객큐2"
imageid=1
onclick=toolbaritemclick
end
object toolbutton3:ttoolbutton
caption="객큐3"
imageid=2
onclick=toolbaritemclick
end
object toolbutton4:ttoolbutton
caption="toolbutton4"
imageid=4
onclick=toolbaritemclick
end
object toolbutton5:ttoolbutton
caption="toolbutton5"
imageid=3
onclick=toolbaritemclick
end
end
object controlimagelist1:tcontrolimagelist
left=84
top=114
images={ 0502000000060400000074797065000204000000626D707300060500000069746
56D73000505000000000000000005020000000604000000747970650002030000
00696D670006040000006461746100029F02000089504E470D0A1A0A0000000D4
948445200000020000000200806000000737A7AF4000000017352474200AECE1C
E90000000467414D410000B18F0BFC6105000000097048597300000EC300000EC
301C76FA86400000234494441545847ED96CDCB69511487EF5F6BC25061A048C9
409181C840182829C554664AEFC04C0C0C64A0440626C8E0DC9E75D73E6DC7E1E
55EEE3BF1D41A9CB5D6DEFB77F6C7DAFB97F3C37C047C045C08C866B34E201078
DA686768341ABE39582C1693B8CD4B056CB75BDFB8D77ABD9EE4C34B9760381CC
A00D56A553D97CC663389472211F5BC588099C16EB7AB9E4BCEE7B3C483C1A07A
3C0268C83A91F4B7964C269DC3E1A03D5EB2DFEF25271C0EABC712C0BA783B7BD
6CAE5B233994CB4C76BD6EBB5E4C5E371F55802581782ACD3BB582C1632463A9D
568F2520140A49F0743AA9E7F54CA753192397CBA9C712108D4625B8DBEDD4F31
85F5F5FCE6834D2AFFB8CC76319A3542AA9C712904AA524B85C2ED5F318DFED7C
1B734C6BB59A7A2C01F97C5E82F736911FABD5CA4924120F89E8F7FB92D76AB5D
46309A8542A12644A6FC1F16293FA99116157392FE6A4D9425D01CD66538283C1
403DD79829FCCE10E4077F4E9C9930B802FCD479A1D613B78D7658A15090F6C56
251B3AF61EDC9E1470CAE00FE9C2033F12CF57A5DDAB28F8EC7A37AAF61F793C7
6930B802587B82EC8567E8743AD22E93C948A9BD07E79F5CEA81C115C0EE377FF
128F3F95CDA50FF379B8D7A6F4305249F8A68700570FE09520F9E816378EBF2F1
C21DC018DC0906570015902015F15D700B3286BD54AE00EE0082DC09EF8277006
3F02E30B802E09D37227DD2B7FD1A820B019C6B92DE69ED765B47FBC3850040C4
BFBE8AFC8C3E79B078B912F0BFF908F861018EF31BE3A64DABEA5772560000000
049454E44AE426082000001000000050200000006040000007479706500020300
0000696D67000604000000646174610002D303000089504E470D0A1A0A0000000
D49484452000000300000003008060000005702F987000000017352474200AECE
1CE90000000467414D410000B18F0BFC6105000000097048597300000EC300000
EC301C76FA86400000368494441546843ED98DB4B14511CC7FB837AEB35287A08
0A8A1E844088EA2108C948222822BAA0629682742122C9D0BC84B5A246E135EFB
AAEAB99AD46522A5B5E482C5371E7F66DCECE6FDCD9F1CCECCD7194F6035FD839
F33D737EDFD939672E7BB0CB4907709B74002EBF2781BA1380AF981A9CC39900A
3CF80B2BD9A825DD4E80CD60116C781F76781E6F3407B0ED07915E8BD050CE403
83F701FF03400E91D904EBA70718794C8D26E687D4639400DE42A03F0FE8BE017
45C01DAB281A6735ADBCA2C99ADB10E507B3852044FC38FC8C8C118C0CEC74E8E
F198668D9591D11AEB00BC031AB530A2F9E687B5B3CCC48A653207304BE75369F
431CD327A2D482E407D069954DE66F23D769A6ED6FA2E06F8FB753916C0B8BAD4
1CE47BEC345E499D553CC7F81E26C702B009AE136BAEF0642CCC5BC0F7303912C
0739C0CC4DF2030EB4D4C46D8366F1C266702A87FF95632DDC21F87C99100E5FB
B4FB81F9AC26A3892AE0F511FE384C8ECD81ED523A80DB4A07705BE900B1F4EA9
0F640C65B22EDE4BDCB3F9E598E07E8CB257312189F58ADE47880EEEB644E1061
75870460626F506CA04414EF2338F3C6E03F9FC44E2B1D201EB117733650228A6
70233316F0C520BD0758DCC49102B04BB57C4416A01D87B41B2D8050854904943
595A53975E99B6A249FD12B25B46F5CF2D66597D0FAADA0FCCB453012A7FD6211
67E4028A31CA153D5106BE8538E819D33891B4F024B5F69700DB1C2AF156F90DC
33457B35764600F6E992DD9D09A92100B1A43BFC5B2CEE8C0A209CA98132F92BB
C8FE17E005F110DA8A228109F0E6C142B95F9A02CAC40C8AE8B0A2116755207B7
034C54D3606AED3F9721DC6E8E2A9489FD1BF2F08F4DED3AEE04A83E0004B54B8
4C10A14B23C9B8AD425F74D43F28C6D6C4BE57EEAE95680858F34885AFCBB2F51
C572755ABDEE3FCF417CD803E9C510F5D4D8FE006F8ED200EA65E30B42BCD9145
E1EB9851B245CAA8732B3443D236C7F00C34B9058EA8570B911CAE22AC47B1DDC
C299C4DC56286B02F58AC6850077680035405EAB56A05A3C96D7C361CCC54B4FF
AC9CDC73A40DB457E01A9AA258B0600421722CBA3F4D20F796C0EA1CCCA485BED
2839ADB10EC0E0BD906F8508BD505D72D77708EA9C608F0D72C73772D9631FC06
1E4DE2948CF072116B443C8698090590531BF0D72609E1CB17135C056900EE036
BB3C00F00FB4FD2774447C293D0000000049454E44AE426082000002000000050
2000000060400000074797065000203000000696D670006040000006461746100
02DB02000089504E470D0A1A0A0000000D4948445200000020000000200806000
000737A7AF4000000017352474200AECE1CE90000000467414D410000B18F0BFC
6105000000097048597300000EC300000EC301C76FA8640000027049444154584
7D596CB6A2A411086CF0BBA72A3A851541414043722EE44111782BAF182260441
B7826F6188E015DCB81111172AC4B55087BFE89E8CE3CCD8E6C484F341914A55F
7F43F5D3DD5FEA15FE6FF13301C0EA95AAD92C7E32197CB45D1689452A914F5FB
7DDA6EB762943ACA0276BB1D65B35972381CB6562814E870388859B7511230994
C281C0EF3028944823A9D0EAD562B91253A1E8FD4EBF5C8EFF7F398582C46F3F9
5C64EDB92960B3D9F076E3C1E572993E3E3E44E61A942097CB69BBB15C2E45C69
A9B02506F3CAC56AB89C86DBADD2ECF29954A22628DAD80E974CA0F72BBDDBC13
AAA024B21CEFEFEF226A8EAD80F57A4DF1789CDFE85E702620A05EAFF3FFFBFD9
E4EA713FB7A940EE13D542A150A8542D46AB558402693E15D808F9731F2ED02DA
ED362F260DE583C137DB495301AFAFAF6C5F452FC2E974F25F7C41665C09188D4
6DA64F85F65301868CF49A7D3743E9F45E6922B01B27630F8FFC2DBDB1B6F3BBA
A8155702D0DBA500F88FE642C0783CE6859F9E9ED8E023F6482E04BCBCBCF0A2C
D66930D3E62F780CF0EF3A4A121E5F37991BDE64280BC707091C0E023760FFAC5
8D66862660369BF1A060302822C43E62C8A9625C0CDD54DE0DC56251443FD1043
C3F3F6B938D869C2A728E1E79A7F87C3E11F94413100804B4C946434E153947CF
4D018BC582074422110EEA410C398C51C12800259017936509E489470B3522DB2
AC6A820059899D9D7C002BC5E2F0F306BBDB235638C0AFA05AD4C0F0BC0AFDA46
A3C1013392C9247FDF2A982D02ACBE06ED107E17560280D961FC5101D805E4D01
D253F26006F2F4BA03F8C0F1360677ABE5D80F1329286BADBB6E2DFE2970510FD
05E1AD4F7F1B5448FE0000000049454E44AE42608200000300000005020000000
60400000074797065000203000000696D67000604000000646174610002F80200
0089504E470D0A1A0A0000000D4948445200000020000000200806000000737A7
AF4000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000
00097048597300000EC300000EC301C76FA8640000028D494441545847C5973D6
814411480B7B25050045B259D8595A0A5550AB5B00A626163255A5A5B28B676E9
2C14091A8B84E01F88281844A208FE8128722268E7DE9D5E363197E4923CF79B9
BB7EEE6CE9DD9BDD3FD608ED937F3E6BD9B7DF3DE6C209EB456D665E2735BC69E
B464FFDDA6EC996AC8D61BA169F4919D989D9799AFCB12AD6E582D374E073EB43
A72F679243B26EB125CFF6EDA968950764FD5E5C0BDA669F491E9F8CEC9D0E8A0
EB22D781F3AF1765FBCDAEE1C38F7ECA85370B3217AEDAD15E5E353A72F9FD2F3
912CF45075DD6C8E3AF0E1C9F6D9945F6CE34E46AAD6DA5FEA0832E6B1C7AF0C3
4A7BE9EBC0C87457F14CBC8DF5F6BA9516075DFD23BB6E85569AA5C70126A2C07
60F8B934FE7CD9AFCB1CD641C60AB9888C2B0E10FB1363B9226718060E9376198
F04AB1910E4CE300C7858825680679E72E581B1BD8D2236A1CE0CCE259D1683FF
73232AD08D8C0163621206B91388EC667B7282C442B0A3985C446760D489D2C32
FE71C90EFB53D6818B6FBBF1466A0FC8DF3CD4A2353BEC4F5907C8A6E85157028
AC8B6B8A094A1AC0340EDC0764025EB97207C18C4010A18B603CAE9C1FB4D2B2E
C6200E5045B16D1CE0218F53CF22B34BD76AD940EDE70073988B4E1E89036C03D
B9187462DEDD2BB5416DBE400632A73D592E415100804848B2B9F9692C54FCFD9
24629F01993E33D74512847A0CB94CB8B8F36DD9242DE61F7BDCBD74A4FB8C31C
745E6186A22E226E3C38B7A47F6DD8E3DB7C6B52163CC07AD8C2611692AE61AE5
CB978535197DF86707E823F325938A119429468B9D0DF3DE69F47DE92946FC545
E8EA1D20B8952E9954CA9F452AA3011854AAEE58A2A123445AF6A800EBAAC51F8
C3442158885816F9EF9F660AC785335BC9C7699A7FF3792EF21B1F1CB3C87955C
3470000000049454E44AE42608200000400000005020000000604000000747970
65000203000000696D670006040000006461746100028E02000089504E470D0A1
A0A0000000D4948445200000020000000200806000000737A7AF4000000017352
474200AECE1CE90000000467414D410000B18F0BFC61050000000970485973000
00EC300000EC301C76FA86400000223494441545847ED972DAB024114860D824D
2C7693C560103409FA038C62B008828A3FC0EA57B268320882980D822206838A4
530F80BC42236ABC570EE3D7BE7EC9DFD9A9D5D96850BF78117768ECE99675777
56032049201080CD66C34662B2D92C9CCF673612232DF07ABD20994CB2D10FEFF
71B2E970B7C3E1F56F9A1DFEFB3237BA4059056AB05F3F91CDAED36643219E5AA
6082C120A4D369A8D7EB50AD56E1F97CB219F6480BDCEF77A8542AEAA25689442
2301C0ED92C7BA404F6FBBDE962A2148B45365B8CADC0E974825028A4344DA552
301E8F0D8BF1E16565246C054AA592DA1005ECAE06BE1E0E87D5F16432619DCC1
10ADC6E37F5ECDD06A5450805F01B6FD6D4691E8F07EB684428D068344C1B3A8D
6853D208D0AD869F2372381C6C733C1EA582E0FE81E1D108C46231D57A3A9D42A
7D3D19C89DBE009E11D41E372B9CC56E404F4DFEE5C2E07BD5E4F53731BB33B87
F04560B7DB196A84A5403E9FF74C60BBDD1A6A842F02EBF5DA50237C11582E978
61A2114E876BB9A9ADB2C160B438DF04560B55A196A842F02FADE184228E0E546
A4AF11BF47DFE0938BDE8093BC14A8D56AEA188F098DC0F57A85D168A44C4070D
FE61BB90DF6C3E7CC6C365382C78446408F9702560805F08A98357492783CCEBA
99231440D01E9F0B187D73AAEB5FA3DA6030605DACB115E0E117C11028C9D7717
159FE05FE960036365B04FF0BF202FADF7D221C09E0CE98482494E81769369B10
8D46A15028B08A0C005F1ECEF59244AA69250000000049454E44AE42608200 }
end
end
-1
View File
@@ -1 +0,0 @@
"%~dp0..\tsl.exe" "%~dp0tslediter.tsl" -libpath "%~dp0;"
-3
View File
@@ -1,3 +0,0 @@
//tsl代码编辑器-天软-ljj
//20201019
return GetTslEditerStart();
-31
View File
@@ -1,31 +0,0 @@
tsl语言本地编辑器
版本:1.0.0
日期:2022-07-19
使用前请阅读<TSL语言许可权利和限制>
许可权利和限制
深圳市天软科技开发有限公司(以下简称天软)授予您使用程序的非排他性、不可转让、有限的许可,但必须遵守本协议和计划文档中规定的限制,仅限于在如下用途使用:
(I) 个人自用
(II) 开发用途
(III) 天软许可的产品中使用
(IV) 获得天软的独立商用许可后在商业用途中使用
被允许或禁止的行为
您可以在合理必要的范围内复制程序,以行使本协议中授予的许可权。
您不得有如下行为:
(I) 删除或修改任何程序标记或包含有天软的专有权利的任何信息;
(II) 以任何方式将程序提供给任何第三方,除非该第三方是代表您行事的承包商;
(III) 转让本协议或将程序或其中的权益分发、赠送或转让给任何第三方,除非该第三方为代表您行事的承包商仅在为您开发的范畴内使用;
(IV) 对程序进行反向工程、反汇编或反编译,除非是法律明确许可的范围。
(V) 程序可能包含源代码,除非在本协议中明确许可用于其他目的(例如,在开放源码许可下许可),否则根据本协议的条款提供的源代码仅供参考,不得修改。
权利说明
(I) 天软保留本协议中未明确授予的所有权利。如果您要将程序用于本协议明确允许之外的任何目的,均必须从天软或天软的经销商处获得有效的程序许可证。
(II) 天软或其许可方保留程序的所有所有权和知识产权。
(III) 所使用到的第三方技术或程序可能具有独立的条款,您需要在使用第三方技术或程序时遵守第三方技术的单独条款,第三方技术的权利不受本协议的任何限制。
(IV) 随软件可能附带有一些源代码,您需要遵守本协议以及源代码的相关的权利约束,这些源代码如果是第三方的,您还需要遵守第三方的源代码权利许可约束。
信息收集
程序的安装或自动更新过程可能会向天软或其服务提供商传输有关这些过程的数据,以帮助天软了解和优化这些过程。天软不会将这些数据与个人身份信息相关联。
免责声明
这些程序按原样提供,不提供任何形式的担保,且天软拒绝所有明示和默示的保证,包括但不限于对适销性、特定用途的适用性或不侵权的任何默示担保。
在任何情况下,除非适用法律要求,否则天软不对您承担任何损害责任,包括因使用或无法使用程序而造成的任何一般、特殊、附带或后果性损害(包括但不限于数据丢失或数据变得不准确、您或第三方遭受的损失或程序无法与任何其他程序一起运行),即使该持有者或其他方已被告知此类损害的可能性。
出口管制
中国的出口法律法规和任何其他相关的当地出口法律法规适用于这些项目。您同意此类出口管制法律管辖您对本协议下提供的程序(包括技术数据)和任何可交付服务的使用,并且您同意遵守所有此类出口法律和法规(包括“视为出口”和“视为再出口”规定)。您同意,程序或服务(或其直接产品)产生的任何数据、信息、程序和/或材料将不会直接或间接地违反这些法律而出口,也不会被用于这些法律禁止的任何目的。
+4 -2
View File
@@ -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
+21 -1
View File
@@ -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();
-1
View File
@@ -1 +0,0 @@
"%~dp0..\tsl.exe" "%~dp0vcldesigner.tsl" -libpath "%~dp0;"
-4
View File
@@ -1,4 +0,0 @@
{
tsl界面设计器启动程序
}
GetTslVclDesignerStart();
-31
View File
@@ -1,31 +0,0 @@
tsl语言本界面开发工具
版本:1.0.0
日期:2023-01-19
使用前请阅读<TSL语言许可权利和限制>
许可权利和限制
深圳市天软科技开发有限公司(以下简称天软)授予您使用程序的非排他性、不可转让、有限的许可,但必须遵守本协议和计划文档中规定的限制,仅限于在如下用途使用:
(I) 个人自用
(II) 开发用途
(III) 天软许可的产品中使用
(IV) 获得天软的独立商用许可后在商业用途中使用
被允许或禁止的行为
您可以在合理必要的范围内复制程序,以行使本协议中授予的许可权。
您不得有如下行为:
(I) 删除或修改任何程序标记或包含有天软的专有权利的任何信息;
(II) 以任何方式将程序提供给任何第三方,除非该第三方是代表您行事的承包商;
(III) 转让本协议或将程序或其中的权益分发、赠送或转让给任何第三方,除非该第三方为代表您行事的承包商仅在为您开发的范畴内使用;
(IV) 对程序进行反向工程、反汇编或反编译,除非是法律明确许可的范围。
(V) 程序可能包含源代码,除非在本协议中明确许可用于其他目的(例如,在开放源码许可下许可),否则根据本协议的条款提供的源代码仅供参考,不得修改。
权利说明
(I) 天软保留本协议中未明确授予的所有权利。如果您要将程序用于本协议明确允许之外的任何目的,均必须从天软或天软的经销商处获得有效的程序许可证。
(II) 天软或其许可方保留程序的所有所有权和知识产权。
(III) 所使用到的第三方技术或程序可能具有独立的条款,您需要在使用第三方技术或程序时遵守第三方技术的单独条款,第三方技术的权利不受本协议的任何限制。
(IV) 随软件可能附带有一些源代码,您需要遵守本协议以及源代码的相关的权利约束,这些源代码如果是第三方的,您还需要遵守第三方的源代码权利许可约束。
信息收集
程序的安装或自动更新过程可能会向天软或其服务提供商传输有关这些过程的数据,以帮助天软了解和优化这些过程。天软不会将这些数据与个人身份信息相关联。
免责声明
这些程序按原样提供,不提供任何形式的担保,且天软拒绝所有明示和默示的保证,包括但不限于对适销性、特定用途的适用性或不侵权的任何默示担保。
在任何情况下,除非适用法律要求,否则天软不对您承担任何损害责任,包括因使用或无法使用程序而造成的任何一般、特殊、附带或后果性损害(包括但不限于数据丢失或数据变得不准确、您或第三方遭受的损失或程序无法与任何其他程序一起运行),即使该持有者或其他方已被告知此类损害的可能性。
出口管制
中国的出口法律法规和任何其他相关的当地出口法律法规适用于这些项目。您同意此类出口管制法律管辖您对本协议下提供的程序(包括技术数据)和任何可交付服务的使用,并且您同意遵守所有此类出口法律和法规(包括“视为出口”和“视为再出口”规定)。您同意,程序或服务(或其直接产品)产生的任何数据、信息、程序和/或材料将不会直接或间接地违反这些法律而出口,也不会被用于这些法律禁止的任何目的。