界面库

修改目录结构
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
@@ -0,0 +1,18 @@
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
@@ -0,0 +1,6 @@
//工程E_ListBox界面库主程序
uses tslvcl; //引入界面库
app := InitializeApplication(); //获得界面管理器
app.CreateForm(class(E_ListBoxmain),fm); //构造主窗口
fm.show(); //显示主窗口
app.run(); //开始消息循环
+94
View File
@@ -0,0 +1,94 @@
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
@@ -0,0 +1,53 @@
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