diff --git a/designer/utslcodeeditor.tsf b/designer/utslcodeeditor.tsf index f9fdc1c..7ebace5 100644 --- a/designer/utslcodeeditor.tsf +++ b/designer/utslcodeeditor.tsf @@ -2241,7 +2241,7 @@ type TEditer=class(TCustomcontrol) // lt := it.GetLastLoadTime(); nlt := it.ReGetLastLoadTime(); if not lt then return; - if nlt <> lt then + if (nlt <> lt) then //文件改变了 begin FPageEditer.FCanDraged := false; FPageEditer.MouseDrageLeave(); //此处不知为什么会报错 @@ -2258,6 +2258,10 @@ type TEditer=class(TCustomcontrol) // end end else //被其他程序修改 begin + if (it.FEditer.ChangedFlag = false) and fcloseflag then + begin + return ; + end if Messageboxa(format("%s\r\n被其他程序修改是否重新加载",it.ScriptPath),"提示",mb_YesNo,self)=IDYES then begin LoadFromFile(it,true); @@ -2362,7 +2366,7 @@ type TEditer=class(TCustomcontrol) // case o.Caption of "关闭": begin - docloseapageitem(it); + docloseapageitem(it); end "关闭左侧所有": begin @@ -2374,11 +2378,17 @@ type TEditer=class(TCustomcontrol) // if iti=it then break ; itss[i] := iti; end - for i,iti in itss do - begin - docloseapageitem(iti); - end + fcloseflag := true; + try + for i,iti in itss do + begin + docloseapageitem(iti); + end + finally + fcloseflag := false; + end; if itss then FPageEditer.CallSelChanged(); + end "关闭右侧所有": begin @@ -2389,20 +2399,27 @@ type TEditer=class(TCustomcontrol) // 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 + fcloseflag := true; + try + for i,iti in itss do + begin + if dodel then docloseapageitem(iti); + if iti=it then + begin + dodel := 1; + end ; + end + finally + fcloseflag := false; + end; if dodel then FPageEditer.CallSelChanged(); end "关闭其他标签": begin Cit := it; its := GetAllPageItems(); + fcloseflag := true; + try for i := 0 to its.Length()-1 do begin it := its[i]; @@ -2424,6 +2441,9 @@ type TEditer=class(TCustomcontrol) // end end CloseAllPageItems(Cit); + finally + fcloseflag := false; + end; end "另存为": begin @@ -4136,6 +4156,7 @@ type TEditer=class(TCustomcontrol) // FOpenHistory; FHistoryWnd; FTslDebug; + fcloseflag; private function GetFilesFormSearchInfo(d); begin