修改资源文件tfm位置

This commit is contained in:
2025-05-19 15:28:51 +08:00
parent 60749c0d93
commit e4d6b23680
52 changed files with 2169 additions and 1311 deletions
@@ -1,368 +0,0 @@
object ed_script:t_compile_config
caption="编译选项设置"
height=681
left=618
minmaxbox=false
onclose=compile_config_close
top=180
width=502
wssizebox=true
object bt_ok:tbtn
caption="确定"
height=31
left=405
onclick=bt_ok_clk
parentcolor=false
top=582
width=55
end
object gp_dir:tgroupbox
caption="输入目录"
height=87
left=24
parentcolor=true
top=181
width=442
object bt_f_dir:tbtn
caption=".."
height=23
left=408
onclick=bt_f_dir_clk
top=20
width=24
end
object bt_s_dir:tbtn
caption="..."
height=23
left=408
onclick=bt_s_dir_clk
top=51
width=24
end
object label1:tlabel
left=14
top=20
width=68
height=23
caption="函数目录"
end
object ed_f_dirs:tedit
caption="edit1"
height=22
left=87
top=21
width=312
end
object label2:tlabel
left=13
top=51
width=60
height=23
caption="资源目录"
end
object ed_s_dirs:tedit
caption="edit2"
height=23
left=87
top=51
width=311
end
end
object gp_filter:tgroupbox
caption="筛选"
height=164
left=27
parentcolor=true
top=269
width=437
object lb_s_type:tlabel
left=11
top=20
width=92
height=25
caption="资源文件后缀"
end
object ed_s_type:tedit
caption="edit2"
height=27
left=112
text="*.tfm,*.ini"
top=20
width=290
end
object bt_i_f:tbtn
caption="..."
height=22
left=408
onclick=bt_i_f_clk
top=83
width=21
end
object bt_d_f:tbtn
caption="..."
height=21
left=408
onclick=bt_d_f_clk
top=136
width=21
end
object bt_i_s:tbtn
caption="..."
height=22
left=408
onclick=bt_i_s_clk
top=54
width=21
end
object label3:tlabel
left=13
top=51
width=61
height=25
caption="指定资源"
end
object ed_include_s:tedit
caption="edit1"
height=25
left=84
top=52
width=317
end
object label4:tlabel
left=11
top=83
width=63
height=25
caption="指定函数"
end
object ed_include_f:tedit
caption=""
height=23
left=84
top=83
width=317
end
object label5:tlabel
left=12
top=133
width=61
height=25
caption="排除函数"
end
object ed_exclude_f:tedit
caption=""
height=22
left=84
top=136
width=317
end
object lb_tsg:tlabel
left=11
top=106
width=63
height=25
caption="tsg库"
end
object ed_tsg:tedit
caption="edit1"
height=22
left=84
top=111
width=318
end
object bt_tsgadd:tbtn
caption="..."
height=21
left=408
onclick=bt_tsgadd_clk
top=111
width=21
end
end
object gp_out:tgroupbox
caption="输出"
height=123
left=27
parentcolor=true
top=48
width=433
object lb_ype:tlabel
left=14
top=17
width=53
height=25
caption="类型"
end
object cb_type:tcombobox
caption="combobox1"
height=23
itemindex=0
items=["执行程序" "动态库" tsg ]
left=79
onselchanged=cb_type_sel
top=18
width=131
end
object lb_output:tlabel
left=13
top=45
width=46
height=25
caption="输出"
end
object ed_output:tedit
caption="edit1"
height=25
left=79
placeholder="输出文件"
top=48
width=320
end
object bt_output:tbtn
caption="..."
enabled=false
height=23
left=404
onclick=bt_output_clk
top=86
width=22
end
object bt_outputname:tbtn
caption="..."
height=25
left=404
onclick=bt_outputname_clk
top=48
width=22
end
object lb_output_f:tlabel
left=14
top=83
width=60
height=25
caption="输出函数"
end
object ed_out_f:tedit
caption="edit1"
height=25
left=79
top=86
width=320
end
end
object bt_cancel:tbtn
caption="取消"
height=31
left=332
onclick=bt_cancel_clk
top=582
width=55
end
object gp_other:tgroupbox
caption="其他"
height=129
left=27
parentcolor=true
top=440
width=437
object ck_gui:tcheckbtn
caption="gui"
height=25
left=17
top=25
width=75
end
object ck_strong:tcheckbtn
caption="强引用函数"
height=25
left=122
onclick=checkbtn2_clk
top=25
width=98
end
object ck_s_rp:tcheckbtn
caption="资源文件保留相对路径"
enabled=false
height=25
left=253
top=25
width=173
end
object lb_ico:tlabel
left=17
top=59
width=66
height=25
caption=" 图 标:"
end
object ed_ico:tedit
caption="edit3"
height=25
left=94
top=58
width=277
end
object bt_ico:tbtn
caption="..."
height=25
left=386
onclick=bt_ico_clk
top=58
width=22
end
object l_namespace:tlabel
left=17
top=93
width=75
height=25
caption="namespace:"
end
object e_namespace:tedit
caption="edit1"
height=25
left=94
top=93
width=278
end
end
object f_op:topenfileadlg
left=15
top=575
height=30
width=30
caption="openfileadlg1"
filter=<
"ico图标"="*.ico"
>
end
object lb_input:tlabel
left=32
top=16
width=63
height=25
caption="主程序"
end
object e_script:tedit
caption="edit1"
height=25
left=98
top=16
width=331
end
object bt_script:tbtn
caption="..."
height=25
left=437
onclick=bt_script_clk
top=16
width=22
end
object bt_cmd:tbtn
caption="命令行"
height=31
left=208
onclick=bt_cmd_clk
top=582
width=92
end
end
@@ -1,23 +1,23 @@
object bconfig_cmd_shower:t_bconfig_cmd_shower
caption="ÃüÁîÐÐ"
height=250
height=263
left=610
minmaxbox=false
onclose=bconfig_cmd_shower_close
top=406
width=508
width=546
object panel1:tpanel
align=albottom
caption="panel1"
height=45
left=0
parentcolor=true
top=166
width=492
top=179
width=530
wsdlgmodalframe=false
object bt_ok:tbtn
caption="Íê³É"
height=26
height=33
left=406
onclick=btn1_clk
top=8
@@ -25,8 +25,8 @@ object bconfig_cmd_shower:t_bconfig_cmd_shower
end
object bt_copy:tbtn
caption="¸´ÖÆ"
height=26
left=291
height=33
left=253
onclick=bt_copy_clk
top=8
width=94
@@ -36,11 +36,11 @@ object bconfig_cmd_shower:t_bconfig_cmd_shower
align=alclient
autogutterwidth=true
caption="memo1"
height=211
height=179
left=0
readonly=true
top=0
width=492
width=530
end
object cpbord:tclipboard
left=211
+122
View File
@@ -0,0 +1,122 @@
object codeformateditor:t_code_format_mgr
autosize=true
caption="tsl代码格式化参数"
childsizing=<
layout=1
controlsperline=2
horizontalspacing=10
verticalspacing=10
leftrightspacing=20
topbottomspacing=10
>
font=<
height=19
width=9
escapement=0
orientation=0
weight=400
italic=0
underline=0
strikeout=0
charset=134
outprecision=3
clipprecision=2
quality=1
pitchandfamily=49
facename="新宋体"
color=0
>
height=90
left=547
minmaxbox=false
onclose=tformatinfownd1_close
parentfont=false
top=277
width=449
wssizebox=false
object label1:tlabel
left=20
top=10
width=128
height=22
autosize=true
caption="多行注释对齐"
end
object faligncmt:tcheckbtn
autosize=false
caption=""
height=22
left=158
parentcolor=true
top=10
width=110
end
object label3:tlabel
left=20
top=42
width=128
height=22
autosize=true
caption="array格式化"
end
object farraytype:tcombobox
autosize=true
height=22
itemindex=1
items=["默认" "普通" "宽松" ]
left=158
top=42
width=110
end
object label4:tlabel
left=20
top=74
width=128
height=22
autosize=true
caption="语法检查"
end
object fsyncheck:tcheckbtn
caption=""
checked=true
height=22
left=158
parentcolor=true
top=74
width=110
end
object label5:tlabel
left=20
top=106
width=128
height=22
autosize=true
caption="格式化选择区域"
end
object fselectcheck:tcheckbtn
caption=""
height=22
left=158
parentcolor=true
top=106
width=110
end
object label2:tlabel
left=20
top=138
width=128
height=22
caption=""
end
object btn1:tbtn
autosize=true
caption="确定"
height=22
left=158
onclick=dookclick
top=138
width=110
end
end
+62
View File
@@ -0,0 +1,62 @@
type t_code_format_mgr=class(tdcreateform)
uses tslvcl;
label1:tlabel;
label2:tlabel;
label3:tlabel;
label4:tlabel;
label5:tlabel;
faligncmt:tcombobox;
fcharct:tcombobox;
farraytype:tcombobox;
fsyncheck:tcheckbtn;
fselectcheck:tcheckbtn;
btn1:tbtn;
function Create(AOwner);override;//构造
begin
inherited;
end
function DoOKClick(o;e);virtual;
begin
calldatafunction(FOnOkClick,self,e);
end
function tformatinfownd1_close(o;e);virtual;
begin
e.skip := true;
o.Visible := false;
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 GetData();
begin
r := array();
r["cmt"]:= faligncmt.Checked;
r["arraytype"]:= array("普通":1,"默认":0,"宽松":3)[farraytype.getCurrentItemText()];
r["syn"]:= fsyncheck.checked;
r["sel"]:= fselectcheck.checked;
return r;
end
function SetData(d);
begin
//"50" "80" "100" "130"
// "50" "100" "130" "150" "200" "250" "300"
//"默认" "普通" "宽松"
if ifarray(d) then
begin
faligncmt.Checked := (d["cmt"]=1);
farraytype.ItemIndex := (array(0:0,1:1,3:2))[d["arraytype"]];
fsyncheck.Checked := d["syn"];
fselectcheck.Checked := d["sel"];
end
end
property OnOkClicked read FOnOkClick write FOnOkClick;
private
[weakref] FOnOkClick;
end
+556
View File
@@ -0,0 +1,556 @@
object ed_script:t_compile_config
autosize=true
caption="编译选项设置"
childsizing=<
layout=2
controlsperline=10
horizontalspacing=10
verticalspacing=10
leftrightspacing=10
topbottomspacing=10
>
height=560
left=638
minmaxbox=false
onclose=compile_config_close
top=208
width=484
wssizebox=true
object panel1:tpanel
autosize=true
caption="panel1"
childsizing=<
layout=1
controlsperline=3
horizontalspacing=2
verticalspacing=2
leftrightspacing=2
topbottomspacing=2
>
height=25
left=10
top=10
width=448
wsdlgmodalframe=false
object lb_input:tlabel
left=2
top=2
width=44
height=21
autosize=true
caption="主程序"
end
object e_script:tedit
autosize=true
caption="edit1"
height=21
left=48
top=2
width=331
end
object bt_script:tbtn
autosize=true
caption=".."
height=21
left=381
onclick=bt_script_clk
top=2
width=28
end
end
object gp_out:tgroupbox
autosize=true
caption="输出"
childsizing=<
layout=1
controlsperline=3
horizontalspacing=2
verticalspacing=10
leftrightspacing=2
topbottomspacing=2
>
height=94
left=10
parentcolor=true
top=45
width=448
object lb_ype:tlabel
left=6
top=21
width=58
height=21
autosize=true
caption="类型"
textalign=al9_centerright
end
object cb_type:tcombobox
autosize=true
caption="combobox1"
height=21
itemindex=0
items=["执行程序" "动态库" tsg ]
left=74
onselchanged=cb_type_sel
top=21
width=324
end
object label6:tlabel
left=408
top=21
width=28
height=21
autosize=true
caption=""
end
object lb_output:tlabel
left=6
top=44
width=58
height=21
autosize=true
caption="输出"
textalign=al9_centerright
end
object ed_output:tedit
autosize=true
caption="edit1"
height=21
left=74
placeholder="输出文件"
top=44
width=324
end
object bt_output:tbtn
autosize=true
caption=".."
enabled=false
height=21
left=408
onclick=bt_output_clk
top=44
width=28
end
object lb_output_f:tlabel
left=6
top=67
width=58
height=21
autosize=true
caption="输出函数"
textalign=al9_centerright
end
object ed_out_f:tedit
autosize=true
caption="edit1"
height=21
left=74
top=67
width=324
end
object bt_outputname:tbtn
autosize=true
caption=".."
height=21
left=408
onclick=bt_outputname_clk
top=67
width=28
end
end
object gp_dir:tgroupbox
autosize=true
caption="输入目录"
childsizing=<
layout=1
controlsperline=3
horizontalspacing=2
verticalspacing=2
leftrightspacing=2
topbottomspacing=2
>
height=71
left=10
parentcolor=true
top=149
width=448
object label1:tlabel
left=6
top=21
width=58
height=21
autosize=true
caption="函数目录"
end
object ed_f_dirs:tedit
autosize=true
caption="edit1"
height=21
left=66
top=21
width=312
end
object bt_f_dir:tbtn
autosize=true
caption=".."
height=21
left=380
onclick=bt_f_dir_clk
top=21
width=28
end
object label2:tlabel
left=6
top=44
width=58
height=21
autosize=true
caption="资源目录"
end
object ed_s_dirs:tedit
autosize=true
caption="edit2"
height=21
left=66
top=44
width=312
end
object bt_s_dir:tbtn
autosize=true
caption=".."
height=21
left=380
onclick=bt_s_dir_clk
top=44
width=28
end
end
object gp_filter:tgroupbox
autosize=true
caption="筛选"
childsizing=<
layout=1
controlsperline=3
horizontalspacing=2
verticalspacing=2
leftrightspacing=2
topbottomspacing=2
>
height=139
left=10
parentcolor=true
top=230
width=448
object lb_s_type:tlabel
left=6
top=21
width=86
height=20
autosize=true
caption="资源文件后缀"
end
object ed_s_type:tedit
autosize=true
caption="edit2"
height=20
left=94
text="*.tfm,*.ini"
top=21
width=318
end
object label7:tlabel
left=414
top=21
width=28
height=20
autosize=true
caption=""
end
object label3:tlabel
left=6
top=43
width=86
height=21
autosize=true
caption="指定资源"
textalign=al9_centerright
end
object ed_include_s:tedit
autosize=true
caption="edit1"
height=21
left=94
top=43
width=318
end
object bt_i_s:tbtn
autosize=true
caption=".."
height=21
left=414
onclick=bt_i_s_clk
top=43
width=28
end
object label4:tlabel
left=6
top=66
width=86
height=21
autosize=true
caption="指定函数"
textalign=al9_centerright
end
object ed_include_f:tedit
autosize=true
caption=""
height=21
left=94
top=66
width=318
end
object bt_i_f:tbtn
autosize=true
caption=".."
height=21
left=414
onclick=bt_i_f_clk
top=66
width=28
end
object lb_tsg:tlabel
left=6
top=89
width=86
height=21
autosize=true
caption="tsg库"
textalign=al9_centerright
end
object ed_tsg:tedit
autosize=true
caption="edit1"
height=21
left=94
top=89
width=318
end
object bt_tsgadd:tbtn
autosize=true
caption=".."
height=21
left=414
onclick=bt_tsgadd_clk
top=89
width=28
end
object label5:tlabel
left=6
top=112
width=86
height=21
autosize=true
caption="排除函数"
textalign=al9_centerright
end
object ed_exclude_f:tedit
autosize=true
caption=""
height=21
left=94
top=112
width=318
end
object bt_d_f:tbtn
autosize=true
caption=".."
height=21
left=414
onclick=bt_d_f_clk
top=112
width=28
end
end
object gp_other:tgroupbox
autosize=true
caption="其他"
childsizing=<
layout=1
controlsperline=3
horizontalspacing=2
verticalspacing=2
leftrightspacing=2
topbottomspacing=2
>
height=97
left=10
parentcolor=true
top=379
width=448
object label9:tlabel
left=6
top=21
width=65
height=25
autosize=true
caption=""
end
object panel3:tpanel
autosize=true
caption="panel3"
childsizing=<
layout=1
controlsperline=3
horizontalspacing=2
verticalspacing=2
leftrightspacing=2
topbottomspacing=2
>
height=25
left=73
top=21
width=316
wsdlgmodalframe=false
object ck_gui:tcheckbtn
autosize=true
caption="gui"
height=21
left=2
top=2
width=56
end
object ck_strong:tcheckbtn
autosize=true
caption="强引用函数"
height=21
left=60
onclick=checkbtn2_clk
top=2
width=105
end
object ck_s_rp:tcheckbtn
autosize=true
caption="资源保留相对路径"
enabled=false
height=21
left=167
top=2
visible=false
width=147
end
end
object label10:tlabel
left=391
top=21
width=28
height=25
autosize=true
caption=""
end
object lb_ico:tlabel
left=6
top=48
width=65
height=21
autosize=true
caption="图标"
textalign=al9_centerright
end
object ed_ico:tedit
autosize=true
caption="edit3"
height=21
left=73
top=48
width=316
end
object bt_ico:tbtn
autosize=true
caption=".."
height=21
left=391
onclick=bt_ico_clk
top=48
width=28
end
object l_namespace:tlabel
left=6
top=71
width=65
height=20
autosize=true
caption="namespace"
end
object e_namespace:tedit
autosize=true
caption="edit1"
height=20
left=73
top=71
width=316
end
object label8:tlabel
left=391
top=71
width=28
height=20
autosize=true
caption=""
end
end
object f_op:topenfileadlg
left=473
top=14
height=30
width=30
caption="openfileadlg1"
filter=<
"ico图标"="*.ico"
>
end
object panel2:tpanel
autosize=true
caption="panel2"
childsizing=<
layout=1
controlsperline=3
horizontalspacing=2
verticalspacing=50
leftrightspacing=50
topbottomspacing=2
>
height=25
left=10
top=486
width=448
wsdlgmodalframe=false
object bt_cmd:tbtn
autosize=true
caption="命令行"
height=21
left=50
onclick=bt_cmd_clk
top=2
width=56
end
object bt_cancel:tbtn
autosize=true
caption="取消"
height=21
left=156
onclick=bt_cancel_clk
top=2
width=42
end
object bt_ok:tbtn
autosize=true
caption="确定"
height=21
left=248
onclick=bt_ok_clk
parentcolor=false
top=2
width=42
end
end
end
+26 -9
View File
@@ -1,6 +1,6 @@
type t_compile_config=class(tdcreateform)
uses tslvcl;
bt_ok:tbtn;
gp_dir:tgroupbox;
bt_f_dir:tbtn;
bt_s_dir:tbtn;
@@ -14,20 +14,20 @@ type t_compile_config=class(tdcreateform)
cb_type:tcombobox;
lb_output:tlabel;
ed_output:tedit;
bt_cancel:tbtn;
gp_other:tgroupbox;
ck_gui:tcheckbtn;
ck_strong:tcheckbtn;
ck_s_rp:tcheckbtn;
bt_i_s:tbtn;
lb_ico:tlabel;
ed_ico:tedit;
bt_ico:tbtn;
bt_output:tbtn;
f_op:topenfileadlg;
lb_input:tlabel;
e_script:tedit;
bt_script:tbtn;
bt_outputname:tbtn;
lb_output_f:tlabel;
ed_out_f:tedit;
@@ -44,9 +44,26 @@ type t_compile_config=class(tdcreateform)
lb_tsg:tlabel;
ed_tsg:tedit;
bt_tsgadd:tbtn;
bt_cmd:tbtn;
l_namespace:tlabel;
e_namespace:tedit;
panel1:tpanel;
lb_input:tlabel;
e_script:tedit;
bt_script:tbtn;
panel2:tpanel;
bt_cmd:tbtn;
bt_cancel:tbtn;
bt_ok:tbtn;
label6:tlabel;
label7:tlabel;
panel3:tpanel;
ck_gui:tcheckbtn;
ck_strong:tcheckbtn;
ck_s_rp:tcheckbtn;
label8:tlabel;
label9:tlabel;
label10:tlabel;
function Create(AOwner);override; //构造
begin
f_sep := iofileseparator();
@@ -1,12 +1,12 @@
object dir_list:t_dir_list
caption="Ŀ¼¹ÜÀí"
height=228
height=239
left=513
minmaxbox=false
onclose=dir_list_close
top=475
visible=false
width=615
width=643
object lst_dir:tlistbox
caption="listbox1"
height=176
@@ -16,7 +16,7 @@ object dir_list:t_dir_list
end
object btn_add:tbtn
caption="Ìí¼Ó"
height=31
height=36
left=496
onclick=btn_add_clk
top=5
@@ -24,7 +24,7 @@ object dir_list:t_dir_list
end
object btn_del:tbtn
caption="ɾ³ý"
height=31
height=35
left=496
onclick=btn_del_clk
top=50
@@ -32,10 +32,10 @@ object dir_list:t_dir_list
end
object btn_ok:tbtn
caption="Íê³É"
height=31
height=40
left=496
onclick=btn_ok_clk
top=146
top=137
width=86
end
object f_d:tfolderchooseadlg
@@ -19,7 +19,7 @@ object ditor_color_mgr:t_editor_color_mgr
color=0
>
height=382
height=385
left=645
minmaxbox=false
onclose=edtcolormain1_close
@@ -78,7 +78,7 @@ object ditor_color_mgr:t_editor_color_mgr
leftrightspacing=20
topbottomspacing=10
>
height=39
height=42
left=5
top=304
width=352
@@ -86,7 +86,7 @@ object ditor_color_mgr:t_editor_color_mgr
object btn4:tbtn
autosize=true
caption="导入"
height=19
height=22
left=20
onclick=import_clk
top=10
@@ -95,7 +95,7 @@ object ditor_color_mgr:t_editor_color_mgr
object btn5:tbtn
autosize=true
caption="导出"
height=19
height=22
left=78
onclick=export_clk
top=10
@@ -104,7 +104,7 @@ object ditor_color_mgr:t_editor_color_mgr
object btn3:tbtn
autosize=true
caption="还原默认"
height=19
height=22
left=136
onclick=btn3_clk
top=10
@@ -113,7 +113,7 @@ object ditor_color_mgr:t_editor_color_mgr
object btn1:tbtn
autosize=true
caption="取消"
height=19
height=22
left=226
onclick=btn1_clk
top=10
@@ -122,7 +122,7 @@ object ditor_color_mgr:t_editor_color_mgr
object btn2:tbtn
autosize=true
caption="确定"
height=19
height=22
left=284
onclick=btn2_clk
top=10
+5 -1
View File
@@ -21,6 +21,7 @@ type t_editor_color_mgr=class(tdcreateform)
listbox1.Items := fcolorindexname;
listbox1.ItemIndex := 1;
listbox1.SelBkColor := listbox1.Color;
listbox1.onfontchanged := thisfunction(lfchanged);
end
function edtcolormain1_close(o;e);virtual;
begin
@@ -64,7 +65,10 @@ type t_editor_color_mgr=class(tdcreateform)
listbox1.InvalidateRect(nil,false);
end
end
function lfchanged();
begin
listbox1.ItemHeight := font.Height+5;
end
function btn1_clk(o;e);virtual;
begin
EndModal(0);
@@ -114,7 +114,7 @@ object editor_config:t_editor_config
leftrightspacing=10
topbottomspacing=10
>
height=126
height=124
left=10
parentcolor=true
top=177
@@ -176,7 +176,7 @@ object editor_config:t_editor_config
left=14
top=89
width=30
height=23
height=21
autosize=true
caption=""
end
@@ -184,7 +184,7 @@ object editor_config:t_editor_config
left=54
top=89
width=41
height=23
height=21
autosize=true
caption=""
end
@@ -192,7 +192,7 @@ object editor_config:t_editor_config
autosize=true
caption="´ÓÍ·Æ¥Åä"
checked=true
height=23
height=21
left=105
top=89
width=105
@@ -202,7 +202,7 @@ object editor_config:t_editor_config
caption="panel1"
height=39
left=10
top=313
top=311
width=285
wsdlgmodalframe=false
object bt_ok:tbtn
@@ -29,7 +29,7 @@ object functionfinder:t_function_finder
align=altop
autosize=true
caption="panel1"
height=35
height=41
left=0
top=0
width=804
@@ -46,18 +46,18 @@ object functionfinder:t_function_finder
object btfind:tbtn
autosize=true
caption="ɸѡ"
height=22
left=281
height=25
left=284
onclick=btfind_clk
top=7
top=6
width=54
end
object ck_prev:tcheckbtn
autosize=true
caption="´ÓÍ·Æ¥Åä"
height=22
left=370
top=7
height=27
left=371
top=8
visible=true
width=111
end
@@ -82,11 +82,11 @@ object functionfinder:t_function_finder
text="º¯Êý"
>
]
height=572
height=566
left=0
ondblclick=listfunc_ondblclick
popupmenu=popupmenu1
top=35
top=41
width=804
end
object popupmenu1:tpopupmenu
@@ -11,14 +11,14 @@ object m_list_editor:t_m_list_editor
left=7
top=2
width=325
height=25
height=31
caption="采用换行分割"
end
object m_list:tmemo
caption="memo1"
height=378
height=371
left=9
top=31
top=38
width=328
end
object bt_cancel:tbtn
@@ -19,11 +19,11 @@ object shortcut_keys_view:t_shortcut_keys_view
>
height=684
left=711
left=420
minmaxbox=false
onclose=shortcut_keys_view_close
parentfont=false
top=459
top=217
visible=false
width=590
object panel1:tpanel
@@ -10,16 +10,16 @@ object extcompclassadder:textcompclassadder
object e_classname:tedit
caption="edit1"
height=25
left=91
left=99
readonly=true
top=28
width=255
width=247
end
object label1:tlabel
left=20
top=28
width=50
height=25
top=21
width=72
height=32
caption="控件类"
end
object b_classfile:tbtn
@@ -33,41 +33,41 @@ object extcompclassadder:textcompclassadder
object label2:tlabel
left=20
top=72
width=64
height=25
width=65
height=33
caption="图标"
end
object p_imgshow:tpanel
caption="img"
height=187
height=195
left=91
top=120
top=107
width=245
wsdlgmodalframe=false
end
object b_img:tbtn
caption="添加图标"
height=25
left=91
left=100
onclick=b_img_clk
top=73
width=94
top=72
width=176
end
object b_ok:tbtn
caption="确定"
enabled=true
height=31
left=133
left=134
onclick=b_ok_clk
top=317
top=306
width=72
end
object b_cancel:tbtn
caption="取消"
height=31
left=283
left=271
onclick=b_cancel_clk
top=317
top=306
width=73
end
object f_open:topenfileadlg
@@ -5,14 +5,14 @@ object extcompclassmgr:textcompclassmgr
minmaxbox=false
onclose=extcompclassmgr_close
top=272
width=477
width=484
wssizebox=true
object listbox1:tlistbox
caption="listbox1"
height=345
height=339
left=4
onselchanged=listbox1_sel
top=38
top=44
width=344
end
object b_del:tbtn
@@ -21,7 +21,7 @@ object extcompclassmgr:textcompclassmgr
height=31
left=364
onclick=b_del_clk
top=248
top=224
width=88
end
object b_add:tbtn
@@ -29,7 +29,7 @@ object extcompclassmgr:textcompclassmgr
height=31
left=364
onclick=b_add_clk
top=299
top=279
width=88
end
object b_ok:tbtn
@@ -52,13 +52,13 @@ object extcompclassmgr:textcompclassmgr
]
left=0
top=403
width=461
width=468
end
object label1:tlabel
left=8
top=10
width=80
height=25
top=5
width=176
height=36
caption="¿Ø¼þÁбí"
end
end
@@ -1,6 +1,6 @@
object fm_inheritedwnd:tfm_inheritedwnd
caption="通过继承构造窗口"
height=543
height=550
left=526
minmaxbox=false
onclose=fm_inheritedwnd_close
@@ -11,7 +11,7 @@ object fm_inheritedwnd:tfm_inheritedwnd
caption="statusbar1"
height=25
left=0
top=479
top=486
width=417
end
object panel2:tpanel
@@ -19,7 +19,7 @@ object fm_inheritedwnd:tfm_inheritedwnd
caption="panel2"
height=31
left=0
top=448
top=455
width=417
wsdlgmodalframe=false
object label1:tlabel
@@ -27,8 +27,8 @@ object fm_inheritedwnd:tfm_inheritedwnd
top=0
width=18
height=31
caption=""
align=alright
caption=""
end
object ed_ok:tbtn
align=alright
@@ -45,8 +45,8 @@ object fm_inheritedwnd:tfm_inheritedwnd
top=0
width=25
height=31
caption=" "
align=alright
caption=" "
end
object bt_cancel:tbtn
align=alright
@@ -69,21 +69,21 @@ object fm_inheritedwnd:tfm_inheritedwnd
object label3:tlabel
left=0
top=0
width=85
width=149
height=27
caption="可以继承:"
align=alleft
caption="可以继承:"
end
object ed_search:tedit
align=alclient
caption="edit1"
height=27
left=85
left=149
onchanged=ed_search_onchanged
onkeyup=ed_search_keyup
placeholder="搜索"
top=0
width=332
width=268
end
end
object panel3:tpanel
@@ -91,31 +91,31 @@ object fm_inheritedwnd:tfm_inheritedwnd
caption="panel1"
height=35
left=0
top=413
top=420
width=417
wsdlgmodalframe=false
object label4:tlabel
left=0
top=0
width=85
width=104
height=35
caption=" 名称:"
align=alleft
caption="名称:"
end
object ed_name:tedit
align=alclient
caption="edit1"
height=35
left=85
left=104
placeholder="名称"
top=0
width=332
width=313
end
end
object lbx_pal:tlistbox
align=alclient
caption="listbox1"
height=386
height=393
left=0
onselchanged=lbx_pal_sel
top=27
+1 -1
View File
@@ -1,7 +1,6 @@
//启动tsl编辑器
//20230421 整理代码
uses tslvcl;
setprocessdpiawareness(2);
deletefuncacheini(); //清空缓存
ops := ""; //待打开文件
GLobal G_OpenHostory;
@@ -92,6 +91,7 @@ begin
global g_dotsavehistory; //是否保存打开的历史记录
g_dotsavehistory := true;
end
setprocessdpiawareness(2);
app := initializeapplication();
app.createform(class(TRunEditorForm),fm);
fm.OpenAndGotoFileByName(ops);
+26 -12
View File
@@ -2,32 +2,46 @@
tsl界面设计器启动程序
}
uses tslvcl,utslvclDesigner;
setprocessdpiawareness(2);
deletefuncacheini();
oldlib := sysgettsllibpath();
isdebug := false;
willopen := "";
for i:= 0 to sysparamcount() do
i := 0;
ct := sysparamcount();
while i<=ct do
begin
if wait_filename then
begin
willopen := sysparamstr(i);
wait_filename := 0;
end else
if ("-tpj"=sysparamstr(i)) then
if ("-tpj"=sysparamstr(i)) then //打开工程
begin
wait_filename := true;
i++;
if i<=ct then willopen := sysparamstr(i);
end else
if ("-DEBUGSERVER" = sysparamstr(i)) then
begin
isdebug := true;
break;
end
end else
if ("-libpath" = sysparamstr(i)) then //设置libpahth
begin
i++;
if i<=ct then
begin
ph := sysparamstr(i);
if oldlib<>ph then
begin
try
syssettsllibpath(ph);
except
end;
end
end
end
i++;
end
deletefuncacheini();
h := FindWindowA("tsluidesigner_a_a_1",nil); //查找唯一窗口
if not(isdebug) and h then
begin
return PostMessageA(h,0x400,303,10);
end
setprocessdpiawareness(2);
app := InitializeApplication();
app.createform(class(TVclDesignerStart),Desginer);
Desginer.Show();
+85 -182
View File
@@ -46,7 +46,8 @@ type teditorform = class(TVCform) //
const c_m_help = "帮助";
const c_m_manu = "使用手册";
const c_m_tsl_help = "tsl语言帮助";
const c_m_about = "关于";
const c_m_about = "关于";
const c_m_font = "字体图标大小";
function WMACTIVATE(o,e):WM_ACTIVATE;override; //激活
begin
inherited;
@@ -97,6 +98,7 @@ type teditorform = class(TVCform) //
Fexefilepath := basepath+"editer"+sp+"tslfile.tsm";
FOpendpaths := basepath+"editer"+sp+"openedpaths.tsm";
FTabWidthpath := basepath+"editer"+sp+"tabwidpath.tsm";
Fsysfontpath := basepath+"editer"+sp+"sysfont.tsm";
FexefileCmds := basepath+"editer"+sp+"cmds.tsm";
FHistoryPath := basepath+"editer"+sp+"HistoryPath.tsm";
FCodeblockPath := basepath+"editer"+sp+"BlockManager.tsm";
@@ -267,13 +269,16 @@ type teditorform = class(TVCform) //
FCodeBlockMenu.Parent := FTslLangMenu;
FTslFormatMenu.Parent := FTslLangMenu;
tbwidth := 4;
if importfile(ftstream(),"",FTabWidthpath,d)=1 and ( d>0 ) then
if importfile(ftstream(),"",FTabWidthpath,d)=1 and ( d>0 ) then //tab宽度
begin
tbwidth := d;
end
FMTabContain :=new TMenu(self);
fmshowhltediter :=new TMenu(self);
fmshowhltediter.caption := c_m_edit_color;
fmsysfont :=new TMenu(self);
fmsysfont.caption := c_m_font;
FMTabs := array();
FMTabContain.Caption := c_m_tab_config;
for i:= 0 to 6 do
@@ -289,9 +294,13 @@ type teditorform = class(TVCform) //
end
FMTabContain.parent := FMenuSet;
fmshowhltediter.Parent := FMenuSet;
fmsysfont.Parent := FMenuSet;
fmshowhltediter.OnClick := function(o,e)begin
FEdter.showhltcolor();
end
fmsysfont.OnClick := function(o,e)begin
FEdter.modifysyssize();
end
mainmenu := m;
FmTool.parent := m;
FEnCodeMenu.parent := m;
@@ -311,8 +320,7 @@ type teditorform = class(TVCform) //
FCloseMenu := new tmenu(self);
FCloseMenu.Caption:=c_m_close_min;
//FCloseMenu.Checked := true;
FCloseMenu.parent := FMenuSet;
//FCloseMenu.parent := FMenuSet;
FCloseMenu.OnClick := function(o,e)
begin
FCloseMenu.Checked := not(FCloseMenu.Checked);
@@ -415,15 +423,18 @@ type teditorform = class(TVCform) //
FEdter.OnPageItemSelChanged := thisfunction(PageItemSelChanged);
FEdter.OnPageEditerChanged := thisfunction(PageEditerChanged);
FEdter.TslExe := tslexefile;
FEdter.align := alClient;
FEdter.align := alClient;
if (importfile(ftstream(),"",feditorglobalpath,ginfo)=1) and ifarray(ginfo) then
begin
global g_editer_font_size := ginfo["font"];
//FEdter.getpage().font := ginfo["font"];
//FEdter.getcodemap().font := ginfo["font"];
global editorglobalinfo ;
editorglobalinfo := ginfo;
if ifarray(ginfo) then
begin
app := initializeapplication();
app.font := array("width":ginfo["fontsize"],"height" :ginfo["fontsize"]*2);
NotifyComponent(self,ginfo);
end
//Fdirview.addrootdirs(dirs);
end
if importfile(ftstream(),"",fdirspath,dirs)=1 then
begin
@@ -708,11 +719,11 @@ type teditorform = class(TVCform) //
if ifarray(d) and d then
begin
Exportfile(ftstream(),"",Fhighlightpath,d);
end
global g_editer_font_size;
if ifarray(g_editer_font_size) and g_editer_font_size then
end
global editorglobalinfo ;
if ifarray(editorglobalinfo) and editorglobalinfo then
begin
Exportfile(ftstream(),"",feditorglobalpath,array("font":g_editer_font_size));
Exportfile(ftstream(),"",feditorglobalpath,editorglobalinfo);
end
save_opend_file_name();
FEdter.CloseAllPageItems();
@@ -848,156 +859,7 @@ type teditorform = class(TVCform) //
return array();
end
protected
type TSerlogerSimpleWnd=class(tdcreateform)
uses tslvcl;
label1:tlabel;
furl:tedit;
label2:tlabel;
fport:tedit;
label3:tlabel;
fusr:tedit;
label4:tlabel;
fpwd:tpassword;
flogout:tbtn;
flogin:tbtn;
[weakref]cancel_clk;
[weakref]save_clk;
function Create(AOwner);override; //构造
begin
inherited;
Loader.LoadFromTfmScript(self,getinfo());
flogout.OnClick := function(o,e)begin
calldatafunction(cancel_clk,self,e);
end
flogin.OnClick := function(o,e)begin
calldatafunction(save_clk,self,e);
end
end
function setdata(d);
begin
if not ifarray(d) then return ;
furl.text := d["addr"];
fport.text := d["port"];
fusr.text := d["usr"];
fpwd.text := d["pwd"];
end
function getdata();
begin
r := array();
r["addr"] := furl.text;
r["port"] := fport.text;
r["usr"] := fusr.text;
r["pwd"] := fpwd.text;
return r;
end
function tserlogersimplewnd1_close(o;e);virtual;
begin
Visible := false;
e.skip := true;
end
function Recycling();override; //回收变量
begin
inherited;
ci := self.classinfo(); //将成员变量赋值为nil避免循环引用
for i,v in ci["members"] do
begin
if v["static"]then continue;
invoke(self,v["name"],nil);
end
end
private
function getinfo();
begin
return %%
object tserlogersimplewnd1:tserlogersimplewnd
caption="远程连接信息"
color=0xFFFFFF
height=211
minmaxbox=false
onclose=tserlogersimplewnd1_close
width=422
wsdlgmodalframe=true
wssizebox=true
object label1:tlabel
left=4
top=3
width=80
height=25
caption="服务器地址"
end
object furl:tedit
height=25
left=88
tabstop=true
top=3
width=204
end
object label2:tlabel
left=296
top=3
width=34
height=25
caption="端口"
end
object fport:tedit
height=25
left=333
tabstop=true
top=3
width=62
end
object label3:tlabel
left=2
top=38
width=80
height=25
caption=" 用户名"
end
object fusr:tedit
height=25
left=88
tabstop=true
top=38
width=244
end
object label4:tlabel
left=2
top=72
width=80
height=25
caption=" 密 码"
end
object fpwd:tpassword
height=25
left=88
tabstop=true
top=72
width=245
end
object flogout:tbtn
anchors=[akright akbottom]
caption="取消"
height=23
left=149
tabstop=true
top=130
width=74
end
object flogin:tbtn
anchors=[akright akbottom]
caption="保存"
height=23
left=259
tabstop=true
top=130
width=74
end
end
%%;
end
end
type TBlockEditer = class(TPanel)
uses TSLVCL,UtslCodeEditor;
function Create(AOwner);override;
@@ -1010,6 +872,7 @@ end
li := new TLabel(self);
li.caption := v;
FLabels[i] := li;
li.TextAlign := AL9_CENTERRIGHT;
li.parent := self;
end
FEditers := array();
@@ -1046,27 +909,31 @@ end
begin
if FLabels and FEditers and FBtn and FCoder and FChecked then
begin
ft := font;
fh := ft.height+5;
fw := ft.width;
r := ClientRect;
lr := array(5,10,45,35);
FChecked.SetBoundsRect(array(52,10,72,30));
nx := 5+5+fw*7; //标签截止位置
lr := array(5,10,nx,10+fh);
FChecked.SetBoundsRect(array(nx+5,10,nx+25,30));
for i,v in FLabels do
begin
v.SetBoundsRect(lr);
lr[1]+=25;
lr[3]+=25;
lr[1]+=fh;
lr[3]+=fh;
end
w := r[2]-r[0];
lr := array(52,10+25,w-48,35+25);
lr := array(nx+5,10+fh+1,w-5,10+fh+fh-1);
for i,v in FEditers do
begin
v.SetBoundsRect(lr);
lr[1]+=25;
lr[3]+=25;
lr[1]+=fh+1;
lr[3]+=fh-1;
end
lr[3] := r[3]-35;
lr[3] := r[3]-fh-10;
FCoder.SetBoundsRect(lr);
lr := array(lr[2]-100,lr[3]+5,lr[2],r[3]-5);
lr := array(lr[2]-fw*6,lr[3]+5,lr[2],r[3]-5);
FBtn.SetBoundsRect(lr);
end
end
@@ -1099,6 +966,18 @@ end
end
type TBlockManager=class(TVCForm)
uses TSLVCL;
function ftchanged(o,e);
begin
if not flist then return ;
ft := font;
if not ft then return ;
fh := ft.height;
fw := ft.width;
FList.ItemHeight := fh+5;
flist.ColumnWidth(0) := fw*6;
flist.ColumnWidth(1) := fw*6;
flist.ColumnWidth(2) := fw*11;
end
function Create(AOwner);override;
begin
inherited;
@@ -1154,25 +1033,28 @@ type TBlockManager=class(TVCForm)
class(UtslCodeEditor).move_popwnd_to_center2(FEditer);
FEditer.showmodal();
end
OnFontChanged := thisfunction(ftchanged);
end
function DoControlAlign();override;
begin
if FList and FBtns then
begin
ft := font;
fw := ft.width;
fh := ft.height;
R := ClientRect;
R1 := R;
R1[3]-=30;
R1[3]-=(fh+10);
FList.SetBoundsRect(R1);
rc := R;
RC[1] := R[3]-28;
RC[1] := R[3]-(fh+5);
RC[3] := R[3]-2;
for i,v in Fbtns do
begin
rc1 := RC;
rc1[0] := R[2]-(I+1)*130;
rc1[2] := RC1[0]+95;
rc1[0] := R[2]-(I+1)*(fw*8);
rc1[2] := RC1[0]+fw*6;
V.SetBoundsRect(rc1);
end
end
@@ -1256,8 +1138,8 @@ type tsearchdir = class(TCustomControl)
function Create(AOwner);override;
begin
inherited;
ParentFont := false;
font := array("width":10,"height":20);
//ParentFont := false;
//font := array("width":10,"height":20);
fcopyer := new TClipBoard(self);
caption := "函数搜索目录:左侧为别名,右侧为-libpath目录....";
fcpmenu := new TPopupmenu(self);
@@ -1275,7 +1157,7 @@ type tsearchdir = class(TCustomControl)
FFolder.parent := self;
FLists := array();
FBtns := array();
for i,v in array(array(2,28,220,430),array(248,2,700,430)) do
for i,v in array(array(2,38,220,430),array(248,2,700,430)) do
begin
ls := new tdirlistbox(self);
ls.SetBoundsRect(v);
@@ -1299,6 +1181,7 @@ type tsearchdir = class(TCustomControl)
for i,v in array("+","-","+","-","确定") do
begin
bt := new tbtn(self);
if i<4 then bt.ParentFont := false;
bt.caption := v;
bt.SetBoundsRect(btrecs[i]);
bt.parent := self;
@@ -1311,7 +1194,8 @@ type tsearchdir = class(TCustomControl)
FBtns[4].autosize := true;
/////////////////////////////////
FEdit := new tedit(self);
FEdit.SetBoundsRect(array(2,2,220,26));
FEdit.SetBoundsRect(array(2,2,220,26));
FEdit.autosize := true;
FEdit.parent := self;
FEdit.onkeyup := thisfunction(editkeyup);
FEdit.placeholder := "查找or添加";
@@ -1535,6 +1419,7 @@ end
flastopend;
FOpendpaths;
FTabWidthpath;
Fsysfontpath;
FFileopen;
FexefileCmds;
FCodeblockPath;
@@ -1659,6 +1544,13 @@ type tdirviewer = class(tcustomcontrol)
end
end
selnowork();
ftree.OnFontChanged := function(o,e)begin
ft := font;
if ft then
begin
ftree.ItemHeight := ft.height+6;
end
end
end
function treenodeselchanged(o,e);
begin
@@ -1716,6 +1608,17 @@ type tdirviewer = class(tcustomcontrol)
end
ftb.ImageList := fimgs;
ftb.parent := self;
ftb.autosize := true;
onnotification := thisfunction(wftchanged);
end
function wftchanged(o,e);
begin
if not fimgs then return ;
d := e.msg;
if ifarray(d) and d["imgsize"]>0 then
begin
fimgs.imgsize := d["imgsize"];
end
end
function toolclick(o,e); //工具栏事件
begin
+130 -32
View File
@@ -144,10 +144,10 @@ type TProjectManagerForm = class(TVCForm) //
if findfunction(n)or findclass(n)then return "和现有的函数重名";
cprojpath := p+fio;
fn := f;
CreateDirWithFileName(cprojpath+"resource.tfm"+fio+"abc.tfm"); //构建窗口信息文件
//CreateDirWithFileName(cprojpath+"resource.tfm"+fio+"abc.tfm"); //构建窗口信息文件
info := array();
info["name"]:= n;
info["version"]:= "1.2.0";
info["version"]:= "1.1.0";
info["dir"]:= array();
mfn := n+"main";
info["files"]:= array(
@@ -175,7 +175,8 @@ end
%%,n,n+"main");
ReWriteString(cprojpath+n+".tsl",r);
ReWriteString(cprojpath+n+"main.tsf",CreateAForm(n+"main"));
ReWriteString(cprojpath+"resource.tfm"+fio+format("%smain.tfm",n),CreateAtfm(n+"main",n+"main"));
ReWriteString(cprojpath+n+format("%smain.tfm",n),CreateAtfm(n+"main",n+"main"));
//ReWriteString(cprojpath+"resource.tfm"+fio+format("%smain.tfm",n),CreateAtfm(n+"main",n+"main"));
//写入缓存
FProjectCoder.AddProject(n,f);
//添加到list 中
@@ -206,6 +207,7 @@ type TProjectView = class(TVCForm) //
FFilterList;
FFilterNodes;
Fhighlightpath;
feditorglobalpath;
function ShowFilterList(d);
begin
if not FFilterList.visible then
@@ -342,7 +344,7 @@ type TProjectView = class(TVCForm) //
rc := _wapi.GetScreenRect();
left := 20;
top := 150;
width := 360; //350
width := 330; //350
height := max(400,rc[3]-200);
FInput := new TNameInput(self);
finheritedinput := new tfm_inheritedwnd(self);
@@ -350,6 +352,7 @@ type TProjectView = class(TVCForm) //
FInput.visible := false;
FInput.parent := self;
FTslEditer := new TTslEditer(AOwner);
FTslEditer.Notification(FTslEditer,"change_editor_keys");
FTslEditer.FExecuteEditer.cannotadd := true;
FTslEditer.FExecuteEditer.onsaveclk := function(o,e)
begin
@@ -361,6 +364,7 @@ type TProjectView = class(TVCForm) //
FTslEditer.TslCacheDir := bpath+"designer"+fio+"cmpCaches";
FCodeblockPath := bpath+"editer"+fio+"BlockManager.tsm";
Fhighlightpath := bpath+"editer"+fio+"highlight.tsm";
feditorglobalpath := bpath+"editer"+fio+"feditorglobalpath.tsm";
if 1=importfile(ftstream(),"",FCodeblockPath,blockd)and blockd and ifarray(blockd)then
begin
class(TTSLCompletion).FCodeBlocks := blockd;
@@ -382,14 +386,32 @@ type TProjectView = class(TVCForm) //
nd := FTree.CurrentNode;
if nd and (nd["type"] in array("panel","form")) then FDesigner.EditerCodeChanged(nd);
end
//FTslEditer.Parent := AOwner;
imgs := New TControlImageList(self);
imgs.onnotification := function(o,e)begin
d := e.msg;
if ifarray(d) and d["imgsize"]>0 then
begin
o.imgsize := d["imgsize"];
end
end
if (importfile(ftstream(),"",feditorglobalpath,ginfo)=1) and ifarray(ginfo) then
begin
global editorglobalinfo ;
editorglobalinfo := ginfo;
if ifarray(ginfo) then
begin
app := initializeapplication();
app.font := array("width":ginfo["fontsize"],"height" :ginfo["fontsize"]*2);
NotifyComponent(self,ginfo);
end
end
FTslEditer.Parent := AOwner;
FTmfParser := new TTmfParser();
FTslParser := new ttslscripparser();
FTreeTool := new TToolBar(self);
FTreeTool.autosize := true;
FTreeTool.parent := self;
imgs := New TControlImageList(self);
imgs.width := 24;
imgs.height := 24;
imgs.DrawBmpFirst := true;
EditToolBmps := array();
for i,v in GetToolBtns() do
@@ -411,6 +433,7 @@ type TProjectView = class(TVCForm) //
FTreeTool.ImageList := imgs;
//**************目录树筛选功能***********************************
FFilter := new TEdit(self);
FFilter.autosize := true;
FFilterList := new TListBox(self);
FFilterList.color := 0xdcF8ff;
FFilterList.visible := false;
@@ -522,6 +545,7 @@ type TProjectView = class(TVCForm) //
it.parent := fnewmenu;
it.OnClick := thisfunction(newadd);
end
return;
end
function setnodesel(nd);
@@ -891,6 +915,10 @@ type TProjectView = class(TVCForm) //
if r then FTslEditer.OpenAndGotoFileByName(r);
ShowEditor();
end
function opensysfontmgr();
begin
FTslEditer.modifysyssize();
end
function ShowCurrenttfm();
begin
if FCurrentOpend then r := FCurrentOpend.gettmfname();
@@ -1002,7 +1030,6 @@ type TProjectView = class(TVCForm) //
it := FTslEditer.OpenAndGoLineByName(tfm);
if it then
begin
//FTmfParser.ScriptPath := FCurrentOpend.gettmfname();
sc := it.FEditer.text;
FTmfParser.Script := sc;
FCurrentOpend.ftfmscript := sc;
@@ -1135,6 +1162,7 @@ type TProjectView = class(TVCForm) //
FExecEntry := d["entryscript"];
end
FTslEditer.setExecuteEditerSetcmdline(d["commandline"]);
move_tfm_to_tsf(p);
OpenMainForm(); //打开主窗口
end
@@ -1285,6 +1313,8 @@ end %%,fn);
if ph then ph += fio;
else ph := "";
ph := cprojpath+ph+n+".tsf";
tfm := ph;
tfm[(length(tfm)-3):length(tfm)] := ".tfm";
if not(FileExists("",ph))then
begin
r := format(%%
@@ -1301,7 +1331,8 @@ end
ReWriteString(ph,r);
FTmfParser.ScriptPath := nd.gettmfname();
r := FTmfParser.inheritedcoy(n+"1",n,nd.Fname);
ReWriteString((FCProjectPath+"resource.tfm"+fio+n+".tfm"),r);
ReWriteString(tfm,r);
//ReWriteString((FCProjectPath+"resource.tfm"+fio+n+".tfm"),r);
end else
begin
FTslParser.ScriptPath := ph;
@@ -1332,7 +1363,8 @@ end
if ph then ph += fio;
else ph := "";
ph := cprojpath+ph+n+".tsf";
tfm := FCProjectPath+"resource.tfm"+fio+n+".tfm";
tfm := ph;
tfm[(length(tfm)-3):length(tfm)] := ".tfm";
if not(FileExists("",ph))then
begin
r := CreateAForm(n);
@@ -1378,7 +1410,9 @@ end
if ph then ph += fio;
else ph := "";
ph := cprojpath+ph+n+".tsf";
tfm := (FCProjectPath+"resource.tfm"+fio+n+".tfm");
//tfm := (FCProjectPath+"resource.tfm"+fio+n+".tfm");
tfm := ph;
tfm[(length(tfm)-3):length(tfm)] := ".tfm";
if not FileExists("",ph)then
begin
r := CreateAPanel(n);
@@ -1763,6 +1797,11 @@ end
begin
exportfile(ftstream(),"",Fhighlightpath,d);
end
global editorglobalinfo ;
if ifarray(editorglobalinfo) and editorglobalinfo then
begin
Exportfile(ftstream(),"",feditorglobalpath,editorglobalinfo);
end
end
private
FMoveMnus;
@@ -1833,6 +1872,10 @@ end
CreateDirWithFileName(FCProjectPath+ndr+fio+d["name"]+"."+ft);
if 1=filerename("",FCProjectPath+ml+d["name"]+"."+ft,FCProjectPath+ndr+d["name"]+"."+ft) then
begin
if FileExists("",(FCProjectPath+ml+d["name"]+".tfm")) then
begin
filerename("",FCProjectPath+ml+d["name"]+".tfm",FCProjectPath+ndr+d["name"]+".tfm");
end
nd.Recycling();
SaveProjInfo();
//移动成功
@@ -2338,16 +2381,34 @@ type TFileTree = class(TTreeCtl)
if FFType in array( "form","panel") then
begin
if not(ifstring(nn) and nn) then nn := Fname;
return Owner.fprojectpath+"resource.tfm"+fio+nn+".tfm";
return Owner.fprojectpath+FPath2()+nn+".tfm";
//return Owner.fprojectpath+"resource.tfm"+fio+nn+".tfm";
end
end
function gettmfdirs();//获得tmfdir
begin
if FFType in array( "form","panel") then
begin
return array( Owner.fprojectpath+"resource.tfm"+fio);
//return array( Owner.fprojectpath+"resource.tfm"+fio);
return listdirs(Owner.fprojectpath);
end
end
function listdirs(dir);
begin
r := array();
fio := dir[length(dir)];
r[0] := dir;
for i,v in FileList("",dir+"*") do
begin
vn := v["FileName"];
if vn="." or vn=".." then continue;
if pos("D",v["Attr"]) then
begin
r union=listdirs(dir+vn+fio);
end
end
return r;
end
property FFileInfo read FFFileInfo write setfileinfo;
fio;
fdtree;
@@ -2957,6 +3018,11 @@ type TNameInput=class(TCustomControl) //
FBtn.Click();
end
end
autosize := true;
FEidt.autosize := true;
FLabel.autosize := true;
FBtn.autosize := true;
childsizing := array("layout":1);
end
function sellAllText();
begin
@@ -3048,6 +3114,56 @@ type TProjectAddDlg=class(TCustomControl) //
FBtn;
FOnBtnClk;
end
////////////////////////////////////////////////////////////////
function move_tfm_to_tsf(dir);
begin
tsfs := array();
tfms := array();
find_tsf_tfm(dir,tsfs,tfms);
fs := iofileseparator();
for i,v in tsfs do
begin
tfmi := tfms[i];
if tfmi then
begin
sf := tfmi[0];
df := v+fs+tfmi[1];
if sf<>df then
begin
if filecopy("",sf,"",df) then
begin
filedelete("",sf);
end
end
end
end
if not(FileList("",dir+iofileseparator()+"resource.tfm"+iofileseparator()+"*.tfm")) then removedir("",dir+iofileseparator()+"resource.tfm");
end
function find_tsf_tfm(dir,tsfs,tfms);
begin
fs := iofileseparator();
for i,v in filelist("",dir+fs+"*") do
begin
vn := v["FileName"];
if vn="." or vn=".." then continue;
if pos("D",v["Attr"]) then //??
begin
find_tsf_tfm(dir+fs+vn,tsfs,tfms) ;
end else
begin
if parseregexpr("(.+)\\.tsf",vn,"i",mr,mp,ml)=1 then
begin
tsfs[lowercase(mr[0,1])] := dir;
end else
if parseregexpr("(.+)\\.tfm",vn,"i",mr,mp,ml)=1 then
begin
fn := dir+fs+vn;
tfms[lowercase(mr[0,1])] := array(fn,vn);
end
end
end
end
/////////////////////////////////////////////////////////////////
function ReWriteString(fn,d);
begin
if not ifstring(d)then return 0;
@@ -3084,24 +3200,6 @@ r := format(%% type %s=class(tdcreatepanel)
begin
inherited;
end
function DoControlAlign();override;//对齐子控件
begin
//当窗口大小改变时,该函数会被调用,
//可以通过 clientrect 获取客户区大小,设置子控件的位置以及大小
//如果自己处理了子控件的对齐,就可以去掉 inherited
inherited;
end
function Recycling();override;
begin
inherited;
ci := self.classinfo();
for i,v in ci["members"] do
begin
if v["const"] then continue;
if v["static"] then continue;
invoke(self,v["name"],nil);
end
end
end
%%,n);
return r;
+325 -128
View File
@@ -72,7 +72,7 @@ type TPage=class(TCustomControl) //
function Create(AOwner)
begin
Inherited;
ParentFont := false;
//ParentFont := false;
FCloseBtn := false;
FPageItems := new TMyarrayB();
FMultiLine := 1;
@@ -125,9 +125,10 @@ type TPage=class(TCustomControl) //
begin
if GetItemIndex(it)>= 0 then InValidateRect(it.Rect,false);
end
function FontChanged();override;//字体改变
function FontChanged(o);override;//字体改变
begin
FLineHeight := font.Height+6;
inherited;
DoControlAlign();
end
function IncPaintLock();
@@ -636,14 +637,6 @@ type TEditerAuxiliary=class(TPage) //
//FFileFindeItem := CreateApageItem();
OnSelChanged := thisfunction(OnSelChangedCall);
CloseBtn := true;
onnotification := function(o,e)begin
ms := e.message;
if ifarray(ms) and ms[0] ="font" then
begin
font := ms[1];
InValidateRect(nil,false);
end
end
end
function WMNCLBUTTONDOWN(o,e):WM_NCLBUTTONDOWN;override;
begin
@@ -677,6 +670,7 @@ type TEditerAuxiliary=class(TPage) //
{$endif}
if CurrentItem then wnd := CurrentItem.Tag;
if wnd then wnd.SetBoundsRect(Rc);
InValidateRect(nil,false);
end
function ShowPopUp();//弹出
begin
@@ -873,7 +867,7 @@ type TExecuteEditer=class(TCustomControl) //ִ
WSpOPUp := true;
FItems := new TMyArrayB();
caption := "编辑 Execute.....";
SetBoundsRect(array(50,50,930,201));
//SetBoundsRect(array(50,50,930,301));
FMemo := new TSynMemoNorm(self);
FMemo.OnKeyPress := function(o,e)
begin
@@ -901,13 +895,21 @@ type TExecuteEditer=class(TCustomControl) //ִ
end}
FMemo.Border := true;
FMemo.parent := self;
FChooser := new TComboBoxb(self); //new TEditList(self);
FChooser.ongetpreferredsize := function(o,e)begin
e.Width := 200;
e.Height := font.Height+5;
end ;
FChooser.autosize := true;
FChooser.ReadOnly := false;
FChooser.parent := self;
FOkBtn := new TBtn(self);
FOkBtn.autosize := true;
FCancelBtn := new TBtn(self);
FCancelBtn.autosize := true;
FEgnorBtn := new TBtn(self);
FEgnorBtn.autosize := true;
cp := new TExecuteMemoComp(self);
FMemo.Completion := cp;
cp.PrepareCompletion();
@@ -919,14 +921,31 @@ type TExecuteEditer=class(TCustomControl) //ִ
FOkBtn.Caption := "保存/添加";
FCancelBtn.Caption := "删除当前";
FEgnorBtn.caption := "取消";
FOkBtn.parent := self;
FCancelBtn.parent := self;
FEgnorBtn.parent := self;
FMemo.parent := self;
FMemo.font := array("width":10,"height":20);
FChooser.OnSelChanged := thisfunction(OnChooserChanged);
FCancelBtn.OnClick := thisfunction(DeleteCurrent);
FOkBtn.OnClick := thisfunction(doSaveCurrentName);
FEGnorBtn.OnClick := thisfunction(OnIgnore);
//
FMemo.parent := self;
FMemo.ongetpreferredsize:=function(o,e)begin
e.Width := 800;
e.Height := 150;
end
pal := new TPanel(self);
pal.WsDlgModalFrame := false;
fpal := pal;
pal.childsizing := array("controlsperline":10,"layout":1,"verticalspacing":50,"horizontalspacing":3,"topbottomspacing":2);
FChooser.parent := pal;
FCancelBtn.parent := pal;
FOkBtn.parent := pal;
FEgnorBtn.parent := pal;
autosize := true;
childsizing := array("layout":2,"controlsperline":3,"horizontalspacing":3,"topbottomspacing":2);
pal.autosize := true;
pal.Parent := self;
end
function Recycling();override;
begin
@@ -943,7 +962,7 @@ type TExecuteEditer=class(TCustomControl) //ִ
if length(FChooser.Items)<2 then return ;
FChooser.DeleteItem(FChooser.ItemIndex);
end
function DoControlAlign();override;
{function DoControlAlign();override;
begin
if FMemo and FChooser and FCancelBtn and FOkBtn and FEgnorBtn then
begin
@@ -954,16 +973,15 @@ type TExecuteEditer=class(TCustomControl) //ִ
tp := r1[3]+2;
wd := 200;
x := 50;
FChooser.SetBoundsRect(array(x,tp,x+200,tp+26));
FChooser.SetBoundsRect(array(x,tp,x+200,tp+28));
x += 230;
FCancelBtn.SetBoundsRect(array(x,tp,x+180,tp+28));
x += 200;
FOkBtn.SetBoundsRect(array(x,tp,x+180,tp+28));
x += 200;
FCancelBtn.SetBoundsRect(array(x+20,tp,x+20+100,tp+26));
x += 120;
FOkBtn.SetBoundsRect(array(x+20,tp,x+100,tp+26));
x += 120;
FEgnorBtn.SetBoundsRect(array(x+20,tp,x+100,tp+26));
x += 120;
FEgnorBtn.SetBoundsRect(array(x,tp,x+180,tp+28));
end
end
end}
function OnIgnore();
begin
idx := FChooser.ItemIndex;
@@ -1039,8 +1057,9 @@ type TExecuteEditer=class(TCustomControl) //ִ
it := O.GetItem(idx);
FMemo.Text := it.fexe;
end else
FMemo.Text := "";
FMemo.Text := "";
FMemo.ClearUndo();
FMemo.ExecuteCommand(FMemo.ecGotoXY,array(1,1));
end
function GetData(); //获得数据
begin
@@ -1074,6 +1093,7 @@ type TExecuteEditer=class(TCustomControl) //ִ
FOkBtn;
FItems;
FEgnorBtn;
fpal;
private
function GetItemIndex();
begin
@@ -1685,41 +1705,44 @@ type TPageEditer=class(TPage) //
FMenu := nil;
FPageItemOnRClick := nil;
end
fscroling;
function DoMouseWheel(o,e);override;
begin
IF ssCtrl in e.shiftstate then
begin
fw := font.Width;
hw := font.height;
if fscroling then return ;
fscroling := true;
ft := o.font;
fw := ft.Width;
hw := ft.height;
if e.delta<0 then
begin
if fw>6 then
begin
if fw=18 then
begin
fw :=17;
hw :=34;
end
finfo := array("width":fw-1,"height":hw-2);
end
end else
begin
if fw<24 then
if fw<44 then
begin
if fw=16 then
begin
fw := 17;
hw := 34;
end
finfo := array("width":fw+1,"height":hw+2);
end
end
if finfo then
begin
font := finfo;
callMessgeFunction(onscrollfont,o,finfo);
//font := finfo;
//callMessgeFunction(onscrollfont,o,finfo);
a := InitializeApplication();
if a then
begin
a.font := finfo;
end
global editorglobalinfo;
if not ifarray(editorglobalinfo) then editorglobalinfo := array();
editorglobalinfo["fontsize"] := finfo["width"];
InValidateRect(nil,false);
end
fscroling := false;
return;
end
end
@@ -1777,8 +1800,7 @@ type TEditer=class(TCustomcontrol) //
begin
inherited;
if not Fhightercolor then
Fhightercolor := new thighlitcolor(self);
Fhightercolor := new thighlitcolor(self);
FOpenHistory := new TMyarrayb();
FFistShows := array();
FSynHCS := New TMyArrayA();
@@ -1790,52 +1812,25 @@ type TEditer=class(TCustomcontrol) //
FCurrentItemCode := array();
FGoBackA := new TMyarrayB();
FGoBackB := new TMyarrayB();
//FToolbar := new TToolBar(self); //工具栏
ftoolbara := new TToolBar(self); //工具栏
ftoolbarb := new TToolBar(self); //工具栏
FStatus := new TStatusBar(self); //状态栏
fcoolbar := new tcoolbar(self);
fcoolbar.ParentFont := false;
fcoolbar := new tcoolbar(self);
ftoolbara.Align := alNone;
ftoolbarb.Align := alNone;
//ftoolbara.Width := 430;
//ftoolbarb.Width := 250;
fcoolbar.autosize := true;
FInfoShowWnd := new TEditerAuxiliary(self);
FPageEditer := new TPageEditer(self);
FPageEditer.onscrollfont := function(o,ft)begin
fh := ft["height"];
if fh>34 then return ;
global g_editer_font_size := ft;
self.Notification(self,array("font",ft));
FinCodemap.FTree.font := ft;
FinCodemap.FTree.ItemHeight := fh+6;
if fh<20 then
FPageEditer := new TPageEditer(self);
onnotification := function(o,e)begin
d := e.msg;
if ifarray(d) and d["imgsize"]>0 then
begin
isz := array(24,24);
end else
if fh>=20 and fh<24 then
begin
isz := array(28,28);
end else
if fh>=24 and fh<28 then
begin
isz := array(32,32);
end else
if fh>=28 and fh<31 then
begin
isz := array(36,36);
end else
begin
isz := array(40,40);
end
FImages.imgsize := isz;
fcoolbar.font := ft;
end
FImages.imgsize := d["imgsize"];
end
end
//FPageEditer.CloseBtn := true;
FPageEditer.Onbmpbclick := function(o,e)
begin
it := e._Tag;
if not it then return ;
if it.fisnewfile then //单独处理新建关闭
@@ -1887,8 +1882,8 @@ type TEditer=class(TCustomcontrol) //
end;
FFindWnd := new TFindWnd(self); //查找
FFindWnd.ParentFont := false;
FFindWnd.font := array("height":20,"width":10);
//FFindWnd.ParentFont := false;
//FFindWnd.font := array("height":20,"width":10);
FGotoLineWnd := new TGoToLineWnd(self); //共同
FListPages := new TListPages(self); //tab 跳转页面
FEchoWnd := new TEditerEchoWnd(self);
@@ -1911,9 +1906,9 @@ type TEditer=class(TCustomcontrol) //
FGotoLineWnd.Visible := false;
/////////////////////////
FFindWnd.Visible := false;
FFileSave.Filter := array("any":"*.*","tsl文件":"*.tsl;*.tsf");
FFileSave.Filter := array("tsl函数":"*.tsf","tsl脚本":"*.tsl","any":"*.*");
FFileSave.Caption := "另存为";
FFileopen.Filter := array("any":"*.*","tsl文件":"*.tsl;*.tsf");
FFileopen.Filter := array("tsl文件":"*.tsl;*.tsf","any":"*.*");
FPageEditer.OnSelChanged := thisfunction(PageItemSelChanged);
////////
FListPages.Visible := false;
@@ -1931,9 +1926,6 @@ type TEditer=class(TCustomcontrol) //
////////////
FPageEditer.PageItemOnRClick := thisfunction(PageItemOnRClick);
FImages := new TControlImageList(self);
//FImages.Width := 24;
//FImages.Height := 24;
FImages.imgsize := array(24,24);
imgs := GetEditIcons();
id := 0;
FToolbtns := array();
@@ -1970,7 +1962,6 @@ type TEditer=class(TCustomcontrol) //
FImages.DrawBmpFirst := true;
Fdbgbtns := dbgbtns;
FTslDebug.addbtns(dbgbtns);
//FToolbar.ImageList := FImages;
ftoolbara.autosize := true;
ftoolbara.ParentFont := true;
ftoolbarb.autosize := true;
@@ -1980,10 +1971,8 @@ type TEditer=class(TCustomcontrol) //
ftoolbara.Parent := fcoolbar;
ftoolbarb.Parent := fcoolbar;
FInfoShowWnd.Visible := false;
//FInfoShowWnd.WsSysMenu := true;
FInfoShowWnd.WSsizebox := true;
FInfoShowWnd.height := 200;
//FInfoShowWnd.OnSize := thisfunction(DoControlAlign);
FInfoShowWnd.OnCloseClick := function(o,e)
begin
o.visible := false;
@@ -2037,7 +2026,24 @@ type TEditer=class(TCustomcontrol) //
end
ffuncfind := new t_function_finder(self);
FShortCutshower := new t_shortcut_keys_view(self);
fsyssizemgr := new tsyssizemgr(self);
fsyssizemgr.Parent := self;
end
function modifysyssize();
begin
global editorglobalinfo;
if fsyssizemgr.show_syssize() then
begin
r := editorglobalinfo;
editorglobalinfo := fsyssizemgr.GetInfo();
editorglobalinfo["syssize"] := true;
app := InitializeApplication();
sz := editorglobalinfo["fontsize"];
sz2 := sz*2;
app.font := array("width":sz,"height":sz2);
if not(r) or (ifarray( r ) and r["imgsize"]<>editorglobalinfo["imgsize"]) then NotifyComponent(fsyssizemgr,editorglobalinfo);
end
end
function PopUpAuxiliary();
begin
FInfoShowWnd.ShowPopUp();
@@ -2262,6 +2268,7 @@ type TEditer=class(TCustomcontrol) //
s := FExecuteEditer.GetCurrentExuteString(it.Scriptpath);
FEchoWnd.Exec("",s,h);
end
fsyssizemgr;
compile_config;
fpg_config_infos;
function buildpageitem(it);
@@ -3073,7 +3080,7 @@ type TEditer=class(TCustomcontrol) //
FHistoryWnd.Caption := "打开历史....";
FHistoryWnd.WSsysMenu := true;
FHistoryWnd.WsSizeBox := true;
FHistoryWnd.Width := 400;
FHistoryWnd.Width := 700;
FHistoryWnd.Height := 600;
{FHistoryClearMenuPop := new TPopUpMenu(self);
FHistoryClearMenu := new TMenu(self);
@@ -3372,7 +3379,8 @@ type TEditer=class(TCustomcontrol) //
fcoolbar.SetBoundsRect(r);
end
r := rr;
r[1]:= r[3]-FStatus.Height;
ft := font;
r[1]:= r[3]-ft.Height-5;//FStatus.Height;
FStatus.SetBoundsRect(r);
rr := rr;
if htoolbar then
@@ -3883,7 +3891,7 @@ type TEditer=class(TCustomcontrol) //
if not fhltediter then
begin
fhltediter := new t_editor_color_mgr(self);
fhltediter.ParentFont := false;
//fhltediter.ParentFont := false;
fhltediter.Parent := self;
fhltediter.colorinfo := fhltediterdata;
end
@@ -4601,7 +4609,7 @@ type TEditList=class(TComboBox)
inherited;
width := 280;
Height := 26;
dropdowncount := 30;
dropdowncount := 15;
FMaxCoder := 20;
ReadONly := false;
Editer.OnKeyDown := function(o,e)
@@ -4637,6 +4645,7 @@ type TEditList=class(TComboBox)
end
end;
end
text := "";
end
function Recycling();override;
begin
@@ -4894,18 +4903,9 @@ type tfincodemap = class(tcustomcontrol)
Ftimer.Interval := 200;
Ftimer.Ontimer := thisfunction(BdownTimeOut);
Ftimer.Enabled := false;
FList := new TCombobox(self);
flist.Width := 180;
ar := array("Class","Function","Statements","If","Else","SubCase","Goto","Try","Empty_Begin_End","NeedSql","Unit","property","Member");
flist.Multisel := true;
FList.AppendItems(ar);
flist.ItemIndex := 0->(length(ar)-1);
FList.Parent := self;
initbtn();
FTree := new TTreeView(self);
FTree.ParentFont := false;
FTree.font := array("width":11,"height":22);
ftree.ItemHeight := 28;
FTree.OnSelChanged := thisfunction(SynNodeSelected);
FTree.Parent := self;
@@ -4944,7 +4944,7 @@ type tfincodemap = class(tcustomcontrol)
FList.SetBoundsRect(r);
fcbtn.left := rr[2]-25;
r := rr;
r[1]:= 27;
r[1]:= FList.Height+2;
r[0]:=1;
r[2]:=r[2]-3;
FTree.SetBoundsRect(r);
@@ -5161,11 +5161,20 @@ EA5E0BB7C5850E4063EDA83420076B5E10000000049454E44AE42608200";
bmp := new TBitmap();
bmp.ReadVcon(HexformatStrToTsl(s));
ffbtn.BKBitmap := bmp;
FList := new TCombobox(self);
FList.autosize := true;
flist.Width := 180;
ar := array("Class","Function","Statements","If","Else","SubCase","Goto","Try","Empty_Begin_End","NeedSql","Unit","property","Member");
flist.Multisel := true;
FList.AppendItems(ar);
flist.ItemIndex := 0->(length(ar)-1);
FList.Parent := self;
end
function geteditor();
begin
if not owner then return 0;
it := Owner.GetCurrentItem();
if not it then return 0;
edit := it.FEditer;
if not edit then return 0;
m := edit.HighLighter ;
@@ -5272,15 +5281,15 @@ type TFindListWnd=class(TListBox) //
function Create(AOwner);
begin
inherited;
font := array("width":11,"height":22);
ParentFont := false;
onnotification := function(o,e)begin
//font := array("width":11,"height":22);
//ParentFont := false;
{onnotification := function(o,e)begin
ms := e.message;
if ifarray(ms) and ms[0] ="font" then
begin
font := ms[1];
end
end
end }
end
function CheckListItem(s);override;
begin
@@ -5319,9 +5328,26 @@ type TFindWnd=class(TPage)
if sec then r["section"]:= sec;
r["btn"]:= btn;
end
function ftchanged(o,e); //字体改变
begin
//设置大小
ft := font;
if not ft then return ;
fh := ft.Height;
fw := ft.Width;
h := 14*(fh+10);
fbtnheight := fh+10;
ffontwidth := fw;
fbtnwidth := fw*11+20;
feditwidth := 300;
Width := fbtnwidth*2+80+300;
Height := h;
//DoControlAlign();
end
function Create(AOwner);override;
begin
inherited;
OnClose := function(o,e)
begin
Parent.EndFind();
@@ -5335,7 +5361,7 @@ type TFindWnd=class(TPage)
WSsYSMenu := true;
//WsSizeBox := true;
caption := "查找";
SetBoundsRect(array(300,300,920,680));
//SetBoundsRect(array(300,300,920,680));
IncPaintLock();
for i,v in array("查找","替换","文件查找") do
begin
@@ -5352,7 +5378,7 @@ type TFindWnd=class(TPage)
FDirChooser := new TFolderChooseADlg(self);
FEdit_dir_btn := new TBtn(self);
flabels := array();
for i,v in array("查找目标:"," 替换为:","文件类型:"," 目录:") do
for i,v in array("查找目标"," 替换为","文件类型"," 目录") do
begin
lb := new TLabel(self);
lb.TextAlign := AL9_CENTERRIGHT;
@@ -5397,6 +5423,7 @@ type TFindWnd=class(TPage)
FBtn_Count := new TFindBtn(self); // 计数
FBtn_Count_a := new TFindBtn(self); // 计数
FBtn_replaceall := new TFindBtn(self);
FCheck_subdir := new TFindCheck(self); //保护子目录
FBtn_Find.caption := "查找";
FBtn_replace.caption := "替换";
FBtn_Count_a.Caption := "计数";
@@ -5423,7 +5450,6 @@ type TFindWnd=class(TPage)
FCheck_case := new TFindCheck(self);
FCheck_cycle := new TFindCheck(self);
FCheck_reg := new TFindCheck(self);
FCheck_subdir := new TFindCheck(self);
FCheck_gt := new TFindCheck(self);
FCheck_subdir.checked := true;
FCheck_subdir.Left := 425;
@@ -5457,10 +5483,23 @@ type TFindWnd=class(TPage)
FCheck_subdir.parent := self;
FStatus := new TStatusBar(self);
//FStatus.Align := alNone;
FStatus.Items := array(("text":"","width":700));
FStatus.Items := array(("text":"","width":1000));
FStatus.Parent := self;
OnSelChanged := thisfunction(DoSelChanged);
ItemIndex := 0;
ft := font;
fh := ft.Height;
fw := ft.Width;
h := 14*(fh+10);
fbtnheight := fh+10;
ffontwidth := fw;
fbtnwidth := fw*11+20;
feditwidth := 300;
Width := fbtnwidth*2+80+300;
fsatusok := true;
Height := h;
onfontchanged := thisfunction(ftchanged);
//SetStatusText("查找");
end
function FindBtnClick(o,e);
@@ -5539,7 +5578,6 @@ type TFindWnd=class(TPage)
begin
v.PushItem(v.Editer.Text);
end
//if e then e.PushItem(e.Editer.Text);
end
function DoSelChanged(o,e);
begin
@@ -5593,16 +5631,76 @@ type TFindWnd=class(TPage)
end
end
end
function DoControlAlign();override;
function docontrolalign();override;
begin
inherited;
if not FStatus then return;
if not fsatusok then return ;
lf := 0;
tp := fbtnheight;
bw := fbtnwidth;
lh := fbtnheight-4;
fw := ffontwidth;
intv := 20;
lintv := 10;
lrec := array(lf,tp,lf+bw,tp+lh);
for i,v in flabels do
begin
if not v then return ;
v.setboundsrect(lrec);
lrec[1]+=lh+lintv;
lrec[3]+=lh+lintv;
end
lrec[0]+=intv;
lrec[2]+=intv;
for i,v in array(FCheck_revers,FCheck_wrap,FCheck_case,FCheck_cycle,FCheck_reg) do
begin
if not v then return ;
v.setboundsrect(lrec);
lrec[1]+=lh+lintv;
lrec[3]+=lh+lintv;
end
lrec := array(lf+bw+intv,tp,lf+bw+feditwidth+intv,tp+lh);
for i,v in array(FEdit_Target,FEdit_repace) do
begin
if not v then return ;
v.setboundsrect(lrec);
lrec[1]+=lh+lintv;
lrec[3]+=lh+lintv;
end
FEdit_Type.setboundsrect(lrec);
lrec[1]+=lh+lintv;
lrec[3]+=lh+lintv;
FEdit_dir.setboundsrect(lrec);
r := lrec;
r[2]-=fw*3;
lrec[0] := r[2]+1;
FEdit_dir_btn.setboundsrect(lrec);
lrec := array(lrec[2]+intv,tp,lrec[2]+bw+intv,tp+lh);
for i,v in array(FBtn_Find,array(FBtn_Count_a,FBtn_replace),FBtn_replaceall,array(FCheck_subdir,FBtn_Count)) do
begin
if ifarray(v) then
begin
for j,vj in v do
begin
if not vj then return ;
vj.setboundsrect(lrec);
end
end else
begin
if not v then return ;
v.setboundsrect(lrec);
end
lrec[1]+=lh+lintv;
lrec[3]+=lh+lintv;
end
if not FStatus then return;
rc := ClientRect;
rc[1]:= rc[3]-30;
FStatus.SetBoundsRect(rc);
end
rc[1]:= rc[3]-ffontwidth*2-5;
FStatus.SetBoundsRect(rc);
end
function recycling();override;
begin
fsatusok := false;
inherited;
FStatus := nil;
end
@@ -5619,27 +5717,35 @@ type TFindWnd=class(TPage)
begin
if not ifarray(d)then return;
fds := d["finds"];
if ifarray(fds)then
if ifarray(fds) and fds then
begin
FEdit_Target.Items := fds;
FEdit_Target.ItemIndex := -1;
end
rps := d["repalces"];
if ifarray(rps)then
if ifarray(rps) and rps then
begin
FEdit_repace.Items := rps;
end
dirs := d["dirs"];
if ifarray(dirs)then
if ifarray(dirs) and dirs then
begin
FEdit_dir.items := dirs;
FEdit_dir.items := dirs;
FEdit_dir.ItemIndex := 0;
end
dirs := d["findfiletyps"];
if ifarray(dirs)then
if ifarray(dirs) and dirs then
begin
FEdit_Type.items := dirs;
FEdit_Type.ItemIndex := 0;
end
end
private
fsatusok;
fbtnheight;
fbtnwidth;
feditwidth;
ffontwidth;
weakref
FStatus;
FDirChooser;
@@ -5669,8 +5775,8 @@ type TGoToLineWnd=class(TVCForm) //
function Create(AOwner);override;
begin
inherited;
ParentFont := false;
font := array("width":10,"height":20);
//ParentFont := false;
//font := array("width":10,"height":20);
wssizebox := false;
minmaxbox := false;
WsDlgModalFrame := true;
@@ -5786,9 +5892,100 @@ type TMouseMoveList=class(TListBox)
private
FCurrentIndex;
end
type tsyssizemgr = class(TVCForm)
uses tslvcl;
function create(AOwner);
begin
inherited;
Caption := "字体图标大小";
Visible := false;
WSSizebox := false;
minmaxbox := false;
WsCaption := "sys size";
lb1 := new TLabel(self);
lb1.Caption := "系统字体大小:";
lb1.autosize := true;
lb2 := new TLabel(self);
lb2.Caption := "系统图标大小:";
lb2.autosize := true;
fsysimg := new TCombobox(self);
fsysimg.autosize := true;
fsysimg.Items := inttostr(array(24,8)->64);
fsysimg.ItemIndex := 0;
fsysfont := new TCombobox(self);
fsysfont.autosize := true;
fsysfont.Items := inttostr(array(8,2)->36);
fsysfont.ItemIndex := 0;
lb3 := new TLabel(self);
lb3.Caption := "";
pal := new tcustomcontrol(self);
pal.autosize := true;
fok := new tbtn(self);
fok.caption := "确定";
fok.autosize := true;
fcancel := new tbtn(self);
fcancel.caption := "取消";
fcancel.autosize := true;
fcancel.Parent := pal;
fok.Parent := pal;
fcancel.Parent := pal;
lb1.Parent := self;
fsysfont.Parent := self;
lb2.Parent := self;
fsysimg.Parent := self;
lb3.Parent := self;
pal.Parent := self;
childsizing := array("layout":1,"controlsperline":2);
pal.childsizing := array("layout":1,"controlsperline":2,"topbottomspacing":3);
autosize := true;
fok.onclick := thisfunction(okclk);
fcancel.onclick := thisfunction(cancelclk);
fsysimg.ongetpreferredsize := thisfunction(egetpsize);
fsysfont.ongetpreferredsize := thisfunction(egetpsize);
end
function egetpsize(o,e);
begin
ft := font;
e.Height := ft.Height+5;
e.Width := ft.Width*7;
end
function okclk(o,e);
begin
EndModal(1);
end
function cancelclk(o,e);
begin
EndModal(0);
end
function setinfo(r); //设置数据
begin
isz := r["imgsize"];
if isz>0 then fsysimg.Text := inttostr(isz);
fsz := r["fontsize"];
if fsz>0 then fsysfont.Text := inttostr(fsz);
end
function getinfo();
begin
r := array();
r["imgsize"] := StrToIntDef(fsysimg.Text,24);
r["fontsize"] := StrToIntDef(fsysfont.Text,10);
return r;
end
function DoWMCLOSE(o,e);override;
begin
e.skip := true;
EndModal(0);
end
function show_syssize();
begin
global editorglobalinfo;
setinfo(editorglobalinfo?:array());
center_popup_wnd(self);
return ShowModal();
end
fsysimg;
fsysfont;
end
function GetEditIcons();
begin
r := array();
+316 -160
View File
@@ -686,7 +686,7 @@ type TTslDebuga=class(TCustomControl)
function Create(AOwner);
begin
inherited;
init_item_height := 30;
//init_item_height := 30;
fscriptbrks := array();
//Frundirect := false;
FCmdHistory := array();
@@ -698,14 +698,15 @@ type TTslDebuga=class(TCustomControl)
dbwnd.Align := alClient;
dbwnd.Parent := self;
FStackList := new TListView(self); // new TListBox(self); //new tmemo(self);//
FStackList.ItemHeight := init_item_height;
//FStackList.ItemHeight := init_item_height;
FStackList.Columns := array(("text":"line","width":80),
("text":"function","width":250) //,("text":"type","width":70)
);
FStackList.Border := true;
FVaraiblesList := new TGroupGridA(self);
FVaraiblesList.Border := false;
FVaraiblesList.ItemHeight := init_item_height;
//FVaraiblesList.ItemHeight := init_item_height;
FVaraiblesList.Columns := array(("text":"name","width":105),
("text":"value","width":135),
("text":"type","width":80)
@@ -713,7 +714,7 @@ type TTslDebuga=class(TCustomControl)
FCommandtext := new TEdit(self);
FCommandtext.autosize := true;
FCommandtext.placeholder := "命令输入框";
FCommandtext.Height := init_item_height;
//FCommandtext.Height := init_item_height;
FCommandtext.onkeyup := thisfunction(cmdkeyup);
FShowText := new tmemo(self);
FShowText.ReadOnly := true;
@@ -754,20 +755,18 @@ type TTslDebuga=class(TCustomControl)
begin
return 1;
end
onnotification := function(o,e)begin
if not (FStackList and FVaraiblesList) then return ;
ms := e.message;
if ifarray(ms) and ms[0] ="font" then
begin
ft := ms[1];
FStackList.font := ft;
FStackList.ItemHeight := ft["height"]+6;
FVaraiblesList.font := ft;
FVaraiblesList.ItemHeight := ft["height"]+6;
//font := ms[1];
end
end
self.onfontchanged := function(o,e)begin
if (FVaraiblesList and FStackList) then
begin
ft := o.font;
if ft then
begin
ht := ft.Height;
FVaraiblesList.ItemHeight := ht+6;
FStackList.ItemHeight := ht+6;
end
end
end
end
function addbreak(item,idx,n); //添加断点
begin
@@ -1944,38 +1943,43 @@ type ttempclass = class()
end
type tdbgselwnd=class(tdcreateform)
uses tslvcl;
fdiag:tfolderchooseadlg;
flist:tlistview;
cancel_clk;
save_clk;
dbg_clk;
fhistorydir;
panel3:tpanel;
label1:tlabel;
portpal:tpanel;
furl:tedit;
label2:tlabel;
fport:tedit;
label3:tlabel;
fusr:tedit;
label4:tlabel;
label5:tlabel;
fpwd:tpassword;
fdir:tedit;
fdiag:tfolderchooseadlg;
flist:tlistview;
fcbtn:tbtn;
label6:tlabel;
panel2:tpanel;
flogout:tbtn;
flogin:tbtn;
label5:tlabel;
panel1:tpanel;
fdir:tedit;
fcbtn:tbtn;
panel4:tpanel;
fdbg:tbtn;
cancel_clk;
save_clk;
dbg_clk;
fhistorydir;
function Create(AOwner);override; //构造
begin
inherited;
Visible := false;
ParentFont := false;
//ParentFont := false;
Loader.LoadFromTfmScript(self,getinfo());
flist.Columns := array(
("text":"ID号","width":150),
("text":"信息","width":300),
("text":"创建时间","width":100)
flist.Columns := array(("text":"ID号","width":150)
,("text":"信息","width":300)
,("text":"创建时间","width":100)
);
flogout.top := 140;
//flogout.top := 140;
flogout.OnClick := function(o,e)
begin
calldatafunction(cancel_clk,self,e);
@@ -1995,15 +1999,56 @@ type tdbgselwnd=class(tdcreateform)
calldatafunction(dbg_clk,self,e);
end
setlist();
onfontchanged := thisfunction(ftchanged);
end
function ftchanged(o,e);
begin
ft := font;
if flist and ft then
begin
flist.ItemHeight := ft.Height+6;
end
end
function panel1_gprefsize(o;e);virtual;
begin
ft := font;
if not ft then return;
fh := ft.Height;
fw := ft.Width;
e.width := 400; //宽度
e.height := fh+10; //高度
end
function flist_gprefsize(o;e);
begin
{**
@explan(说明) 获取最佳的尺寸 %%
@param(o)(tcontrol)控件 %%
@param(e)(tmmeasuresize) 消息对象 %%
**}
e.width := 600; //宽度
e.height := 400; //高度
end
function fusr_gprefsize(o;e);
begin
ft := font;
if not ft then return;
fh := ft.Height;
fw := ft.Width;
e.width := 400; //宽度
e.height := fh+5; //高度
end
function setattachwait(flg); //设置登陆样式
begin
if flg then
begin
Height := 210;
//Height := 210;
flist.Visible := false;
panel4.Visible := false;
end else
begin
Height := 550;
//Height := 550;
flist.Visible := true;
panel4.Visible := true;
end
end
function loaddata(); //导入数据
@@ -2088,132 +2133,243 @@ type tdbgselwnd=class(tdcreateform)
begin
return %%
object tserlogersimplewnd1:tserlogersimplewnd
caption="远程调试"
color=0xFFFFFF
top=100
height=550
minmaxbox=false
onclose=tserlogersimplewnd1_close
width=580
wsdlgmodalframe=true
wssizebox=false
object label1:tlabel
left=4
top=3
width=80
height=25
caption="服务器地址"
end
object furl:tedit
height=25
left=88
tabstop=true
top=3
width=204
end
object label2:tlabel
left=296
top=3
width=34
height=25
caption="端口"
end
object fport:tedit
height=25
left=333
tabstop=true
top=3
width=62
end
object label3:tlabel
left=2
top=38
width=80
height=25
caption=" 用户名"
end
object fusr:tedit
height=25
left=88
tabstop=true
top=38
width=300
end
object label4:tlabel
left=2
top=72
width=80
height=25
caption=" 密 码"
end
object label5:tlabel
left=2
top=100
width=80
height=25
caption=" 脚本目录"
end
object fpwd:tpassword
height=25
left=88
tabstop=true
top=72
width=300
end
object fdir:tedit
height=25
left=88
tabstop=true
top=100
width=300
end
object fcbtn:tbtn
caption="..."
height=25
left=390
tabstop=true
top=100
width=22
onclick=getdir
end
object flogout:tbtn
an1chors=[akright akbottom]
caption="取消"
height=23ff
left=375
tabstop=true
top=480
width=74
end
object fdbg:tbtn
an1chors=[akright akbottom]
caption="调试"
height=23
left=470
tabstop=true
top=480
width=74
end
object flogin:tbtn
caption="连接"
height=23
left=470
tabstop=true
top=140
width=74
end
object flist:tlistview
anch1ors=[akTop akright akLeft akBottom]
height=290
left=2
top=180
width=560
end
object fdiag:tfolderchooseadlg
caption="执行目录"
end
autosize=true
caption="远程调试"
childsizing=<
layout=2
controlsperline=4
horizontalspacing=10
verticalspacing=10
leftrightspacing=10
topbottomspacing=10
>
color=0xFFFFFF
height=636
left=700
minmaxbox=false
onclose=tserlogersimplewnd1_close
top=271
width=452
wsdlgmodalframe=true
wssizebox=false
object fdiag:tfolderchooseadlg
left=501
top=34
height=30
width=30
caption="执行目录"
end
object panel3:tpanel
autosize=true
caption="panel3"
childsizing=<
layout=1
controlsperline=2
horizontalspacing=5
verticalspacing=5
leftrightspacing=5
topbottomspacing=5
>
height=136
left=10
top=10
width=416
wsdlgmodalframe=false
object label1:tlabel
left=5
top=5
width=58
height=22
autosize=true
caption="服务地址"
textalign=al9_centerright
end
object portpal:tpanel
autosize=true
caption="panel1"
childsizing=<
layout=1
controlsperline=3
horizontalspacing=0
verticalspacing=1
leftrightspacing=0
topbottomspacing=1
>
height=22
left=68
top=5
width=343
wsdlgmodalframe=false
object furl:tedit
caption="edit1"
height=20
left=0
tabstop=true
top=1
width=204
end
object label2:tlabel
left=205
top=1
width=30
height=20
autosize=true
caption="端口"
end
object fport:tedit
caption="edit1"
height=20
left=236
tabstop=true
top=1
width=62
end
end
object label3:tlabel
left=5
top=32
width=58
height=20
autosize=true
caption="用户名"
textalign=al9_centerright
end
object fusr:tedit
caption="edit1"
height=20
left=68
ongetpreferredsize=fusr_gprefsize
tabstop=true
top=32
width=343
end
object label4:tlabel
left=5
top=57
width=58
height=20
autosize=true
caption="密码"
textalign=al9_centerright
end
object fpwd:tpassword
caption="password1"
height=20
left=68
ongetpreferredsize=fusr_gprefsize
tabstop=true
top=57
width=343
end
object label5:tlabel
left=5
top=82
width=58
height=21
autosize=true
caption="脚本目录"
textalign=al9_centerright
end
object panel1:tpanel
autosize=true
caption="panel1"
childsizing=<
layout=1
controlsperline=2
horizontalspacing=0
verticalspacing=3
leftrightspacing=1
topbottomspacing=0
>
height=21
left=68
ongetpreferredsize=panel1_gprefsize
top=82
width=343
wsdlgmodalframe=false
object fdir:tedit
caption="edit1"
height=21
left=1
tabstop=true
top=0
width=300
end
object fcbtn:tbtn
caption="..."
height=21
left=304
onclick=getdir
tabstop=true
top=0
width=35
end
end
object label6:tlabel
left=5
top=108
width=58
height=23
autosize=true
caption=""
end
object panel2:tpanel
autosize=true
caption="panel2"
height=23
left=68
top=108
width=343
wsdlgmodalframe=false
object flogout:tbtn
autosize=true
caption="取消"
height=21
left=147
tabstop=true
top=0
width=42
end
object flogin:tbtn
autosize=true
caption="连接"
height=21
left=300
tabstop=true
top=0
width=42
end
end
end
object flist:tlistview
height=400
left=10
ongetpreferredsize=flist_gprefsize
top=156
width=416
end
object panel4:tpanel
autosize=true
caption="panel4"
height=21
left=10
top=566
width=416
wsdlgmodalframe=false
object fdbg:tbtn
align=alright
anchors=[aktop akleft]
autosize=true
caption="调试"
height=21
left=374
tabstop=true
top=0
width=42
end
end
end
%%;
end
private
+28 -19
View File
@@ -513,6 +513,10 @@ type TVclDesigner = class(tvcform)
begin
FProjectManager.ShowCurrentFormCode();//ShowEditor();
end
function opensysfontmgr();
begin
FProjectManager.opensysfontmgr();
end
function opentfm(); //打开资源文件
begin
FProjectManager.ShowCurrenttfm();
@@ -574,9 +578,11 @@ type TVclDesigner = class(tvcform)
)),
("type":"menu","caption":"工具","items":(
("type":"menu","caption":"设计器目录","checked":0,"onclick":thisfunction(open_tsl_dir)),
("type":"menu","caption":"控件管理","checked":0,"onclick":thisfunction(mgr_control)),
("type":"menu","caption":"打开图片","checked":0,"onclick":thisfunction(ViewBitmap)),
("type":"menu","caption":"编辑器颜色","checked":0,"onclick":thisfunction(showhltcolor))
("type":"menu","caption":"编辑器颜色","checked":0,"onclick":thisfunction(showhltcolor)),
("type":"menu","caption":"字体图标大小","onclick":thisfunction(opensysfontmgr))
)),
("type":"menu","caption":"帮助","items":(
("type":"menu","caption":"关于","onclick":thisfunction(openabout)),
@@ -1498,8 +1504,8 @@ type TVclDesigner = class(tvcform)
function create(AOwner);
begin
inherited;
ParentFont := false;
Font := array("width":10,"height":20);
//ParentFont := false;
//Font := array("width":10,"height":20);
top := 10;
left := 10;
rect := _wapi.GetScreenRect();
@@ -1564,12 +1570,17 @@ type TVclDesigner = class(tvcform)
FPropGrid.align := alclient;
FEventGrid.align := alclient;
FPropGrid.parent := FProp;
FEventGrid.parent := FEvent;
FEventGrid.parent := FEvent;
Mobjinspect();
onactivate := thisfunction(OnDesignerActivate);
fdimagelist := new TDesigImageList(self);
global editorglobalinfo ;
if ifarray(editorglobalinfo) and editorglobalinfo then
begin
fdimagelist.imgsize := editorglobalinfo["imgsize"];
end
//FTree.Imagelist := fdimagelist;
fwindowinfos := new tfilesinfo(self,thisfunction(ClickTreeNode),fdimagelist,tparent);
//******************toolbar ***************
@@ -1608,9 +1619,6 @@ type TVclDesigner = class(tvcform)
FToolBars := new TDesignertoolbars(self);
FToolBars.Imagelist := fdimagelist;
FToolBars.Font.width := 10;
FToolBars.Font.height := 20;
FToolBars.linkimagelist := FProjectManager.FTslEditer.gettoolbarimglist();
addtoolbuttons();
FToolBars.Align := alClient;
FToolBars.parent := self;
@@ -1631,6 +1639,13 @@ type TVclDesigner = class(tvcform)
FProjectManager.FTslEditer.setdbugruncall(thisfunction(debugproject)); //设置调试回调
FProjectManager.newmenu.parent := ffilemenu;//
FProjectManager.goformmenu.parent := fviewmenu;//
FToolBars.onnotification := function(o,e)begin
d := e.msg;
if ifarray(d) and d["imgsize"]>0 then
begin
fdimagelist.imgsize := d["imgsize"];
end
end ;
//OnChange
//fnewmenu
end
@@ -1640,6 +1655,10 @@ type TVclDesigner = class(tvcform)
begin
FProjectManager.showhltcolor();
end
function open_tsl_dir();
begin
_Wapi.openresourcemanager(sysexecname());
end
function mgr_control();
begin
if not fmgr_ctl then
@@ -2096,19 +2115,10 @@ type TDesignertoolbars = class(TPageControl) //
[weakref]ftoolbars;
FLabels ;
[weakref]fimg;
[weakref]flinkimagelist;
function SetImageList(im);
begin
fimg := im;
end
function SetlinkeImageList(img);
begin
flinkimagelist := img;
if flinkimagelist then
begin
flinkimagelist.onchange := thisfunction(changedimg);
end
end
public
function changedimg(o,e);
begin
@@ -2120,7 +2130,7 @@ type TDesignertoolbars = class(TPageControl) //
FToolsheets := array();
ftoolbars := array();
inherited;
ParentFont := false;
//ParentFont := false;
align := alClient;
@@ -2176,7 +2186,6 @@ type TDesignertoolbars = class(TPageControl) //
end
end
property ImageList write SetImageList;
property linkimagelist write SetlinkeImageList;
private
[weakref]ftbs;
+8 -2
View File
@@ -855,6 +855,12 @@ type TPropGrid = class(TTSLDataGrid)
OnMouseWheel := function(o,e)begin
currentLeave();
end
onfontchanged := function(o,e)begin
ft := font;
if not ft then return ;
fh := ft.height;
itemheight := fh+6;
end
end
function Recycling();override;
begin
@@ -1032,12 +1038,12 @@ type TTSLDataGrid=class(TDrawGrid)
if ifstring(v)then
begin
wd := max(wd,length(v) * ftwidth+3);
if wd>200 then break;
if wd>500 then break;
end
end
if RowHeader then
begin
fcs[0]:= array("text":" ","width":min(200,wd));
fcs[0]:= array("text":" ","width":min(500,wd));
end
if FCL and allFCL and FShowTwo then
begin