设计器
优化体验
This commit is contained in:
@@ -1196,12 +1196,24 @@ type TVclDesigner = class(tvcform)
|
||||
begin
|
||||
v._tag := array(thisfunction(saveCurrentForm),v.onclick);
|
||||
v.onclick := function(o,e)
|
||||
begin
|
||||
for i,v in o._tag do
|
||||
begin
|
||||
CallDataFunction(v,o,e);
|
||||
end
|
||||
end
|
||||
begin
|
||||
for i,v in o._tag do
|
||||
begin
|
||||
CallDataFunction(v,o,e);
|
||||
end
|
||||
end
|
||||
end
|
||||
ebtn := FProjectManager.FTslEditer.gettoolbarbtn((3->13));//处理其他的工具按钮
|
||||
for i,v in ebtn do
|
||||
begin
|
||||
v._tag := array(function(o,e)begin FProjectManager.ShowEditor(); end ,v.onclick);
|
||||
v.onclick := function(o,e)
|
||||
begin
|
||||
for i,v in o._tag do
|
||||
begin
|
||||
CallDataFunction(v,o,e);
|
||||
end
|
||||
end
|
||||
end
|
||||
tlbar.Align := alLeft;
|
||||
tlbar.width :=450;
|
||||
|
||||
@@ -489,6 +489,7 @@ type TProjectView = class(TVCForm) //
|
||||
FOpenMenu.OnClick := thisfunction(OpenTreeNode);
|
||||
FOpenMenu.parent := fpm;
|
||||
FTree.OnSelChanged := thisfunction(TreeNodeChanged);
|
||||
ftree.OnSelChanging := thisfunction(treenodechanging);
|
||||
FTree.OnDblClick := function(o,e)
|
||||
begin
|
||||
OpenTreeNode();
|
||||
@@ -499,6 +500,7 @@ type TProjectView = class(TVCForm) //
|
||||
end
|
||||
function setnodesel(nd);
|
||||
begin
|
||||
if fopenbuzy then return ;
|
||||
ftree.setsel(nd);
|
||||
end
|
||||
function OpenTreeNode(); //打开当前节点
|
||||
@@ -517,8 +519,16 @@ type TProjectView = class(TVCForm) //
|
||||
OpenFileByName(cn.FName);
|
||||
end
|
||||
end
|
||||
function treenodechanging(o,e);
|
||||
begin
|
||||
if fopenbuzy then
|
||||
begin
|
||||
e.skip := true;
|
||||
end
|
||||
end
|
||||
function TreeNodeChanged(o,e); //节点切换
|
||||
begin
|
||||
|
||||
if FTree.PopUpMenu then
|
||||
begin
|
||||
it := e.itemnew;
|
||||
@@ -772,6 +782,7 @@ type TProjectView = class(TVCForm) //
|
||||
|
||||
function OpenFileByName(n); //打开文件
|
||||
begin
|
||||
if fopenbuzy then return ;
|
||||
fio := ioFileseparator();
|
||||
if not(n and ifstring(n)) then return FDesigner.ExecuteCommand("hiddrennode",nil);;
|
||||
nopend := FTree.NameInTree(n,nil,true);
|
||||
@@ -784,6 +795,7 @@ type TProjectView = class(TVCForm) //
|
||||
begin
|
||||
return 0;
|
||||
end
|
||||
|
||||
FCurrentOpend := nopend;
|
||||
case FCurrentOpend["type"]of
|
||||
"tsl","tsf":
|
||||
@@ -816,6 +828,8 @@ type TProjectView = class(TVCForm) //
|
||||
return messageboxa("非窗口类,或者该文件已经损坏","错误",0,self);
|
||||
end
|
||||
//打开界面
|
||||
|
||||
fopenbuzy := true;
|
||||
FDesigner.caption := "TVCL界面设计器 "+FprojName+"->"+FCurrentOpend["name"];
|
||||
FTmfParser.fssourdirs := FCurrentOpend.gettmfdirs();
|
||||
tfm := FCurrentOpend.gettmfname();
|
||||
@@ -833,6 +847,7 @@ type TProjectView = class(TVCForm) //
|
||||
FDesigner.LoadTreeNode(FTmfParser,inh,FCurrentOpend);
|
||||
FDesigner.EditerCodeChanged();
|
||||
end
|
||||
fopenbuzy := false;
|
||||
end else
|
||||
begin
|
||||
FDesigner.ExecuteCommand("hiddrennode",nil);
|
||||
@@ -842,6 +857,7 @@ type TProjectView = class(TVCForm) //
|
||||
return;
|
||||
end
|
||||
end
|
||||
fopenbuzy := false;
|
||||
end
|
||||
function getwindowinherited2(fn);
|
||||
begin
|
||||
@@ -1667,6 +1683,7 @@ end
|
||||
FTslEditer;
|
||||
property tree read ftree;
|
||||
private
|
||||
fopenbuzy;
|
||||
end
|
||||
|
||||
type TTslEditer = class(TEditer)
|
||||
|
||||
@@ -2144,8 +2144,19 @@ type TEditer=class(TCustomcontrol) //
|
||||
begin
|
||||
return fcoolbar;//FToolbar;
|
||||
end
|
||||
function gettoolbarbtn();
|
||||
function gettoolbarbtn(idxs);
|
||||
begin
|
||||
if ifarray(idxs) then
|
||||
begin
|
||||
r := array();
|
||||
ri := 0;
|
||||
for i,v in idxs do
|
||||
begin
|
||||
bi := ftoolbara.getbtnbyindex(v);
|
||||
if bi then r[ri++] := bi;
|
||||
end
|
||||
return r;
|
||||
end
|
||||
return array(ftoolbara.getbtnbyindex(1),ftoolbara.getbtnbyindex(2));
|
||||
end
|
||||
function ShowLogWnd(flg);
|
||||
|
||||
Reference in New Issue
Block a user