更新编辑器
This commit is contained in:
parent
254dc0b2cd
commit
ab8b5bb6a5
|
|
@ -1,122 +0,0 @@
|
||||||
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
|
|
||||||
|
|
@ -0,0 +1,224 @@
|
||||||
|
object editor_config:t_editor_config
|
||||||
|
autosize=true
|
||||||
|
caption="编辑器配置"
|
||||||
|
childsizing=<
|
||||||
|
layout=1
|
||||||
|
controlsperline=1
|
||||||
|
horizontalspacing=10
|
||||||
|
verticalspacing=10
|
||||||
|
leftrightspacing=10
|
||||||
|
topbottomspacing=10
|
||||||
|
>
|
||||||
|
|
||||||
|
height=401
|
||||||
|
left=851
|
||||||
|
minmaxbox=false
|
||||||
|
onclose=editor_config_close
|
||||||
|
top=574
|
||||||
|
width=321
|
||||||
|
wssizebox=false
|
||||||
|
object gb_format:tgroupbox
|
||||||
|
autosize=true
|
||||||
|
caption="代码格式"
|
||||||
|
childsizing=<
|
||||||
|
layout=1
|
||||||
|
controlsperline=2
|
||||||
|
horizontalspacing=10
|
||||||
|
verticalspacing=10
|
||||||
|
leftrightspacing=10
|
||||||
|
topbottomspacing=10
|
||||||
|
>
|
||||||
|
height=157
|
||||||
|
left=10
|
||||||
|
parentcolor=true
|
||||||
|
top=10
|
||||||
|
width=285
|
||||||
|
object lb_align:tlabel
|
||||||
|
left=14
|
||||||
|
top=29
|
||||||
|
width=100
|
||||||
|
height=21
|
||||||
|
autosize=true
|
||||||
|
caption="多行注释对齐"
|
||||||
|
end
|
||||||
|
object ck_align:tcheckbtn
|
||||||
|
autosize=true
|
||||||
|
caption=""
|
||||||
|
height=21
|
||||||
|
left=124
|
||||||
|
parentcolor=true
|
||||||
|
top=29
|
||||||
|
width=100
|
||||||
|
end
|
||||||
|
object lb_array:tlabel
|
||||||
|
left=14
|
||||||
|
top=60
|
||||||
|
width=100
|
||||||
|
height=21
|
||||||
|
autosize=true
|
||||||
|
caption="array格式化"
|
||||||
|
end
|
||||||
|
object cb_array:tcombobox
|
||||||
|
autosize=true
|
||||||
|
caption="combobox1"
|
||||||
|
height=21
|
||||||
|
itemindex=1
|
||||||
|
items=["默认" "普通" "宽松" ]
|
||||||
|
left=124
|
||||||
|
top=60
|
||||||
|
width=100
|
||||||
|
end
|
||||||
|
object lb_syn:tlabel
|
||||||
|
left=14
|
||||||
|
top=91
|
||||||
|
width=100
|
||||||
|
height=21
|
||||||
|
autosize=true
|
||||||
|
caption="语法检查"
|
||||||
|
end
|
||||||
|
object ck_syn:tcheckbtn
|
||||||
|
autosize=true
|
||||||
|
caption=""
|
||||||
|
height=21
|
||||||
|
left=124
|
||||||
|
parentcolor=true
|
||||||
|
top=91
|
||||||
|
width=100
|
||||||
|
end
|
||||||
|
object lb_select:tlabel
|
||||||
|
left=14
|
||||||
|
top=122
|
||||||
|
width=100
|
||||||
|
height=21
|
||||||
|
autosize=true
|
||||||
|
caption="格式化选择区域"
|
||||||
|
end
|
||||||
|
object ck_sel:tcheckbtn
|
||||||
|
autosize=true
|
||||||
|
caption=""
|
||||||
|
height=21
|
||||||
|
left=124
|
||||||
|
parentcolor=true
|
||||||
|
top=122
|
||||||
|
width=100
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object gb_tips:tgroupbox
|
||||||
|
autosize=true
|
||||||
|
caption="自动完成"
|
||||||
|
childsizing=<
|
||||||
|
layout=1
|
||||||
|
controlsperline=3
|
||||||
|
horizontalspacing=10
|
||||||
|
verticalspacing=10
|
||||||
|
leftrightspacing=10
|
||||||
|
topbottomspacing=10
|
||||||
|
>
|
||||||
|
height=126
|
||||||
|
left=10
|
||||||
|
parentcolor=true
|
||||||
|
top=177
|
||||||
|
width=285
|
||||||
|
object lb1:tlabel
|
||||||
|
left=14
|
||||||
|
top=29
|
||||||
|
width=30
|
||||||
|
height=19
|
||||||
|
autosize=true
|
||||||
|
caption="从第"
|
||||||
|
end
|
||||||
|
object sp_i:tspinedit
|
||||||
|
autosize=true
|
||||||
|
caption="spinedit1"
|
||||||
|
height=19
|
||||||
|
left=54
|
||||||
|
maxvalue=8
|
||||||
|
minvalue=1
|
||||||
|
top=29
|
||||||
|
value=1
|
||||||
|
width=41
|
||||||
|
end
|
||||||
|
object lb2:tlabel
|
||||||
|
left=105
|
||||||
|
top=29
|
||||||
|
width=105
|
||||||
|
height=19
|
||||||
|
autosize=true
|
||||||
|
caption="字符开始匹配"
|
||||||
|
textalign=al9_default
|
||||||
|
end
|
||||||
|
object lb3:tlabel
|
||||||
|
left=14
|
||||||
|
top=58
|
||||||
|
width=30
|
||||||
|
height=21
|
||||||
|
autosize=true
|
||||||
|
caption=""
|
||||||
|
end
|
||||||
|
object lb4:tlabel
|
||||||
|
left=54
|
||||||
|
top=58
|
||||||
|
width=41
|
||||||
|
height=21
|
||||||
|
autosize=true
|
||||||
|
caption=""
|
||||||
|
end
|
||||||
|
object ck_case:tcheckbtn
|
||||||
|
autosize=true
|
||||||
|
caption="区分大小写"
|
||||||
|
height=21
|
||||||
|
left=105
|
||||||
|
textpos=al9_default
|
||||||
|
top=58
|
||||||
|
width=105
|
||||||
|
end
|
||||||
|
object label1:tlabel
|
||||||
|
left=14
|
||||||
|
top=89
|
||||||
|
width=30
|
||||||
|
height=23
|
||||||
|
autosize=true
|
||||||
|
caption=""
|
||||||
|
end
|
||||||
|
object label2:tlabel
|
||||||
|
left=54
|
||||||
|
top=89
|
||||||
|
width=41
|
||||||
|
height=23
|
||||||
|
autosize=true
|
||||||
|
caption=""
|
||||||
|
end
|
||||||
|
object ck_first:tcheckbtn
|
||||||
|
autosize=true
|
||||||
|
caption="从头匹配"
|
||||||
|
checked=true
|
||||||
|
height=23
|
||||||
|
left=105
|
||||||
|
top=89
|
||||||
|
width=105
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object panel1:tpanel
|
||||||
|
caption="panel1"
|
||||||
|
height=39
|
||||||
|
left=10
|
||||||
|
top=313
|
||||||
|
width=285
|
||||||
|
wsdlgmodalframe=false
|
||||||
|
object bt_ok:tbtn
|
||||||
|
caption="保存"
|
||||||
|
height=31
|
||||||
|
left=59
|
||||||
|
onclick=bt_ok_clk
|
||||||
|
top=8
|
||||||
|
width=94
|
||||||
|
end
|
||||||
|
object bt_cancel:tbtn
|
||||||
|
caption="取消"
|
||||||
|
height=31
|
||||||
|
left=191
|
||||||
|
top=8
|
||||||
|
width=94
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -30,14 +30,14 @@ object shortcut_keys_view:t_shortcut_keys_view
|
||||||
align=albottom
|
align=albottom
|
||||||
autosize=true
|
autosize=true
|
||||||
caption="panel1"
|
caption="panel1"
|
||||||
height=34
|
height=37
|
||||||
left=0
|
left=0
|
||||||
top=611
|
top=608
|
||||||
width=574
|
width=574
|
||||||
object fokbtn:tbtn
|
object fokbtn:tbtn
|
||||||
autosize=true
|
autosize=true
|
||||||
caption="È·¶¨"
|
caption="È·¶¨"
|
||||||
height=22
|
height=25
|
||||||
left=242
|
left=242
|
||||||
onclick=fokbtn_clk
|
onclick=fokbtn_clk
|
||||||
top=6
|
top=6
|
||||||
|
|
@ -56,7 +56,7 @@ object shortcut_keys_view:t_shortcut_keys_view
|
||||||
text="˵Ã÷"
|
text="˵Ã÷"
|
||||||
>
|
>
|
||||||
]
|
]
|
||||||
height=611
|
height=608
|
||||||
left=0
|
left=0
|
||||||
parentfont=true
|
parentfont=true
|
||||||
top=0
|
top=0
|
||||||
|
|
|
||||||
|
|
@ -1,62 +0,0 @@
|
||||||
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
|
|
||||||
|
|
@ -0,0 +1,88 @@
|
||||||
|
type t_editor_config=class(tdcreateform)
|
||||||
|
uses tslvcl;
|
||||||
|
gb_format:tgroupbox;
|
||||||
|
lb_align:tlabel;
|
||||||
|
ck_align:tcheckbtn;
|
||||||
|
lb_array:tlabel;
|
||||||
|
cb_array:tcombobox;
|
||||||
|
lb_syn:tlabel;
|
||||||
|
ck_syn:tcheckbtn;
|
||||||
|
lb_select:tlabel;
|
||||||
|
ck_sel:tcheckbtn;
|
||||||
|
gb_tips:tgroupbox;
|
||||||
|
lb1:tlabel;
|
||||||
|
sp_i:tspinedit;
|
||||||
|
lb2:tlabel;
|
||||||
|
ck_case:tcheckbtn;
|
||||||
|
lb3:tlabel;
|
||||||
|
lb4:tlabel;
|
||||||
|
panel1:tpanel;
|
||||||
|
bt_ok:tbtn;
|
||||||
|
bt_cancel:tbtn;
|
||||||
|
label1:tlabel;
|
||||||
|
label2:tlabel;
|
||||||
|
ck_first:tcheckbtn;
|
||||||
|
function Create(AOwner);override; //构造
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
end
|
||||||
|
function editor_config_close(o;e);
|
||||||
|
begin
|
||||||
|
e.skip := true;
|
||||||
|
o.Visible := false;
|
||||||
|
end
|
||||||
|
function bt_cancel_clk(o;e);
|
||||||
|
begin
|
||||||
|
o.Visible := false;
|
||||||
|
//calldatafunction(foncancel_clk,self,e);
|
||||||
|
end
|
||||||
|
function bt_ok_clk(o;e);
|
||||||
|
begin
|
||||||
|
calldatafunction(OnOkClicked,self,e);
|
||||||
|
end
|
||||||
|
function getdata();
|
||||||
|
begin
|
||||||
|
r := array();
|
||||||
|
r["cmt"]:= ck_align.Checked;
|
||||||
|
r["arraytype"]:= array("普通":1,"默认":0,"宽松":3)[cb_array.getCurrentItemText()];
|
||||||
|
r["syn"]:= ck_syn.checked;
|
||||||
|
r["sel"]:= ck_sel.checked;
|
||||||
|
r["matchidx"] := sp_i.value;
|
||||||
|
r["matchfirst"] := ck_first.Checked;
|
||||||
|
r["case"] := ck_case.Checked;
|
||||||
|
return r;
|
||||||
|
end
|
||||||
|
function setdata(d);
|
||||||
|
begin
|
||||||
|
if ifarray(d) then
|
||||||
|
begin
|
||||||
|
ck_align.Checked := (d["cmt"]=1);
|
||||||
|
cb_array.ItemIndex := (array(0:0,1:1,3:2))[d["arraytype"]];
|
||||||
|
ck_syn.Checked := d["syn"];
|
||||||
|
ck_sel.Checked := d["sel"];
|
||||||
|
sp_i.value := d["matchidx"];
|
||||||
|
ck_case.Checked := (d["case"]=1);
|
||||||
|
ck_first.Checked := (d["matchfirst"]=1);
|
||||||
|
end
|
||||||
|
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
|
||||||
|
if v["const"] then continue;
|
||||||
|
if v["static"] then continue;
|
||||||
|
invoke(self,v["name"],nil);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
[weakref]OnOkClicked;
|
||||||
|
end
|
||||||
|
|
@ -59,8 +59,8 @@ array(
|
||||||
"type":"form",
|
"type":"form",
|
||||||
"dir":""
|
"dir":""
|
||||||
),
|
),
|
||||||
"t_code_format_mgr":(
|
"t_editor_config":(
|
||||||
"name":"t_code_format_mgr",
|
"name":"t_editor_config",
|
||||||
"type":"form",
|
"type":"form",
|
||||||
"dir":""
|
"dir":""
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -509,7 +509,7 @@ type teditorform = class(TVCform) //
|
||||||
formIcon := GetIcon();
|
formIcon := GetIcon();
|
||||||
FEdter.Visible := true;
|
FEdter.Visible := true;
|
||||||
|
|
||||||
FFormatInfoWnd := NEW t_code_format_mgr(self);
|
FFormatInfoWnd := NEW t_editor_config(self);//t_code_format_mgr(self);
|
||||||
FFormatInfoWnd.Visible := false;
|
FFormatInfoWnd.Visible := false;
|
||||||
FFormatInfoWnd.WsDlgModalFrame := true;
|
FFormatInfoWnd.WsDlgModalFrame := true;
|
||||||
FFormatInfoWnd.Parent := self;
|
FFormatInfoWnd.Parent := self;
|
||||||
|
|
|
||||||
|
|
@ -169,11 +169,12 @@ type TPage=class(TCustomControl) //
|
||||||
begin
|
begin
|
||||||
if FItemIndex=i then //选中
|
if FItemIndex=i then //选中
|
||||||
begin
|
begin
|
||||||
dc.Brush.Color := 0xFa901E;
|
bc:= 0xFa901E;
|
||||||
end else
|
end else
|
||||||
begin
|
begin
|
||||||
dc.Brush.Color := 0xe4eeee;//rgb(228,228,228);//
|
bc := 0xe4eeee;//rgb(228,228,228);//
|
||||||
end
|
end
|
||||||
|
dc.brush.color := bc;
|
||||||
dc.draw("roundrect",array(rc[0:1],rc[2:3],array(5,5)));
|
dc.draw("roundrect",array(rc[0:1],rc[2:3],array(5,5)));
|
||||||
ny := integer(rc[1]+(rc[3]-rc[1]-16)/2);
|
ny := integer(rc[1]+(rc[3]-rc[1]-16)/2);
|
||||||
if it.BitmapB then
|
if it.BitmapB then
|
||||||
|
|
@ -2023,7 +2024,7 @@ type TEditer=class(TCustomcontrol) //
|
||||||
FSynClasses["tfm"]:= array(class(ttfmhighlighter),class(TSynCompletion),";tfm;");
|
FSynClasses["tfm"]:= array(class(ttfmhighlighter),class(TSynCompletion),";tfm;");
|
||||||
FSynClasses["None"]:= array(nil,nil,"");
|
FSynClasses["None"]:= array(nil,nil,"");
|
||||||
FTslChmHelp := new TTslChmHelp(_wapi);
|
FTslChmHelp := new TTslChmHelp(_wapi);
|
||||||
FCodeFormatInfo := array("wordct":80,"charct":200,"syn":true,"sel":false,"arraytype":0);
|
FCodeFormatInfo := array("wordct":80,"charct":200,"syn":true,"sel":false,"arraytype":0,"matchfirst":1,"matchidx":1,"case":false);
|
||||||
FPageEditer.OnDblClick := function(o,e)
|
FPageEditer.OnDblClick := function(o,e)
|
||||||
begin
|
begin
|
||||||
CreateAFile();
|
CreateAFile();
|
||||||
|
|
@ -3311,6 +3312,7 @@ type TEditer=class(TCustomcontrol) //
|
||||||
end
|
end
|
||||||
"查找":
|
"查找":
|
||||||
begin
|
begin
|
||||||
|
center_popup_wnd(FFindWnd,true);
|
||||||
FFindWnd.Show();
|
FFindWnd.Show();
|
||||||
end
|
end
|
||||||
"前进":
|
"前进":
|
||||||
|
|
@ -3612,7 +3614,7 @@ type TEditer=class(TCustomcontrol) //
|
||||||
end
|
end
|
||||||
ord("R"):
|
ord("R"):
|
||||||
begin
|
begin
|
||||||
InitShowWndPos(FFindWnd,"fr",200,150);
|
center_popup_wnd(FFindWnd,true);//InitShowWndPos(FFindWnd,"fr",200,150);
|
||||||
FFindWnd.oPENreplace();
|
FFindWnd.oPENreplace();
|
||||||
FFindWnd.Show();
|
FFindWnd.Show();
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -3627,7 +3629,7 @@ type TEditer=class(TCustomcontrol) //
|
||||||
end
|
end
|
||||||
ord("F"):
|
ord("F"):
|
||||||
begin
|
begin
|
||||||
InitShowWndPos(FFindWnd,"fr",200,150);
|
center_popup_wnd(FFindWnd,true);//InitShowWndPos(FFindWnd,"fr",200,150);
|
||||||
FFindWnd.OpenFind();
|
FFindWnd.OpenFind();
|
||||||
FFindWnd.Show();
|
FFindWnd.Show();
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -3814,7 +3816,11 @@ type TEditer=class(TCustomcontrol) //
|
||||||
end
|
end
|
||||||
function SetCodeFormatInfo(d);
|
function SetCodeFormatInfo(d);
|
||||||
begin
|
begin
|
||||||
if ifarray(d)then FCodeFormatInfo := d;
|
if ifarray(d)then
|
||||||
|
begin
|
||||||
|
FCodeFormatInfo := d;
|
||||||
|
settslsyninfo();
|
||||||
|
end
|
||||||
else return FCodeFormatInfo;
|
else return FCodeFormatInfo;
|
||||||
end
|
end
|
||||||
function getexecuteparams(f); //获得当前的执行参数
|
function getexecuteparams(f); //获得当前的执行参数
|
||||||
|
|
@ -4212,14 +4218,37 @@ type TEditer=class(TCustomcontrol) //
|
||||||
hc := CreateASynObject(n,self);
|
hc := CreateASynObject(n,self);
|
||||||
if hc then
|
if hc then
|
||||||
begin
|
begin
|
||||||
|
if n="tsl" then
|
||||||
|
begin
|
||||||
|
set_tsl_compinfo(hc[1]);
|
||||||
|
end
|
||||||
lns.Push(hc);
|
lns.Push(hc);
|
||||||
return hc;
|
return hc;
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
public
|
public
|
||||||
static Fhightercolor;
|
static Fhightercolor;
|
||||||
FExecuteEditer;
|
FExecuteEditer;
|
||||||
private
|
private
|
||||||
|
function settslsyninfo();
|
||||||
|
begin
|
||||||
|
lns := FSynHCS["tsl"];
|
||||||
|
if lns then
|
||||||
|
begin
|
||||||
|
for i := 0 to lns.length()-1 do
|
||||||
|
begin
|
||||||
|
vi := lns[i];
|
||||||
|
cp := vi[1];
|
||||||
|
set_tsl_compinfo(vi[1]);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function set_tsl_compinfo(cp);
|
||||||
|
begin
|
||||||
|
cp.minmatch := FCodeFormatInfo["matchidx"];
|
||||||
|
cp.IgnoreCase := not FCodeFormatInfo["case"];
|
||||||
|
cp.matchfirst := FCodeFormatInfo["matchfirst"];
|
||||||
|
end
|
||||||
function sethclor(cs);
|
function sethclor(cs);
|
||||||
begin
|
begin
|
||||||
Fhightercolor.colors := cs;
|
Fhightercolor.colors := cs;
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -67,6 +67,7 @@ function remotetslcallback(data);
|
||||||
function TslToHexFormatStr(tsl);
|
function TslToHexFormatStr(tsl);
|
||||||
function HexFormatStrToTsl(D);
|
function HexFormatStrToTsl(D);
|
||||||
function GetTextWidthAndHeightWidthFont(s,f,mul);
|
function GetTextWidthAndHeightWidthFont(s,f,mul);
|
||||||
|
function center_popup_wnd(wnd,f);//居中窗口
|
||||||
////////////////////////////////////
|
////////////////////////////////////
|
||||||
//Ó¦ÓÃ
|
//Ó¦ÓÃ
|
||||||
type tapplication=class(tcomponent)
|
type tapplication=class(tcomponent)
|
||||||
|
|
@ -4339,7 +4340,9 @@ type TDragImageList=class(TCustomImageList)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
protected
|
protected
|
||||||
procedure Initialize;override;
|
procedure Initialize();override;
|
||||||
|
begin
|
||||||
|
end
|
||||||
public
|
public
|
||||||
function create(Owner);override;
|
function create(Owner);override;
|
||||||
begin
|
begin
|
||||||
|
|
@ -6502,10 +6505,35 @@ function GetTextWidthAndHeightWidthFont(s,f,mul);//
|
||||||
begin
|
begin
|
||||||
return unit(utslvclgdi).GetTextWidthAndHeightWidthFont(s,f,mul);
|
return unit(utslvclgdi).GetTextWidthAndHeightWidthFont(s,f,mul);
|
||||||
end
|
end
|
||||||
function CallMessgeFunction(f,o,e); //执行消息回调
|
function CallMessgeFunction(f,o,e); //执行消息回调
|
||||||
begin
|
begin
|
||||||
return unit(utslvclauxiliary).CallMessgeFunction(f,o,e);
|
return unit(utslvclauxiliary).CallMessgeFunction(f,o,e);
|
||||||
end
|
end
|
||||||
|
function center_popup_wnd(wnd,f);
|
||||||
|
begin
|
||||||
|
////////////////////窗口居中处理/////////////////////////////////
|
||||||
|
////////////////////wnd待居中的窗口/////////////////////////////////
|
||||||
|
////////////////////pwnd父窗口/////////////////////////////////
|
||||||
|
if not((wnd is class(TWinControl)) and wnd.WsPopUp ) then return false;
|
||||||
|
pd := wnd.parent;
|
||||||
|
if pd and pd.Visible then
|
||||||
|
begin
|
||||||
|
while (ifnil(f) or f) and not(pd.wspopup) do
|
||||||
|
begin
|
||||||
|
npd := pd.parent;
|
||||||
|
if npd then pd := npd;
|
||||||
|
else break;
|
||||||
|
end
|
||||||
|
r := pd.ClientRect;
|
||||||
|
xy := pd.clienttoscreen(r[0],r[1]);
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
xy := array(0,0);
|
||||||
|
r := wnd._wapi.GetScreenRect();
|
||||||
|
end
|
||||||
|
wnd.Left := max(0,xy[0]+(r[2]-r[0]-wnd.width)/2) ;
|
||||||
|
wnd.top := max(0,xy[1]+(r[3]-r[1]-wnd.Height)/2);
|
||||||
|
end
|
||||||
/////////////////////////³õʼ»¯////////////////////////////////////
|
/////////////////////////³õʼ»¯////////////////////////////////////
|
||||||
function initallib();
|
function initallib();
|
||||||
begin
|
begin
|
||||||
|
|
|
||||||
|
|
@ -2784,7 +2784,7 @@ type TSynCompletion = class(TSynCompletionList)
|
||||||
end else
|
end else
|
||||||
begin
|
begin
|
||||||
x := xy[0]; y := xy[1];
|
x := xy[0]; y := xy[1];
|
||||||
SetBoundsRect(array(x,y,x+w,y+h)) ;
|
SetBoundsRect(array(x,y,x+w,y+h));
|
||||||
end
|
end
|
||||||
Show(SW_SHOWNOACTIVATE);
|
Show(SW_SHOWNOACTIVATE);
|
||||||
//Visible := true;
|
//Visible := true;
|
||||||
|
|
@ -2912,7 +2912,7 @@ type TSynCompletion = class(TSynCompletionList)
|
||||||
wd := max(wd,v["clen"]);
|
wd := max(wd,v["clen"]);
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
FCurrentWidth := wd;
|
FCurrentWidth := min(1500,wd);
|
||||||
SetData(d);
|
SetData(d);
|
||||||
if d then
|
if d then
|
||||||
SetCurrentSelection(0);
|
SetCurrentSelection(0);
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,7 @@ function rec_inc(rec,n); //
|
||||||
function get_tsl_mem_ptr(s,n);
|
function get_tsl_mem_ptr(s,n);
|
||||||
function Encode_Password(s); //加密
|
function Encode_Password(s); //加密
|
||||||
function Decode_Password(s);//解密
|
function Decode_Password(s);//解密
|
||||||
|
function complementary_color(c);//²¹É«¼ÆËã
|
||||||
type tuiglobaldata=class() //全局对象存储
|
type tuiglobaldata=class() //全局对象存储
|
||||||
static UIData;
|
static UIData;
|
||||||
class Function uisetdata(n,d);
|
class Function uisetdata(n,d);
|
||||||
|
|
@ -2682,6 +2683,10 @@ type tstr_step_match=class()
|
||||||
fcaches[""] := mrows(fits,1);
|
fcaches[""] := mrows(fits,1);
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
function set_init_find_indexs(idxs); //ÉèÖóõʼ¼¯ºÏ
|
||||||
|
begin
|
||||||
|
if ifarray(idxs) and idxs<>fcaches[""] then fcaches := array("":idxs);
|
||||||
|
end
|
||||||
private
|
private
|
||||||
function get_same_idexs(si,idxs);virtual; //直接判断全部
|
function get_same_idexs(si,idxs);virtual; //直接判断全部
|
||||||
begin
|
begin
|
||||||
|
|
@ -4542,6 +4547,10 @@ begin
|
||||||
if n>0 then return v+n;
|
if n>0 then return v+n;
|
||||||
return v;
|
return v;
|
||||||
end
|
end
|
||||||
|
function complementary_color(c);//²¹É«¼ÆËã
|
||||||
|
begin
|
||||||
|
return rgb((255-GetRValue(c)),(255-GetgValue(c)),(255-GetbValue(c)));
|
||||||
|
end
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
uinit();
|
uinit();
|
||||||
|
|
|
||||||
|
|
@ -340,11 +340,13 @@ type tcustomtabcontrol = class(TCustomControl)
|
||||||
CallMessgeFunction(fondrawtab,self(true),e);
|
CallMessgeFunction(fondrawtab,self(true),e);
|
||||||
continue;
|
continue;
|
||||||
end
|
end
|
||||||
dc.pen.color := 13158600;//rgb(200,200,200);
|
dc.pen.color := 13158600;//rgb(200,200,200);
|
||||||
if FCurrentid=i then
|
if FCurrentid=i then
|
||||||
begin
|
begin
|
||||||
dc.brush.color := 0xc0b0a0;//rgb(100,192,250);//rgb(230,240,250);//rgb(200,200,200);
|
bc:= 0xc0b0a0;//rgb(100,192,250);//rgb(230,240,250);//rgb(200,200,200);
|
||||||
end else dc.brush.color := 16711422;//rgb(254,254,254);
|
end else bc := 16711422;//rgb(254,254,254);
|
||||||
|
dc.brush.color := bc;
|
||||||
|
dc.font.color := complementary_color(bc);///////////采用补色
|
||||||
dc.draw("roundrect",array(rec[0:1],rec[2:3],array(2,2)));
|
dc.draw("roundrect",array(rec[0:1],rec[2:3],array(2,2)));
|
||||||
rec[1]+=2;
|
rec[1]+=2;
|
||||||
it := FTabItems[i];
|
it := FTabItems[i];
|
||||||
|
|
|
||||||
|
|
@ -678,7 +678,7 @@ type tcustomcheckbtn=class(tcustombtn) //checkbtn
|
||||||
end
|
end
|
||||||
function BMSETCHECK(o,e):BM_SETCHECK;virtual;
|
function BMSETCHECK(o,e):BM_SETCHECK;virtual;
|
||||||
begin
|
begin
|
||||||
FcheckState := e.wparam;
|
FcheckState := integer(e.wparam);
|
||||||
InvalidateRect(nil,false);
|
InvalidateRect(nil,false);
|
||||||
end
|
end
|
||||||
function GetPreferredSize(w,h);override;
|
function GetPreferredSize(w,h);override;
|
||||||
|
|
@ -3645,10 +3645,11 @@ type TcustomListBox=class(TCustomListBoxbase)
|
||||||
end
|
end
|
||||||
idx := GetIdxByYpos(y);
|
idx := GetIdxByYpos(y);
|
||||||
if idx<0 then return;
|
if idx<0 then return;
|
||||||
if FMultisel=2 then
|
if FMultisel=2 then //非连续选择
|
||||||
begin
|
begin
|
||||||
|
|
||||||
end else
|
end else
|
||||||
if idx <> FSelEnd then
|
if idx <> FSelEnd then //连续
|
||||||
begin
|
begin
|
||||||
IncPaintLock();
|
IncPaintLock();
|
||||||
SelRange(false);
|
SelRange(false);
|
||||||
|
|
@ -3671,6 +3672,7 @@ type TcustomListBox=class(TCustomListBoxbase)
|
||||||
@param(rc)(array) 绘制区域%%
|
@param(rc)(array) 绘制区域%%
|
||||||
@param(cvs)(tcustomcanvas) 画布 %%
|
@param(cvs)(tcustomcanvas) 画布 %%
|
||||||
**}
|
**}
|
||||||
|
bkfc := cvs.font.Color;
|
||||||
r := PaintIdxBkg(idx,rc,cvs);
|
r := PaintIdxBkg(idx,rc,cvs);
|
||||||
rc1 := rc;
|
rc1 := rc;
|
||||||
rc1[4]:=r;
|
rc1[4]:=r;
|
||||||
|
|
@ -3697,6 +3699,7 @@ type TcustomListBox=class(TCustomListBoxbase)
|
||||||
rc1[0]+=nh+5;
|
rc1[0]+=nh+5;
|
||||||
end
|
end
|
||||||
PaintIdexText(idx,rc1,cvs);
|
PaintIdexText(idx,rc1,cvs);
|
||||||
|
cvs.font.Color := bkfc;
|
||||||
end
|
end
|
||||||
function PaintIdexText(idx,rc,cvs);virtual;
|
function PaintIdexText(idx,rc,cvs);virtual;
|
||||||
begin
|
begin
|
||||||
|
|
@ -4132,6 +4135,7 @@ type TcustomListBox=class(TCustomListBoxbase)
|
||||||
begin
|
begin
|
||||||
cvs.brush.Color := fselbkcolor;//0xFFE7CB;//rgb(204,231,255);
|
cvs.brush.Color := fselbkcolor;//0xFFE7CB;//rgb(204,231,255);
|
||||||
cvs.FillRect(rc);
|
cvs.FillRect(rc);
|
||||||
|
if (fselbkcolor .& 0xff000000)<1 then cvs.font.Color := complementary_color(fselbkcolor);
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return r;
|
return r;
|
||||||
|
|
@ -5925,6 +5929,8 @@ type TcustomStatusBar=class(TCustomControl)
|
||||||
function create(AOwner);override;
|
function create(AOwner);override;
|
||||||
begin
|
begin
|
||||||
FItemOder := 0;
|
FItemOder := 0;
|
||||||
|
fsimpletext := "";
|
||||||
|
fsimplepanel := 0;
|
||||||
inherited;
|
inherited;
|
||||||
height := 25;
|
height := 25;
|
||||||
Align := alBottom;
|
Align := alBottom;
|
||||||
|
|
@ -5935,6 +5941,11 @@ type TcustomStatusBar=class(TCustomControl)
|
||||||
c := clientRect;
|
c := clientRect;
|
||||||
FCwid := c[2];
|
FCwid := c[2];
|
||||||
FCHei := c[3];
|
FCHei := c[3];
|
||||||
|
if fsimplepanel then
|
||||||
|
begin
|
||||||
|
cvs := Canvas;
|
||||||
|
return DrawStatItem(cvs,array("text":fsimpletext),c);
|
||||||
|
end
|
||||||
if FItemOder then return paintb();
|
if FItemOder then return paintb();
|
||||||
painta();
|
painta();
|
||||||
end
|
end
|
||||||
|
|
@ -5949,6 +5960,7 @@ type TcustomStatusBar=class(TCustomControl)
|
||||||
if not(wd>0)then wd := 100;
|
if not(wd>0)then wd := 100;
|
||||||
Fitems[Length(Fitems)]:= array("text":str,"width":wd);
|
Fitems[Length(Fitems)]:= array("text":str,"width":wd);
|
||||||
if faddlock then return 0;
|
if faddlock then return 0;
|
||||||
|
if fsimplepanel then return ;
|
||||||
if HandleAllocated()then
|
if HandleAllocated()then
|
||||||
begin
|
begin
|
||||||
InvalidateRect(nil,false);
|
InvalidateRect(nil,false);
|
||||||
|
|
@ -5962,6 +5974,7 @@ type TcustomStatusBar=class(TCustomControl)
|
||||||
**}
|
**}
|
||||||
if not(itemidok(idx))then return -1;
|
if not(itemidok(idx))then return -1;
|
||||||
deleteindex(Fitems,idx,true);
|
deleteindex(Fitems,idx,true);
|
||||||
|
if fsimplepanel then return ;
|
||||||
if HandleAllocated()then
|
if HandleAllocated()then
|
||||||
begin
|
begin
|
||||||
InValidateRect(nil,false);
|
InValidateRect(nil,false);
|
||||||
|
|
@ -5977,6 +5990,7 @@ type TcustomStatusBar=class(TCustomControl)
|
||||||
if not ifstring(str)then return -1;
|
if not ifstring(str)then return -1;
|
||||||
if not(itemidok(idx))then return -1;
|
if not(itemidok(idx))then return -1;
|
||||||
Fitems[idx,"text"]:= str;
|
Fitems[idx,"text"]:= str;
|
||||||
|
if fsimplepanel then return ;
|
||||||
if HandleAllocated()then
|
if HandleAllocated()then
|
||||||
begin
|
begin
|
||||||
InvalidateRect(nil,false);
|
InvalidateRect(nil,false);
|
||||||
|
|
@ -5996,12 +6010,16 @@ type TcustomStatusBar=class(TCustomControl)
|
||||||
property Items:statusitems read Fitems Write SetItems;
|
property Items:statusitems read Fitems Write SetItems;
|
||||||
property itemtext:string read gettexti write settexti;
|
property itemtext:string read gettexti write settexti;
|
||||||
property itemwidth:integer read getwidthi write setwidthi;
|
property itemwidth:integer read getwidthi write setwidthi;
|
||||||
property itemorder:bool read FItemOder write setitemorder;
|
property itemorder:bool read FItemOder write setitemorder;
|
||||||
|
property simplepanel:bool read fsimplepanel write set_simplepanel;
|
||||||
|
property simpletext:string read fsimpletext write set_simpletext;
|
||||||
{**
|
{**
|
||||||
@param(Items)(array)设置项 ,二维数组包括 text ,width 两个字段 array(("text":"abc","width":200),("text":"part2","width":0.4))%%
|
@param(Items)(array)设置项 ,二维数组包括 text ,width 两个字段 array(("text":"abc","width":200),("text":"part2","width":0.4))%%
|
||||||
@param(itemtext)(string) 通过索引获取设置文本%%
|
@param(itemtext)(string) 通过索引获取设置文本%%
|
||||||
@param(itemwidth)(integer) 通过索引设置获取宽度%%
|
@param(itemwidth)(integer) 通过索引设置获取宽度%%
|
||||||
@param(itemorder)(bool) item展示排序,默认false从左到右,true为从右到左%%
|
@param(itemorder)(bool) item展示排序,默认false从左到右,true为从右到左%%
|
||||||
|
@param(simplepanel)(bool) 简单面板,只是显示一个字符串%%
|
||||||
|
@param(simpletext)(string) 简单面板模式下显示的字符串%%
|
||||||
**}
|
**}
|
||||||
private
|
private
|
||||||
faddlock;//添加锁定刷新
|
faddlock;//添加锁定刷新
|
||||||
|
|
@ -6009,7 +6027,26 @@ type TcustomStatusBar=class(TCustomControl)
|
||||||
FCwid;//宽度
|
FCwid;//宽度
|
||||||
FCHei;//高度
|
FCHei;//高度
|
||||||
FItemOder;//排序
|
FItemOder;//排序
|
||||||
private
|
fsimpletext;
|
||||||
|
fsimplepanel;
|
||||||
|
private
|
||||||
|
function set_simplepanel(v);
|
||||||
|
begin
|
||||||
|
nv := v?true:false;
|
||||||
|
if nv<>fsimplepanel then
|
||||||
|
begin
|
||||||
|
fsimplepanel := nv;
|
||||||
|
InvalidateRect(nil,false);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function set_simpletext(s);
|
||||||
|
begin
|
||||||
|
if ifstring(s) and s<>fsimpletext then
|
||||||
|
begin
|
||||||
|
fsimpletext := s;
|
||||||
|
if fsimplepanel then InvalidateRect(nil,false);
|
||||||
|
end
|
||||||
|
end
|
||||||
function itemidok(id);
|
function itemidok(id);
|
||||||
begin
|
begin
|
||||||
ct := length(Fitems);
|
ct := length(Fitems);
|
||||||
|
|
@ -6075,6 +6112,7 @@ type TcustomStatusBar=class(TCustomControl)
|
||||||
if nv<>FItemOder then
|
if nv<>FItemOder then
|
||||||
begin
|
begin
|
||||||
FItemOder := nv;
|
FItemOder := nv;
|
||||||
|
if fsimplepanel then return ;
|
||||||
if FItems then
|
if FItems then
|
||||||
InvalidateRect(nil,false);
|
InvalidateRect(nil,false);
|
||||||
end
|
end
|
||||||
|
|
|
||||||
BIN
tsleditor.exe
BIN
tsleditor.exe
Binary file not shown.
BIN
tslvcltool.exe
BIN
tslvcltool.exe
Binary file not shown.
Loading…
Reference in New Issue