编辑器

优化标签关闭
This commit is contained in:
JianjunLiu 2023-03-21 10:06:51 +08:00
parent 55f110df48
commit 3205732fdf
1 changed files with 71 additions and 28 deletions

View File

@ -258,6 +258,11 @@ type TPage=class(TCustomControl) //
begin
CallSelChanged();
end
end else
if idx<FItemIndex then
begin
FItemIndex := FItemIndex-1;
FCurrentItem := FPageItems[FItemIndex];
end
InValidateRect(nil,false);
end
@ -1773,7 +1778,7 @@ type TEditer=class(TCustomcontrol) //
FListPages.Visible := false;
////////////////////////////
FPageMenu := new TPopUpMenu(self);
for i,v in array("关闭","关闭其他标签","复制文件名","复制文件全名","重新加载","打开目录","另存为") do
for i,v in array("关闭","关闭其他标签","关闭左侧所有","关闭右侧所有","复制文件名","复制文件全名","重新加载","打开目录","另存为") do
begin
mi := new TMenu(self);
mi.Caption := v;
@ -1956,6 +1961,7 @@ type TEditer=class(TCustomcontrol) //
begin
return FPageEditer.pageitemcount;
end
function CloseAllPageItems(it);
begin
its := FPageEditer.PageItems;
@ -2311,19 +2317,13 @@ type TEditer=class(TCustomcontrol) //
end
EditerCaretChanged(it.FEditer,nil);
end
function PageMenuClick(o,e);
begin
it := GetCurrentItem();
if not it then return;
case o.Caption of
"关闭":
function docloseapageitem(it);
begin
if it.fisnewfile then //单独处理新建关闭
begin
f := it.OrigScriptPath;
DeletePageItem(it);
if fileexists("",f) then filedelete("",f);
return ;
end
if JudgeItemState(it)then return;
@ -2345,6 +2345,49 @@ type TEditer=class(TCustomcontrol) //
end
DeletePageItem(it);
end
function PageMenuClick(o,e);
begin
it := GetCurrentItem();
if not it then return;
case o.Caption of
"关闭":
begin
docloseapageitem(it);
end
"关闭左侧所有":
begin
its := GetAllPageItems();
itss := array();
for i := 0 to its.Length()-1 do
begin
iti := its[i];
if iti=it then break ;
itss[i] := iti;
end
for i,iti in itss do
begin
docloseapageitem(iti);
end
end
"关闭右侧所有":
begin
dodel := 0;
its := GetAllPageItems();
itss := array();
for i := 0 to its.Length()-1 do
begin
itss[i] := its[i];
end
for i,iti in itss do
begin
if dodel then docloseapageitem(iti);
if iti=it then
begin
dodel := 1;
end ;
end
end
"关闭其他标签":
begin
Cit := it;