界面库

整理代码
This commit is contained in:
JianjunLiu 2022-10-11 17:03:09 +08:00
parent 3546020970
commit 444603eb38
7 changed files with 439 additions and 361 deletions

View File

@ -18,7 +18,7 @@ type TVclDesigner = class(tvcform)
fwindowinfos; //窗口文件节点存储对象 fwindowinfos; //窗口文件节点存储对象
fcutcopyinfo;//复制的信息 fcutcopyinfo;//复制的信息
FChmHelper; //帮助文档 FChmHelper; //帮助文档
FImageList; //ͼ±ê fdimagelist; //图标
FViewBitmap; //图片管理器 FViewBitmap; //图片管理器
FVariableSelecter; //当前控件树的变量 FVariableSelecter; //当前控件树的变量
FFunctionSelecter; //当前控件树的函数 FFunctionSelecter; //当前控件树的函数
@ -68,12 +68,12 @@ type TVclDesigner = class(tvcform)
**} **}
for i,v in class(TDComponent).GetClassItem() do for i,v in class(TDComponent).GetClassItem() do
begin begin
FImageList.RegisterDitem(v); fdimagelist.RegisterDitem(v);
//if not v.InToolBar() then continue; //if not v.InToolBar() then continue;
tb := new TToolButton(self); tb := new TToolButton(self);
tb.caption := v.HitTip; tb.caption := v.HitTip;
tb.Enabled := v.InToolBar(); tb.Enabled := v.InToolBar();
ig := FImageList.GetImageId(V.dclassname); ig := fdimagelist.GetImageId(V.dclassname);
tb.imageid := ig; tb.imageid := ig;
v.Imgs := ig; v.Imgs := ig;
tb._tag := v; tb._tag := v;
@ -296,7 +296,7 @@ type TVclDesigner = class(tvcform)
end end
return r; return r;
end end
public public //设计器工程
function OpenFileFromTpjFile(); //从文件打开工程 function OpenFileFromTpjFile(); //从文件打开工程
begin begin
FProjectFileOpener.caption := "打开"; FProjectFileOpener.caption := "打开";
@ -448,7 +448,7 @@ type TVclDesigner = class(tvcform)
) )
); );
end end
public public //编辑器中代码操作
function DeleFiledFromEdit(n,nn); //删除变量 function DeleFiledFromEdit(n,nn); //删除变量
begin begin
if FTree.Loading then return ; if FTree.Loading then return ;
@ -478,7 +478,7 @@ type TVclDesigner = class(tvcform)
begin begin
FProjectManager.SetProjectInfo(n); FProjectManager.SetProjectInfo(n);
end end
private private //设计器控件的事件响应
function tablelines(str,n); function tablelines(str,n);
begin begin
lines := str2array(str,"\r\n"); lines := str2array(str,"\r\n");
@ -573,7 +573,7 @@ type TVclDesigner = class(tvcform)
end end
end end
public public //控件选中
//**************************************** //****************************************
function CreateComponent(); //构造控件 function CreateComponent(); //构造控件
begin begin
@ -642,7 +642,7 @@ type TVclDesigner = class(tvcform)
setcomponentfocus(wd,true); setcomponentfocus(wd,true);
return t.SelectedNode(); return t.SelectedNode();
end end
private private //右键菜单处理
function RClickComponent(o,e); //右键控件窗口 function RClickComponent(o,e); //右键控件窗口
begin begin
{** {**
@ -679,7 +679,7 @@ type TVclDesigner = class(tvcform)
end end
end end
//FClickTime; //FClickTime;
public public //双击添加事件到代码
function addandopeneventbyname(nd,n); //打开事件函数位置 function addandopeneventbyname(nd,n); //打开事件函数位置
begin begin
if nd then if nd then
@ -736,7 +736,7 @@ type TVclDesigner = class(tvcform)
if o then AddAndOPenEvent(o._tag); if o then AddAndOPenEvent(o._tag);
if e then e.skip := true; if e then e.skip := true;
end end
private private //节点点击
function ClickComponent(o,e); //点击组件选择 function ClickComponent(o,e); //点击组件选择
begin begin
{** {**
@ -821,7 +821,7 @@ type TVclDesigner = class(tvcform)
**} **}
FProjectManager.CloseCurrentEdit(nil,true); FProjectManager.CloseCurrentEdit(nil,true);
end end
public public //设计器中绑定事件
function BindCwndMessage(wnd); //给控件绑定处理函数 function BindCwndMessage(wnd); //给控件绑定处理函数
begin begin
{** {**
@ -865,7 +865,7 @@ type TVclDesigner = class(tvcform)
fwindowinfos.deletedata(wndnode); fwindowinfos.deletedata(wndnode);
tr.Recycling(); tr.Recycling();
end end
private private //不同窗口切换
function hidenatree(nd);//隐藏控件树 function hidenatree(nd);//隐藏控件树
begin begin
FCurrentNode := nil; FCurrentNode := nil;
@ -929,10 +929,14 @@ type TVclDesigner = class(tvcform)
end end
end end
end end
public public //加载以及处理
function ExecuteCommand(cmd,p);override; function ExecuteCommand(cmd,p);override;
begin begin
case cmd of case cmd of
"imglist":
begin
return fdimagelist;
end
"allopendnod": "allopendnod":
begin begin
r := array(); r := array();
@ -1021,7 +1025,7 @@ type TVclDesigner = class(tvcform)
it := new TDPanelForm(); it := new TDPanelForm();
end else return ; end else return ;
it.dclassname(d["class"]); it.dclassname(d["class"]);
it.Imgs := FImageList.GetImageId("tdcreateform"); it.Imgs := fdimagelist.GetImageId("tdcreateform");
end end
comp := it.ComponentCreater(node,wr); comp := it.ComponentCreater(node,wr);
comp.name := d["name"]; comp.name := d["name"];
@ -1160,9 +1164,9 @@ type TVclDesigner = class(tvcform)
Mobjinspect(); Mobjinspect();
onactivate := thisfunction(OnDesignerActivate); onactivate := thisfunction(OnDesignerActivate);
FImageList := new TDesigImageList(self); fdimagelist := new TDesigImageList(self);
//FTree.Imagelist := FImageList; //FTree.Imagelist := fdimagelist;
fwindowinfos := new tfilesinfo(self,thisfunction(ClickTreeNode),FImageList,tparent); fwindowinfos := new tfilesinfo(self,thisfunction(ClickTreeNode),fdimagelist,tparent);
//******************toolbar *************** //******************toolbar ***************
tlbar := FProjectManager.FTslEditer.gettoolbar(); tlbar := FProjectManager.FTslEditer.gettoolbar();
savebtn := FProjectManager.FTslEditer.gettoolbarbtn(); savebtn := FProjectManager.FTslEditer.gettoolbarbtn();
@ -1186,7 +1190,7 @@ type TVclDesigner = class(tvcform)
sp1.parent := self; sp1.parent := self;
FToolBars := new TDesignertoolbars(self); FToolBars := new TDesignertoolbars(self);
FToolBars.parent := self; FToolBars.parent := self;
FToolBars.Imagelist := FImageList; FToolBars.Imagelist := fdimagelist;
FToolBars.Font.width := 9; FToolBars.Font.width := 9;
FToolBars.Font.height := 18; FToolBars.Font.height := 18;
@ -1207,7 +1211,7 @@ type TVclDesigner = class(tvcform)
end end
property VariableSelecter read FVariableSelecter; //当前控件树的变量对象 property VariableSelecter read FVariableSelecter; //当前控件树的变量对象
private private //其他资源函数
function ViewBitmap(o,e); function ViewBitmap(o,e);
begin begin
if not FViewBitmap then if not FViewBitmap then
@ -1364,7 +1368,9 @@ type tfilesinfo = class() //
if not nd then if not nd then
begin begin
tr := new TComponentTree(fdesginer); tr := new TComponentTree(fdesginer);
img := fdesginer.ExecuteCommand("imglist");
tr.visible := false; tr.visible := false;
tr.ImageList := img;
tr.Align := tr.alClient; tr.Align := tr.alClient;
tr.parent := fparent; tr.parent := fparent;
tr.onselchanged := fcompclick; tr.onselchanged := fcompclick;
@ -1593,7 +1599,7 @@ type TDesignertoolbars = class(TPageControl) //
st.caption := t; st.caption := t;
tb := new ttoolbar(self); tb := new ttoolbar(self);
tb.align := alClient; tb.align := alClient;
if t<>"·Çµã»÷Ìí¼Ó¿Ø¼þ" then if t<>"隐藏" then
begin begin
st.parent := self; st.parent := self;
tb.parent := st; tb.parent := st;

View File

@ -237,8 +237,12 @@ type TProjectView = class(TVCForm) //
end end
FFilterList.SetData(d); FFilterList.SetData(d);
end end
function saveformcode(); //±£´æµ±Ç°class function saveformcode(fn); //±£´æµ±Ç°class
begin begin
if ifstring(fn) and fn then
begin
it := FTslEditer.OpenAndGoLineByName(fn);
end else
it := FTslEditer.GetCurrentItem(); it := FTslEditer.GetCurrentItem();
FTslEditer.SavePageItem(it); FTslEditer.SavePageItem(it);
end end
@ -682,7 +686,7 @@ type TProjectView = class(TVCForm) //
begin begin
r := FCurrentOpend.gettsfname(); r := FCurrentOpend.gettsfname();
FTslEditer.Addfiled(r,n); FTslEditer.Addfiled(r,n);
saveformcode(); saveformcode(r);
end end
end end
function adduses(lbs); //添加成员 function adduses(lbs); //添加成员
@ -691,7 +695,7 @@ type TProjectView = class(TVCForm) //
begin begin
r := FCurrentOpend.gettsfname(); r := FCurrentOpend.gettsfname();
FTslEditer.adduses(r,lbs); FTslEditer.adduses(r,lbs);
saveformcode(); saveformcode(r);
end end
end end
@ -701,7 +705,7 @@ type TProjectView = class(TVCForm) //
begin begin
r := FCurrentOpend.gettsfname(); r := FCurrentOpend.gettsfname();
FTslEditer.Delfiled(r,n,nn); FTslEditer.Delfiled(r,n,nn);
saveformcode(); saveformcode(r);
end end
end end
function AddAFunction(ff); //添加函数 function AddAFunction(ff); //添加函数
@ -711,15 +715,16 @@ type TProjectView = class(TVCForm) //
s := createtslfunction(ff); s := createtslfunction(ff);
fn := FCurrentOpend.gettsfname(); fn := FCurrentOpend.gettsfname();
r := FTslEditer.AddFunction(fn,ff["name"],s); r := FTslEditer.AddFunction(fn,ff["name"],s);
saveformcode(); saveformcode(fn);
ShowEditor(); ShowEditor();
return r; return r;
end end
end end
function GoToAFunction(n); //跳转到函数 function GoToAFunction(n); //跳转到函数
begin begin
r := FTslEditer.GoToFunction(FCurrentOpend.gettsfname(),n); fn := FCurrentOpend.gettsfname();
saveformcode(); r := FTslEditer.GoToFunction(fn,n);
saveformcode(fn);
ShowEditor(); ShowEditor();
return r; return r;
end end
@ -754,13 +759,15 @@ type TProjectView = class(TVCForm) //
begin begin
//打开class //打开class
fn := FCurrentOpend.gettsfname(); fn := FCurrentOpend.gettsfname();
if FTslEditer.getpageitemcount()<1 then
it := FTslEditer.OpenAndGotoFileByName(fn); it := FTslEditer.OpenAndGotoFileByName(fn);
else it := FTslEditer.OpenAndGoLineByName(fn);
if not it then if not it then
begin begin
FCurrentOpend := nil; FCurrentOpend := nil;
return messageboxa("文件不存在","错误",0,self); return messageboxa("文件不存在","错误",0,self);
end end
classinfo := FTslEditer.GetClassInfo(); classinfo := FTslEditer.GetClassInfo(it);
if not(ifarray(classinfo)and classinfo)then if not(ifarray(classinfo)and classinfo)then
begin begin
FCurrentOpend := nil; FCurrentOpend := nil;
@ -1642,7 +1649,14 @@ BD141CA912494F502D48D224F45050274A21E03806FF2C7CA7516022D7D000000
end end
function GetClassInfo(n); //获得信息 function GetClassInfo(n); //获得信息
begin begin
if n and ifstring(n)then it := OpenAndGotoFileByName(n); if n and ifstring(n)then
begin
it := OpenAndGotoFileByName(n);
end else
if ifobj(n) then
begin
it := n;
end
else it := GetCurrentItem(); else it := GetCurrentItem();
if it then if it then
begin begin

View File

@ -467,6 +467,7 @@ type TPage=class(TCustomControl) //
property CloseBtn read FCloseBtn write SetCloseBtn; property CloseBtn read FCloseBtn write SetCloseBtn;
property Lines read FLines; property Lines read FLines;
property PageItems read FPageItems; property PageItems read FPageItems;
property pageitemcount read getpageitemcount;
property ItemIndex read FItemIndex write SetItemIndex; property ItemIndex read FItemIndex write SetItemIndex;
protected protected
function CallSelChanged();virtual; function CallSelChanged();virtual;
@ -579,6 +580,10 @@ F47AC96526C21CCB26FD326A2180CC21F5CAC302CA5C842B865FD9D7003D1F17B
DoControlAlign(); DoControlAlign();
end end
end end
function getpageitemcount();
begin
return FPageItems.length();
end
function SetItemIndex(idx); function SetItemIndex(idx);
begin begin
if idx >= 0 and idx<FPageItems.Length()and idx <> FItemIndex then if idx >= 0 and idx<FPageItems.Length()and idx <> FItemIndex then
@ -1913,6 +1918,10 @@ type TEditer=class(TCustomcontrol) //
end end
end end
end end
function getpageitemcount(); //获得页面数量
begin
return FPageEditer.pageitemcount;
end
function CloseAllPageItems(it); function CloseAllPageItems(it);
begin begin
its := FPageEditer.PageItems; its := FPageEditer.PageItems;
@ -5084,62 +5093,15 @@ begin
r["打开文件"]:= getopenfilebmpinfo(); r["打开文件"]:= getopenfilebmpinfo();
r["保存全部"]:= getsaveallbitmapinfo(); r["保存全部"]:= getsaveallbitmapinfo();
r["保存"]:= GetSaveFileBitmapInfo(); r["保存"]:= GetSaveFileBitmapInfo();
r["取消注释"]:= "0502000000060400000074797065000203000000696D670006040000006461746 r["取消注释"]:= getedituncommetbmpinfo();
100022001000089504E470D0A1A0A0000000D4948445200000020000000200806 r["注释"]:= geteditcommetbmpinfo();
000000737A7AF4000000017352474200AECE1CE90000000467414D410000B18F0 r["tsl代码格式化"]:= gettslcodeformatbitmapinfo();
BFC6105000000097048597300000EC300000EC301C76FA864000000B549444154
5847ED95C109C5200C40FF4E4EE15D07D0832B787142F1EC0C2EE03925FC2A9F9
2160A7EE3C10739546DF220113FC0CC16D8026B0AD45A21A5343430270529E09C
0321C4D0C09C146B0AB0B76026EB0B78EF2184707E8DE751008BB721C23EFE035
2A094024AA95EDC180331C63E5039E7F3E497B6FE14AF86504AD98BDF45039353
FBD778750DD905B0055AEBFEB3B5766E0B1A6C43F80BEB359CC19A02EC8F11FB7
3CC2EC0DE82996C812DC02C0070005765629339C9EFE60000000049454E44AE42
608200";
r["注释"]:= "0502000000060400000074797065000203000000696D670006040000006461746
100021201000089504E470D0A1A0A0000000D4948445200000020000000200806
000000737A7AF4000000017352474200AECE1CE90000000467414D410000B18F0
BFC6105000000097048597300000EC300000EC301C76FA864000000A749444154
5847ED94410A80201045BB9377F20A6EBD9757F03A82BB8909021333B56F1AF8E
0D3A2181F8CFD8D06B30496C09C02CE39B2D642C333532405A4942484808667A6
985360F80ABEE41F02C6986387FC445324105E26B444D125D45A6725C26FEF02E
F81538287A7DEC781F740578170058C52EA32ACFB0A42BCF7D9C3DFF228C0F0A1
437FC39ECC2910F70022F01EA80DBC076AD3DC03A834F7406F96C012182C40B40
319335F36295E4B140000000049454E44AE42608200";
r["撤销"]:= getredobitmapinfo(); r["撤销"]:= getredobitmapinfo();
r["反撤销"]:= getunredobitmapinfo(); r["反撤销"]:= getunredobitmapinfo();
r["tsl语法检查"]:=gettslsyntaxcheckbitmapinfo(); r["tsl语法检查"]:=gettslsyntaxcheckbitmapinfo();
r["tsl代码格式化"]:= gettslcodeformatbitmapinfo();
r["查找"]:=getfindbitmapinfo(); r["查找"]:=getfindbitmapinfo();
r["后退"]:= "0502000000060400000074797065000203000000696D670006040000006461746 r["后退"]:= getbackwardbitmapinfo();
100027501000089504E470D0A1A0A0000000D4948445200000020000000200806 r["前进"]:= getforwardbitmapinfo();
000000737A7AF4000000017352474200AECE1CE90000000467414D410000B18F0
BFC6105000000097048597300000EC300000EC301C76FA8640000010A49444154
5847EDD3218B84501405E0FD8B16AB60325A15C162325A0C2641D0603319AC822
641EC62B2984C8270969179CBCC70C75D771FCAC23B708A70BD1F3CEE072E8E00
088000FC5F405DD7304D13711CDFBFFC2E8701E338C2F77D4892B4F5544096655
055F56BF96980A66960DBF6D3E25300D3342108027231AB65591BE2481FF31690
E739344D2397FEB56DDBDEB71080AEEBE0380E39C8AB6F0161189203BC4B02E67
9866118E400EFEE3E4151145014851CE4D55DC02DCBB2208A22729847BF05B0F4
7D0FD775C99FB052679824C96E1FB30B6029CB12BAAE9380D7BB3E9A1F016E59D
715699A4296E56B002CC330C0F3BCEB002C55556D677B19805704400004E06200
F00985F34928814F15230000000049454E44AE42608200";
r["前进"]:= "0502000000060400000074797065000203000000696D670006040000006461746
10002E501000089504E470D0A1A0A0000000D4948445200000020000000200806
000000737A7AF4000000017352474200AECE1CE90000000467414D410000B18F0
BFC6105000000097048597300000EC300000EC301C76FA8640000017A49444154
5847C5963D4BC3501486F33B440DE220520D3AA888ABAB8A28A26DA9F5A355549
42EAE4E8E8E6ECE4EFE011737870E8E82AB38EB0FB8E7B6C79EF6857EA569D2DC
9B3CE585F4DE03EF43C897C331D9A0031C8D466C8129B5C05B94C3BFE81811185
3B3BC4D79AC44C3988064870A580D8F5101C92E15B1130EE302923D3AC2EE70AC
0848F6E90413C158139064A984A9C1581590E4A98C497F9CF75A95E3649880A44
0E7A8EBC7918165B51E2BBD857E39D417A8ECA62990548A7489DA36890A488EE9
0AD52D1217909CEA6BD4A7242029D14DBA02923255D213985073E99D0157CD37C
B85C4055CF250DD2251015779AC1ABF4E121390D3FE5BFF436D9BA680DFE3B533
2B149CDEB2DE4C362EB86FFE416537D65F4672B57FD6BF50D78FD5D7F1B8CA70B
5FE81497FAC0ABCD6DE3035182B021EADF1B37EC14430C605326A951FF5137687
635460462DF1BD7EC04E388C094CAB45BED577580D8F1101B9D5CE74052BD1302
290D3C15FBE41C416D8A42C8E4681F91F06F7DA0A168403F80000000049454E44
AE42608200";
r["快捷键说明"]:= getquickkeybitmapinfo(); r["快捷键说明"]:= getquickkeybitmapinfo();
r["代码地图(alt+m)"]:= gettslcodemapbitmapinfo(); r["代码地图(alt+m)"]:= gettslcodemapbitmapinfo();
r["分隔符"] := 0; r["分隔符"] := 0;
@ -5148,164 +5110,16 @@ end
function dbugicos(); function dbugicos();
begin begin
r := array(); r := array();
r["添加/删除断点F5"]:= "0502000000060400000074797065000203000000696D670006040000006461746 r["添加/删除断点F5"]:= getdbugaddbreakbmpinfo();
100022B01000089504E470D0A1A0A0000000D4948445200000018000000180806 r["暂停"]:= getdbugsuspendbmpinfo();
000000E0773DF8000000017352474200AECE1CE90000000467414D410000B18F0 r["继续"]:= getdbugcontinuebmpinfo();
BFC6105000000097048597300000EC300000EC301C76FA864000000C049444154 r["进入"]:= getdbugsetpinbmpinfo();
484B63F84F6330022CB0769FF85F58A98A280C528B0EF05A1095BAE8FFCEBD37A r["跳出"]:= getdbugstepoutbmpinfo();
03CC200A416A40719E0B500E42A5201BA1EFA5AB076D3C5FFF6DE93C16179E4F8 //r["单步"] := getdbugmcronextbmpinfo();
5DEA5B6064DFFDFFF6DDD7501E0D7C802E396A01088C5A800148B2A073E2DEFF3 r["下一行(F8)"]:= getdbugnextbmpinfo();
9A56BFE6FD87A99280C52DB31610F543704E0B500040E1CB9FD3F2967195118A4 r["终止"]:= getdbugstopbmpinfo();
161D10B4801000F9121FA0AF0520C5DA961D58BD8F0DFB45CEFE7FEFC11BA86EE r["刷新符号表"]:= getdbugfreshsymsbmpinfo();
C00C50210F8F0F13BD608C48689011816501B0C750BFEFF070066B64F1FB7C689 r["刷新当前符号"]:=getdbugfreshsymbmpinfo();
CB0000000049454E44AE42608200";
r["暂停"]:= "0502000000060400000074797065000203000000696D670006040000006461746
100022401000089504E470D0A1A0A0000000D4948445200000018000000180806
000000E0773DF8000000017352474200AECE1CE90000000467414D410000B18F0
BFC6105000000097048597300000EC300000EC301C76FA864000000B949444154
484BED8FBB0AC2401045AD2CC4CA0FB0D0CA5E1B7F401B3F3C820A29825A98F8C
A0F988744E2C459278F6598ADB450F6C06DE6C23D4C0BBECC1F0B1EE105B2E3E1
9D934FD79AAA7B258F6E74E58882FDA807DB7EBBCA3389A90148374BAD0B16536
A38A2A03980C9E3881A8064EDB05E4214EC061D6DC024F067636A3856A062052A
56C0B0821251D01CC098041809F98361571B300982F9841A8E28B87BAE1AC2A4E
E8AAE356587C9AE67BA7244C1A7F875014001DF29EF2FFBC3E1B1000000004945
4E44AE42608200";
r["继续"]:= "0502000000060400000074797065000203000000696D670006040000006461746
10002E201000089504E470D0A1A0A0000000D4948445200000018000000180806
000000E0773DF8000000017352474200AECE1CE90000000467414D410000B18F0
BFC6105000000097048597300000EC300000EC301C76FA8640000017749444154
484BAD95CB2E035118C73D835BB4112511D61E80A7B0747900AFC003D892A84E1
B246CEC24166A8145C3A60B21128BCE8CA6F4128AD665A42EF93B47BF3363B43A
9D73E697FC33E93933DFAFFDE6CB690788C5F43DB4F30A7D0A0E5B90BAB1108AE
9984916706B7DD2AA3A2E4124AEA3279A41E74A06CBA70FB4A3864B3098307E8A
F3441226C636B338BAB6E80E39DC82B82310E16D9BDD2F4AB7CD53C0A3D2B6B60
422036CDF6FDB7C0944FC4C9B9480C769DB2355688EB440A4DEB62B1CE65EA992
1B6581482866603AD9386D81097844DBCCCA3B550D5AB0AA63FEF88E2AD609443
0C44E8089ED1CD2A537AAE6A024E863DFB88B5DA367FF4F92B420ACE998DA2B22
5B75FADD0CDF827ECDC0C8BA891DFD999E6C8D6FC1C249194FB52F7ACA9BB6046
176348CB39798CAFB3FBADD825FFF0722DD6CB6973C8E8356FC119876613E1D93
BB795C946B74871C0D82DEA88EE135135B9755DA51C316F0711BDD3031775042E
1E58356D5B1051CFE2B8205F806770EAF93F6C525FA0000000049454E44AE4260
8200";
r["进入"]:= "0502000000060400000074797065000203000000696D670006040000006461746
100028401000089504E470D0A1A0A0000000D4948445200000018000000180806
000000E0773DF8000000017352474200AECE1CE90000000467414D410000B18F0
BFC6105000000097048597300000EC300000EC301C76FA8640000011949444154
484BB5954B0AC2301086BD9E3771E3C643780B578AA2A0541405A122EE558A4F7
C811B372E4410DF1219496B8393F4B7EA0759740AF36566DA2422FE8C2248778E
62B5BDCB2795F6F2F25C9FE209287934B513B1D29E95D03B5AD9DE494630940A9
2CD835692E99E3C49C139CB68306F334025C53E56093B6454620D832B6105042A
A98ECD83D70A0854529FE8254601814A1A53BE5D8102C224713F6F5AF6FCBD124
840A095B416AA041610AE245EDECBC80BBFC4595F6534A42051310B669B9B8CFE
A845FE39846A11DA7F7B1662C8E8CE1B53FE5F300AD0E4B589FEC8D00AD0B6544
6FCCE5D58019ADC1A8438ECD0E4C53E762728023479DEC16F354F805E99B96FAE
4C9270C909FA527427A60976C8BF43880799B976B3940BD8ED0000000049454E4
4AE42608200";
r["跳出"]:= "0502000000060400000074797065000203000000696D670006040000006461746
10002ED01000089504E470D0A1A0A0000000D4948445200000018000000180806
000000E0773DF8000000017352474200AECE1CE90000000467414D410000B18F0
BFC6105000000097048597300000EC300000EC301C76FA8640000018249444154
484BCD933B4BC3601486FD0F3A3938D841872E0A0AD2C1C141271727577111A48
30E855625A09680507410844E2E2A88508428B45EF082850A2254F1822288E0CF
3872EC39C9C9E5FB92140B3EF041F39E93F7214DDB062DE67F09CCF513D8DEADD
15534220BA66677A0BD3BFB7BF2850AA5E14412C8723E86794C533DA102598E9F
E5F5C28A455B6AB4026F3923F38C714869304A81AA9C91F3B95C89523F8182B07
246EEA5330794BAF109A29633727F667E9F520797206E3923EF9B4EEF51DAC016
E09F48575EB2EA901ADD80B1892D7878FAA6D4414A16F347940A01FEAE75E57C3
39EC19102DCD7BF68EAC092CDE215258A972CF196F3E91F5E83DBBB4FDA52A315
78CBF15A66C92113AAB50FDA0E4629082A67E4AC6760152E6FDE68E22750A02B6
7E44EA26F194E2F5E69E2C6278852CEC8DDAEA401E5B3679A38B80471CA19794F
67EF1258E5479A34B00595F397D8E58C947424B2705D7DA789108C4F169B2A67A
404BB185B80561CE093340B7E3DB21CF1BDE4BFA6C502801FF275D8DB8771B6A3
0000000049454E44AE42608200";
{r["单步"] := "0502000000060400000074797065000203000000696D670006040000006461746
100025701000089504E470D0A1A0A0000000D4948445200000018000000180806
000000E0773DF8000000017352474200AECE1CE90000000467414D410000B18F0
BFC6105000000097048597300000EC300000EC301C76FA864000000EC49444154
484BC5D5CD09C240108661EBB003CBB0801460035E723087282A117F886024A0A
0276F962558893B616565844427BB331B832F783003DF83E46047B7DCFF819BBE
EB0B5CF19B3C2B60C6FB2AD0DD474F0F21C2A7B26A81F2F8FBE383587F41561C2
B800FE27C079B62DF087102A604B6DE080B304D60E985B0015304733122024C21
8C45881830E5707A8D72102FE073FC05A81F01D478A862BC7E2702A8F111CCF04
AC706A8F1181678AD8F0550E35358E3D59E13A0C61348F1EACE0A50E32BC8F0CA
CB0A046A50194F21C70B3F2B50FE4FD8C1019FCA72BE0383E4C519BFC973024D6
B19D0FA0973865C3E24DD42ED0000000049454E44AE42608200";}
r["下一行(F8)"]:= "0502000000060400000074797065000203000000696D670006040000006461746
100025E01000089504E470D0A1A0A0000000D4948445200000018000000180806
000000E0773DF8000000017352474200AECE1CE90000000467414D410000B18F0
BFC6105000000097048597300000EC300000EC301C76FA864000000F349444154
484BED93CD0A015118865D835BB0B37509EEC2CE6DB8105694B29C859548766E4
0ACFC6450148A1AA349C3A7777E0E66CE9C9F290BE5A96F31DF999EA74E9D0C7D
997F400A0B5C6E77AA8D4E3458DBC1261D8EFBA0C6E44CFBABEB7DB340D1D850B
63AF3A6DCDB055B3DDA738BF2CD25F3F457B61F30A6165B86A31B813CEA28B44C
3F303E3AB1438C6A8427C7943ADBD71541C6FB4916499263BA66704521BA11911
C67E0230054232A72100B005944550EB801208AF0F698A81C24068048161D9E1C
08034025922407D200D0BD96779402801791C9817200548607CAD517DE0B55910
3AD401AFE0129BF1E207A02B9FA383F9BCBB70F0000000049454E44AE42608200
";
r["终止"]:= "0502000000060400000074797065000203000000696D670006040000006461746
100026602000089504E470D0A1A0A0000000D4948445200000018000000180806
000000E0773DF8000000017352474200AECE1CE90000000467414D410000B18F0
BFC6105000000097048597300000EC300000EC301C76FA864000001FB49444154
484BED94596B145114847DC8BEAF6423FBBE424296FFFF3F444386CC609C314EA
2AD498629EBEBE92B361C8982C197141C98BEC3AD3A5DA74EBFD10BE355E059FC
1F81F6D999F46B9D9E4AC7C7D2D191B4BFAF2757B6B7A7A6ABE1AAF9B9727050D
C2E237E03482F2E3A757EDE793E39E908ECEE4A9B9B7A747DDDD8D0EDD6966EB6
B755D9D9292E97F16702E90D0E0F2593696D4DAD951565CBCB6AAEAEEAA39FABE
BEBC5E5327E2F007122A77BC8E91EA2A525696E4EDFE7E775B7B0A0FAE2A2AA16
8B100B409ABC4FD6D86BAC913B9789DB53537A74DDCDCCA8313BABAACF22C402D
80171B205727B9D93BB6399B83D36A607D7FDF8B81A9393AA4D4F1797CB8805E8
984AB6D0B9BDCEC9211A1D556B6848DF5CF7C3C3AA8F8CA83631515C2E231670E
C7262068AE7A9F3825CFDFD7AEAEB53D6DBABE6C080EA16AA5A24422840CEF3AE
9D8E7CA0F86B5B1279CBE40F3D3DFAD2DDAD4F16B9B1C8F5DF08B044E49C28921
6068AE7D842E790675D5DFA6C8186AB66D18AFF8B100AB0A12C1139278AA48581
E27966323A4FE41FFC06D73EBB1A1C2C6E97110AB0FE6C284B44CE89226961A07
88E2D3FC95D573E7BEFFF2284027C5B587F36942522E74491B430503CC796BC73
FFBEF4D93BE6132014E0C3C5B785F567435922724E14490B03C5F34B774DE790B
F75031142817F89578167F1C202D20F98CF9591BE2EF7850000000049454E44AE
42608200";
r["刷新符号表"]:= "0502000000060400000074797065000203000000696D670006040000006461746
100027702000089504E470D0A1A0A0000000D4948445200000018000000180806
000000E0773DF8000000017352474200AECE1CE90000000467414D410000B18F0
BFC6105000000097048597300000EC300000EC301C76FA8640000020C49444154
484BC596DD4B145118C6FBEBBA13C12B6FBAE8224C414A08BA116BD584C050171
752D02093B6442D2F84CA34B520D35CBFC036493445CAAC50776D5D9DF771DEF3
313B677766F6EBA21F3C3767E73CCF9CF39EF3CE5E42996CEF03D7C2845B7DA44
64C0203D2E7C0EE0110FB068C2F1086DE1396364DA3CE1784CB8D96D0444C0DBA
F00D189F275C699713BD74B5C342FB70C69C551B21A4D2E60BE404ECFC025A9E9
A138BD1E05440006F49436FE9E6ACAA7B16BEDB75D118010F46CB33D7EAB0EBA2
71020626A5F9F56E0B8FDF5A58DF31977A74024C2E93D8F7EAFBDEC66E2D6CC87
94E4043AF4C3E4CAA81003E7E81A7A95BFC928C08F89B80335008AD51FFADAC6A
B5C4EF7C3F181130B3666E473EF8526943DEAEBB8384E88CBC23E933F590C2287
2A1FCF80361B6F75B0D0450524031FCFF80AD9F843731C2A7787175D2E40424FE
01EF5608E131428D7D277431FDBAA51FF35FE5F34E001FD31B3D19C36CF5BF2E2
CE0E4541E63DD2E44009B7B99BAB5B6259E0F64D16EEBF50F65173E55C755046C
EC0115216F63AD8A10A1E909E1F92C612E2E8FA9D6C807C2ED4799BBF1EA7366B
5CE16E95E54AEBA5E9A1DC10948A581BA88F7A44275C75E61364E0033B592BF89
F9697A5599646104306DCFCC89BCE49B76A7AD6C36C759B5F631E60E1CDF55933
DC80970173CBBC31EDBDF84ED7D59D8644A0DE62127806163FE2BA25B6EE90017
13C9EE8D2E4822C60000000049454E44AE42608200";
r["刷新当前符号"]:= "0502000000060400000074797065000203000000696D670006040000006461746
100027802000089504E470D0A1A0A0000000D4948445200000018000000180806
000000E0773DF8000000017352474200AECE1CE90000000467414D410000B18F0
BFC6105000000097048597300000EC300000EC301C76FA8640000020D49444154
484BB594DD2BA74114C7F7EF70A914529262BD5C798B645F5A2552EE5C4872837
2B1524A6D5C59C566A98D52ECC55228B4ED850B3724424A5A89B8D9B597CFBC1C
7D4F679EE691C76EC37E6AFACD3933BFF93E73E63BF382FE3309815DBB4F8BF61
B4DE8695AB7DF25FB34628151F39132A29C442B5655321A0E0B1CDAE378D1CF66
96CEE827B5EA768E87F4084F0C8505E6CC022F76BF2CF9513995A81A89C260812
F669E05F0E53E9DBA87B2A32289C260814B7BC502288B0F726DBA43A230E243C6
D7624194A5570F701FED5FDC8439701E1C0827FAC402E0AB59A6DCE8252FDCAEB
B69D9ACC9483A709AFB18D7E04847420038BBD6AA46C9A40387612E4A8BF38303
9D089C095205D046F498641F060E43497D502EFC17CE04A9020366987FDFA936D
AB17B329A24332AE0B3F3C14EF03F9C09481500AB6683AAD55B8E1B54330DEA0F
B465B669D12CD1A499A14AF5269EEB7017D499E35101704B7F68CC7CA20AF59AF
37E2B53B5BC0BF4E13C940B7DFF89F9AB800FC40EEC119DD853C910EFE8956AA1
2C55C86772FF694908F836456D7FD16F1909271670170D027E7FD3FC901961B0C
0B9BDE005BB741F271DC8F5E8F71285C102D37241AEE986930E1C5C5E542A5118
2C80370402B8893E285179542751182C80070A0268F02F76827221EED6FD3C319
4F890FD27C2B57AD524A3E1C402000F14DE907133452B765DB24F2321F0FC10DD
0144332BF870524ED00000000049454E44AE42608200";
return r; return r;
end end

View File

@ -650,14 +650,14 @@ type TDRootComponent = class(TDComponent)
end end
//************TImageList*********************** //************TImageList***********************
type TDVirutalWindow = class(TCustomControl) type TDVirutalWindow = class(TCustomControl) //无窗口控件的虚拟窗口
{** {**
@explan(说明) 非可视控件的窗口容器 %% @explan(说明) 非可视控件的窗口容器 %%
**} **}
private private
FBitmap; FBitmap; //图标
FBindComponent; FBindComponent;//绑定的设计控件
FWindowFileds; FWindowFileds; //窗口的属性
function SetBindComponent(v); function SetBindComponent(v);
begin begin
if v is class(TComponent) then if v is class(TComponent) then
@ -676,7 +676,7 @@ type TDVirutalWindow = class(TCustomControl)
reindex(r,rdx); reindex(r,rdx);
return r; return r;
end end
function getnotnil(ra); function getnotnil(ra); //获得非空的属性
begin begin
r := array(); r := array();
for i,v in FWindowFileds do for i,v in FWindowFileds do
@ -713,7 +713,7 @@ type TDVirutalWindow = class(TCustomControl)
begin begin
return nil; return nil;
end end
function GetPublishProperties();override; function GetPublishProperties();override; //获得属性
begin begin
r := inherited; r := inherited;
r := r[FWindowFileds]; r := r[FWindowFileds];
@ -722,21 +722,21 @@ type TDVirutalWindow = class(TCustomControl)
if r2 then if r2 then
begin begin
deletefiled(r2); deletefiled(r2);
return r union r2; return (r union r2);
end end
return r; return r;
end end
function GetPublishEvents();override; function GetPublishEvents();override; //获得消息处理函数
begin begin
r := array();
if FBindComponent then if FBindComponent then
begin begin
r := FBindComponent.GetPublishEvents(); r := FBindComponent.GetPublishEvents();
return r; return r;
end end
if not r then return array();//array(1:nil);
return r; return r;
end end
function GetChangedPublish(f);override; function GetChangedPublish(f);override; //获得改变的属性
begin begin
r := getnotnil(inherited); r := getnotnil(inherited);
if not FBindComponent then exit; if not FBindComponent then exit;
@ -748,7 +748,7 @@ type TDVirutalWindow = class(TCustomControl)
end end
return r; return r;
end end
function SetPublish(n,v);override; function SetPublish(n,v);override; //设置属性
begin begin
if n in FWindowFileds then if n in FWindowFileds then
begin begin
@ -759,7 +759,7 @@ type TDVirutalWindow = class(TCustomControl)
return FBindComponent.SetPublish(n,v); return FBindComponent.SetPublish(n,v);
end end
end end
function DesigningSizer();override; function DesigningSizer();override; //鼠标改变大小
begin begin
return false; return false;
end end
@ -904,7 +904,7 @@ type TDForm = class(TDComponent)
end end
function classification();override; function classification();override;
begin begin
return "非点击添加控件"; return "隐藏";
end end
function HitTip();override; function HitTip();override;
begin begin
@ -974,7 +974,7 @@ type TDMenu = class(TDMenuBase)
end end
function classification();override; function classification();override;
begin begin
return "非点击添加控件" ; return "隐藏" ;
end end
function InToolBar();override; function InToolBar();override;
begin begin
@ -1682,7 +1682,7 @@ type TDToolButton = class(TDComponent)
end end
function classification();override; function classification();override;
begin begin
return "非点击添加控件" ; return "隐藏" ;
end end
function InToolBar();override; function InToolBar();override;
begin begin
@ -2009,7 +2009,7 @@ type TDAction = class(TDComponent)
end end
function classification();override; function classification();override;
begin begin
return "非点击添加控件" ; return "隐藏" ;
end end
function InToolBar();override; function InToolBar();override;
begin begin
@ -3226,7 +3226,7 @@ type TDPairSplitterSide = class(TDComponent)
end end
function classification();override; function classification();override;
begin begin
return "非点击添加控件" ; return "隐藏" ;
end end
function menus();override; function menus();override;
begin begin
@ -3337,7 +3337,7 @@ type TDTabSheet = class(TDComponent)
end end
function classification();override; function classification();override;
begin begin
return "非点击添加控件"; return "隐藏";
end end
function SelectedNode();override; function SelectedNode();override;
begin begin
@ -3451,7 +3451,7 @@ begin
class(TDcoolBar),class(TDToolBar),class(TDStatusBar),class(TDToolButton), class(TDcoolBar),class(TDToolBar),class(TDStatusBar),class(TDToolButton),
class(TDTray), class(TDTray),
class(TDActionList),class(TDAction), class(TDActionList),class(TDAction),
class(TDQuotations),class(TDtlogincontrol), //class(TDQuotations),class(TDtlogincontrol),
class(TDmessagebox), class(TDmessagebox),
class(TDBtn), class(TDBtn),

View File

@ -13,8 +13,21 @@ function GetOpenFileBitmapInfo();
function GetTrayBitmapInfo(); function GetTrayBitmapInfo();
function GetImageListBitmapInfo(); function GetImageListBitmapInfo();
function GetTimerBitmapInfo(); function GetTimerBitmapInfo();
function geteditcommetbmpinfo();
function GetSaveFileBitmapInfo(); function GetSaveFileBitmapInfo();
function getedituncommetbmpinfo();
function getdbugaddbreakbmpinfo();
function getdbugsuspendbmpinfo();
function getdbugcontinuebmpinfo();
function getdbugsetpinbmpinfo();
function getdbugstepoutbmpinfo();
function getdbugmcronextbmpinfo();
function getdbugnextbmpinfo();
function getdbugstopbmpinfo();
function getdbugfreshsymsbmpinfo();
function getdbugfreshsymbmpinfo();
function GetMainMenuBitmapInfo(); function GetMainMenuBitmapInfo();
function gethighlighterbitmapinfo(); function gethighlighterbitmapinfo();
function GetActionListBitmapInfo(); function GetActionListBitmapInfo();
function GetPopUpMenuBitmapInfo(); function GetPopUpMenuBitmapInfo();
@ -40,6 +53,8 @@ function getdbugerrunbmpinfo();
function getopenfilebmpinfo(); function getopenfilebmpinfo();
function getsaveallbitmapinfo(); function getsaveallbitmapinfo();
function getredobitmapinfo(); function getredobitmapinfo();
function getbackwardbitmapinfo();
function getforwardbitmapinfo();
function getunredobitmapinfo(); function getunredobitmapinfo();
function gettslsyntaxcheckbitmapinfo(); function gettslsyntaxcheckbitmapinfo();
function gettslcodemapbitmapinfo(); function gettslcodemapbitmapinfo();
@ -452,6 +467,33 @@ E75F6B92237701200B4A4F07417AD477FE77239FDF2CF3C05A576BFC3590203F4
A7AFB93CA55249BFFCBBBAE83B447E01A5FB392686E583230000000049454E44A A7AFB93CA55249BFFCBBBAE83B447E01A5FB392686E583230000000049454E44A
E42608200"; E42608200";
end end
function geteditcommetbmpinfo();
begin
return "0502000000060400000074797065000203000000696D670006040000006461746
100021201000089504E470D0A1A0A0000000D4948445200000020000000200806
000000737A7AF4000000017352474200AECE1CE90000000467414D410000B18F0
BFC6105000000097048597300000EC300000EC301C76FA864000000A749444154
5847ED94410A80201045BB9377F20A6EBD9757F03A82BB8909021333B56F1AF8E
0D3A2181F8CFD8D06B30496C09C02CE39B2D642C333532405A4942484808667A6
985360F80ABEE41F02C6986387FC445324105E26B444D125D45A6725C26FEF02E
F81538287A7DEC781F740578170058C52EA32ACFB0A42BCF7D9C3DFF228C0F0A1
437FC39ECC2910F70022F01EA80DBC076AD3DC03A834F7406F96C012182C40B40
319335F36295E4B140000000049454E44AE42608200";
end
function getedituncommetbmpinfo();
begin
return "0502000000060400000074797065000203000000696D670006040000006461746
100022001000089504E470D0A1A0A0000000D4948445200000020000000200806
000000737A7AF4000000017352474200AECE1CE90000000467414D410000B18F0
BFC6105000000097048597300000EC300000EC301C76FA864000000B549444154
5847ED95C109C5200C40FF4E4EE15D07D0832B787142F1EC0C2EE03925FC2A9F9
2160A7EE3C10739546DF220113FC0CC16D8026B0AD45A21A5343430270529E09C
0321C4D0C09C146B0AB0B76026EB0B78EF2184707E8DE751008BB721C23EFE035
2A094024AA95EDC180331C63E5039E7F3E497B6FE14AF86504AD98BDF45039353
FBD778750DD905B0055AEBFEB3B5766E0B1A6C43F80BEB359CC19A02EC8F11FB7
3CC2EC0DE82996C812DC02C0070005765629339C9EFE60000000049454E44AE42
608200";
end
function GetSaveFileBitmapInfo(); function GetSaveFileBitmapInfo();
begin begin
return "0502000000060400000074797065000203000000696D670006040000006461746 return "0502000000060400000074797065000203000000696D670006040000006461746
@ -473,6 +515,194 @@ FEF7B0502F713105A2E9751A95450ABD5EC7BAD56CBEE6B78AFD7F317F0BB7392
E80AC9EAE8AE907AAFBB1795F04041586D27DC7D98345C3FBD4770F49FFEF11AF E80AC9EAE8AE907AAFBB1795F04041586D27DC7D98345C3FBD4770F49FFEF11AF
00DCA98480ED0E0E3350000000049454E44AE42608200"; 00DCA98480ED0E0E3350000000049454E44AE42608200";
end end
function getdbugaddbreakbmpinfo();
begin
return "0502000000060400000074797065000203000000696D670006040000006461746
100022B01000089504E470D0A1A0A0000000D4948445200000018000000180806
000000E0773DF8000000017352474200AECE1CE90000000467414D410000B18F0
BFC6105000000097048597300000EC300000EC301C76FA864000000C049444154
484B63F84F6330022CB0769FF85F58A98A280C528B0EF05A1095BAE8FFCEBD37A
03CC200A416A40719E0B500E42A5201BA1EFA5AB076D3C5FFF6DE93C16179E4F8
5DEA5B6064DFFDFFF6DDD7501E0D7C802E396A01088C5A800148B2A073E2DEFF3
9A56BFE6FD87A99280C52DB31610F543704E0B500040E1CB9FD3F2967195118A4
161D10B4801000F9121FA0AF0520C5DA961D58BD8F0DFB45CEFE7FEFC11BA86EE
C00C50210F8F0F13BD608C48689011816501B0C750BFEFF070066B64F1FB7C689
CB0000000049454E44AE42608200";
end
function getdbugsuspendbmpinfo();
begin
return "0502000000060400000074797065000203000000696D670006040000006461746
100022401000089504E470D0A1A0A0000000D4948445200000018000000180806
000000E0773DF8000000017352474200AECE1CE90000000467414D410000B18F0
BFC6105000000097048597300000EC300000EC301C76FA864000000B949444154
484BED8FBB0AC2401045AD2CC4CA0FB0D0CA5E1B7F401B3F3C820A29825A98F8C
A0F988744E2C459278F6598ADB450F6C06DE6C23D4C0BBECC1F0B1EE105B2E3E1
9D934FD79AAA7B258F6E74E58882FDA807DB7EBBCA3389A90148374BAD0B16536
A38A2A03980C9E3881A8064EDB05E4214EC061D6DC024F067636A3856A062052A
56C0B0821251D01CC098041809F98361571B300982F9841A8E28B87BAE1AC2A4E
E8AAE356587C9AE67BA7244C1A7F875014001DF29EF2FFBC3E1B1000000004945
4E44AE42608200";
end
function getdbugcontinuebmpinfo();
begin
return "0502000000060400000074797065000203000000696D670006040000006461746
10002E201000089504E470D0A1A0A0000000D4948445200000018000000180806
000000E0773DF8000000017352474200AECE1CE90000000467414D410000B18F0
BFC6105000000097048597300000EC300000EC301C76FA8640000017749444154
484BAD95CB2E035118C73D835BB4112511D61E80A7B0747900AFC003D892A84E1
B246CEC24166A8145C3A60B21128BCE8CA6F4128AD665A42EF93B47BF3363B43A
9D73E697FC33E93933DFAFFDE6CB690788C5F43DB4F30A7D0A0E5B90BAB1108AE
9984916706B7DD2AA3A2E4124AEA3279A41E74A06CBA70FB4A3864B3098307E8A
F3441226C636B338BAB6E80E39DC82B82310E16D9BDD2F4AB7CD53C0A3D2B6B60
422036CDF6FDB7C0944FC4C9B9480C769DB2355688EB440A4DEB62B1CE65EA992
1B6581482866603AD9386D81097844DBCCCA3B550D5AB0AA63FEF88E2AD609443
0C44E8089ED1CD2A537AAE6A024E863DFB88B5DA367FF4F92B420ACE998DA2B22
5B75FADD0CDF827ECDC0C8BA891DFD999E6C8D6FC1C249194FB52F7ACA9BB6046
176348CB39798CAFB3FBADD825FFF0722DD6CB6973C8E8356FC119876613E1D93
BB795C946B74871C0D82DEA88EE135135B9755DA51C316F0711BDD3031775042E
1E58356D5B1051CFE2B8205F806770EAF93F6C525FA0000000049454E44AE4260
8200";
end
function getdbugsetpinbmpinfo();
begin
return "0502000000060400000074797065000203000000696D670006040000006461746
100028401000089504E470D0A1A0A0000000D4948445200000018000000180806
000000E0773DF8000000017352474200AECE1CE90000000467414D410000B18F0
BFC6105000000097048597300000EC300000EC301C76FA8640000011949444154
484BB5954B0AC2301086BD9E3771E3C643780B578AA2A0541405A122EE558A4F7
C811B372E4410DF1219496B8393F4B7EA0759740AF36566DA2422FE8C2248778E
62B5BDCB2795F6F2F25C9FE209287934B513B1D29E95D03B5AD9DE494630940A9
2CD835692E99E3C49C139CB68306F334025C53E56093B6454620D832B6105042A
A98ECD83D70A0854529FE8254601814A1A53BE5D8102C224713F6F5AF6FCBD124
840A095B416AA041610AE245EDECBC80BBFC4595F6534A42051310B669B9B8CFE
A845FE39846A11DA7F7B1662C8E8CE1B53FE5F300AD0E4B589FEC8D00AD0B6544
6FCCE5D58019ADC1A8438ECD0E4C53E762728023479DEC16F354F805E99B96FAE
4C9270C909FA527427A60976C8BF43880799B976B3940BD8ED0000000049454E4
4AE42608200";
end
function getdbugstepoutbmpinfo();
begin
return "0502000000060400000074797065000203000000696D670006040000006461746
10002ED01000089504E470D0A1A0A0000000D4948445200000018000000180806
000000E0773DF8000000017352474200AECE1CE90000000467414D410000B18F0
BFC6105000000097048597300000EC300000EC301C76FA8640000018249444154
484BCD933B4BC3601486FD0F3A3938D841872E0A0AD2C1C141271727577111A48
30E855625A09680507410844E2E2A88508428B45EF082850A2254F1822288E0CF
3872EC39C9C9E5FB92140B3EF041F39E93F7214DDB062DE67F09CCF513D8DEADD
15534220BA66677A0BD3BFB7BF2850AA5E14412C8723E86794C533DA102598E9F
E5F5C28A455B6AB4026F3923F38C714869304A81AA9C91F3B95C89523F8182B07
246EEA5330794BAF109A29633727F667E9F520797206E3923EF9B4EEF51DAC016
E09F48575EB2EA901ADD80B1892D7878FAA6D4414A16F347940A01FEAE75E57C3
39EC19102DCD7BF68EAC092CDE215258A972CF196F3E91F5E83DBBB4FDA52A315
78CBF15A66C92113AAB50FDA0E4629082A67E4AC6760152E6FDE68E22750A02B6
7E44EA26F194E2F5E69E2C6278852CEC8DDAEA401E5B3679A38B80471CA19794F
67EF1258E5479A34B00595F397D8E58C947424B2705D7DA789108C4F169B2A67A
404BB185B80561CE093340B7E3DB21CF1BDE4BFA6C502801FF275D8DB8771B6A3
0000000049454E44AE42608200";
end
function getdbugmcronextbmpinfo();
begin
return "0502000000060400000074797065000203000000696D670006040000006461746
100025701000089504E470D0A1A0A0000000D4948445200000018000000180806
000000E0773DF8000000017352474200AECE1CE90000000467414D410000B18F0
BFC6105000000097048597300000EC300000EC301C76FA864000000EC49444154
484BC5D5CD09C240108661EBB003CBB0801460035E723087282A117F886024A0A
0276F962558893B616565844427BB331B832F783003DF83E46047B7DCFF819BBE
EB0B5CF19B3C2B60C6FB2AD0DD474F0F21C2A7B26A81F2F8FBE383587F41561C2
B800FE27C079B62DF087102A604B6DE080B304D60E985B0015304733122024C21
8C45881830E5707A8D72102FE073FC05A81F01D478A862BC7E2702A8F111CCF04
AC706A8F1181678AD8F0550E35358E3D59E13A0C61348F1EACE0A50E32BC8F0CA
CB0A046A50194F21C70B3F2B50FE4FD8C1019FCA72BE0383E4C519BFC973024D6
B19D0FA0973865C3E24DD42ED0000000049454E44AE42608200";
end
function getdbugnextbmpinfo();
begin
return "0502000000060400000074797065000203000000696D670006040000006461746
100025E01000089504E470D0A1A0A0000000D4948445200000018000000180806
000000E0773DF8000000017352474200AECE1CE90000000467414D410000B18F0
BFC6105000000097048597300000EC300000EC301C76FA864000000F349444154
484BED93CD0A015118865D835BB0B37509EEC2CE6DB8105694B29C859548766E4
0ACFC6450148A1AA349C3A7777E0E66CE9C9F290BE5A96F31DF999EA74E9D0C7D
997F400A0B5C6E77AA8D4E3458DBC1261D8EFBA0C6E44CFBABEB7DB340D1D850B
63AF3A6DCDB055B3DDA738BF2CD25F3F457B61F30A6165B86A31B813CEA28B44C
3F303E3AB1438C6A8427C7943ADBD71541C6FB4916499263BA66704521BA11911
C67E0230054232A72100B005944550EB801208AF0F698A81C24068048161D9E1C
08034025922407D200D0BD96779402801791C9817200548607CAD517DE0B55910
3AD401AFE0129BF1E207A02B9FA383F9BCBB70F0000000049454E44AE42608200
";
end
function getdbugstopbmpinfo();
begin
return "0502000000060400000074797065000203000000696D670006040000006461746
100026602000089504E470D0A1A0A0000000D4948445200000018000000180806
000000E0773DF8000000017352474200AECE1CE90000000467414D410000B18F0
BFC6105000000097048597300000EC300000EC301C76FA864000001FB49444154
484BED94596B145114847DC8BEAF6423FBBE424296FFFF3F444386CC609C314EA
2AD498629EBEBE92B361C8982C197141C98BEC3AD3A5DA74EBFD10BE355E059FC
1F81F6D999F46B9D9E4AC7C7D2D191B4BFAF2757B6B7A7A6ABE1AAF9B9727050D
C2E237E03482F2E3A757EDE793E39E908ECEE4A9B9B7A747DDDD8D0EDD6966EB6
B755D9D9292E97F16702E90D0E0F2593696D4DAD951565CBCB6AAEAEEAA39FABE
BEBC5E5327E2F007122A77BC8E91EA2A525696E4EDFE7E775B7B0A0FAE2A2AA16
8B100B409ABC4FD6D86BAC913B9789DB53537A74DDCDCCA8313BABAACF22C402D
80171B205727B9D93BB6399B83D36A607D7FDF8B81A9393AA4D4F1797CB8805E8
984AB6D0B9BDCEC9211A1D556B6848DF5CF7C3C3AA8F8CA83631515C2E231670E
C7262068AE7A9F3825CFDFD7AEAEB53D6DBABE6C080EA16AA5A24422840CEF3AE
9D8E7CA0F86B5B1279CBE40F3D3DFAD2DDAD4F16B9B1C8F5DF08B044E49C28921
6068AE7D842E790675D5DFA6C8186AB66D18AFF8B100AB0A12C1139278AA48581
E27966323A4FE41FFC06D73EBB1A1C2C6E97110AB0FE6C284B44CE89226961A07
88E2D3FC95D573E7BEFFF2284027C5B587F36942522E74491B430503CC796BC73
FFBEF4D93BE6132014E0C3C5B785F567435922724E14490B03C5F34B774DE790B
F75031142817F89578167F1C202D20F98CF9591BE2EF7850000000049454E44AE
42608200";
end
function getdbugfreshsymsbmpinfo();
begin
return "0502000000060400000074797065000203000000696D670006040000006461746
100027702000089504E470D0A1A0A0000000D4948445200000018000000180806
000000E0773DF8000000017352474200AECE1CE90000000467414D410000B18F0
BFC6105000000097048597300000EC300000EC301C76FA8640000020C49444154
484BC596DD4B145118C6FBEBBA13C12B6FBAE8224C414A08BA116BD584C050171
752D02093B6442D2F84CA34B520D35CBFC036493445CAAC50776D5D9DF771DEF3
313B677766F6EBA21F3C3767E73CCF9CF39EF3CE5E42996CEF03D7C2845B7DA44
64C0203D2E7C0EE0110FB068C2F1086DE1396364DA3CE1784CB8D96D0444C0DBA
F00D189F275C699713BD74B5C342FB70C69C551B21A4D2E60BE404ECFC025A9E9
A138BD1E05440006F49436FE9E6ACAA7B16BEDB75D118010F46CB33D7EAB0EBA2
71020626A5F9F56E0B8FDF5A58DF31977A74024C2E93D8F7EAFBDEC66E2D6CC87
94E4043AF4C3E4CAA81003E7E81A7A95BFC928C08F89B80335008AD51FFADAC6A
B5C4EF7C3F181130B3666E473EF8526943DEAEBB8384E88CBC23E933F590C2287
2A1FCF80361B6F75B0D0450524031FCFF80AD9F843731C2A7787175D2E40424FE
01EF5608E131428D7D277431FDBAA51FF35FE5F34E001FD31B3D19C36CF5BF2E2
CE0E4541E63DD2E44009B7B99BAB5B6259E0F64D16EEBF50F65173E55C755046C
EC0115216F63AD8A10A1E909E1F92C612E2E8FA9D6C807C2ED4799BBF1EA7366B
5CE16E95E54AEBA5E9A1DC10948A581BA88F7A44275C75E61364E0033B592BF89
F9697A5599646104306DCFCC89BCE49B76A7AD6C36C759B5F631E60E1CDF55933
DC80970173CBBC31EDBDF84ED7D59D8644A0DE62127806163FE2BA25B6EE90017
13C9EE8D2E4822C60000000049454E44AE42608200";
end
function getdbugfreshsymbmpinfo();
begin
return "0502000000060400000074797065000203000000696D670006040000006461746
100027802000089504E470D0A1A0A0000000D4948445200000018000000180806
000000E0773DF8000000017352474200AECE1CE90000000467414D410000B18F0
BFC6105000000097048597300000EC300000EC301C76FA8640000020D49444154
484BB594DD2BA74114C7F7EF70A914529262BD5C798B645F5A2552EE5C4872837
2B1524A6D5C59C566A98D52ECC55228B4ED850B3724424A5A89B8D9B597CFBC1C
7D4F679EE691C76EC37E6AFACD3933BFF93E73E63BF382FE3309815DBB4F8BF61
B4DE8695AB7DF25FB34628151F39132A29C442B5655321A0E0B1CDAE378D1CF66
96CEE827B5EA768E87F4084F0C8505E6CC022F76BF2CF9513995A81A89C260812
F669E05F0E53E9DBA87B2A32289C260814B7BC502288B0F726DBA43A230E243C6
D7624194A5570F701FED5FDC8439701E1C0827FAC402E0AB59A6DCE8252FDCAEB
B69D9ACC9483A709AFB18D7E04847420038BBD6AA46C9A40387612E4A8BF38303
9D089C095205D046F498641F060E43497D502EFC17CE04A9020366987FDFA936D
AB17B329A24332AE0B3F3C14EF03F9C09481500AB6683AAD55B8E1B54330DEA0F
B465B669D12CD1A499A14AF5269EEB7017D499E35101704B7F68CC7CA20AF59AF
37E2B53B5BC0BF4E13C940B7DFF89F9AB800FC40EEC119DD853C910EFE8956AA1
2C55C86772FF694908F836456D7FD16F1909271670170D027E7FD3FC901961B0C
0B9BDE005BB741F271DC8F5E8F71285C102D37241AEE986930E1C5C5E542A5118
2C80370402B8893E285179542751182C80070A0268F02F76827221EED6FD3C319
4F890FD27C2B57AD524A3E1C402000F14DE907133452B765DB24F2321F0FC10DD
0144332BF870524ED00000000049454E44AE42608200";
end
function GetMainMenuBitmapInfo(); function GetMainMenuBitmapInfo();
begin begin
return "0502000000060400000074797065000203000000696D670006040000006461746 return "0502000000060400000074797065000203000000696D670006040000006461746
@ -838,6 +1068,42 @@ DF93E618D36DCDC60B782E9F6302FFDEF6192B101E1E24272D6C2EECDD0689E08
11047474A0AC9E500391AA1457301F01FDA4F2FDFE8B101E70000000049454E44 11047474A0AC9E500391AA1457301F01FDA4F2FDFE8B101E70000000049454E44
AE42608200"; AE42608200";
end end
function getbackwardbitmapinfo();
begin
return "0502000000060400000074797065000203000000696D670006040000006461746
100027501000089504E470D0A1A0A0000000D4948445200000020000000200806
000000737A7AF4000000017352474200AECE1CE90000000467414D410000B18F0
BFC6105000000097048597300000EC300000EC301C76FA8640000010A49444154
5847EDD3218B84501405E0FD8B16AB60325A15C162325A0C2641D0603319AC822
641EC62B2984C8270969179CBCC70C75D771FCAC23B708A70BD1F3CEE072E8E00
088000FC5F405DD7304D13711CDFBFFC2E8701E338C2F77D4892B4F5544096655
055F56BF96980A66960DBF6D3E25300D3342108027231AB65591BE2481FF31690
E739344D2397FEB56DDBDEB71080AEEBE0380E39C8AB6F0161189203BC4B02E67
9866118E400EFEE3E4151145014851CE4D55DC02DCBB2208A22729847BF05B0F4
7D0FD775C99FB052679824C96E1FB30B6029CB12BAAE9380D7BB3E9A1F016E59D
715699A4296E56B002CC330C0F3BCEB002C55556D677B19805704400004E06200
F00985F34928814F15230000000049454E44AE42608200";
end
function getforwardbitmapinfo();
begin
return "0502000000060400000074797065000203000000696D670006040000006461746
10002E501000089504E470D0A1A0A0000000D4948445200000020000000200806
000000737A7AF4000000017352474200AECE1CE90000000467414D410000B18F0
BFC6105000000097048597300000EC300000EC301C76FA8640000017A49444154
5847C5963D4BC3501486F33B440DE220520D3AA888ABAB8A28A26DA9F5A355549
42EAE4E8E8E6ECE4EFE011737870E8E82AB38EB0FB8E7B6C79EF6857EA569D2DC
9B3CE585F4DE03EF43C897C331D9A0031C8D466C8129B5C05B94C3BFE81811185
3B3BC4D79AC44C3988064870A580D8F5101C92E15B1130EE302923D3AC2EE70AC
0848F6E90413C158139064A984A9C1581590E4A98C497F9CF75A95E3649880A44
0E7A8EBC7918165B51E2BBD857E39D417A8ECA62990548A7489DA36890A488EE9
0AD52D1217909CEA6BD4A7242029D14DBA02923255D213985073E99D0157CD37C
B85C4055CF250DD2251015779AC1ABF4E121390D3FE5BFF436D9BA680DFE3B533
2B149CDEB2DE4C362EB86FFE416537D65F4672B57FD6BF50D78FD5D7F1B8CA70B
5FE81497FAC0ABCD6DE3035182B021EADF1B37EC14430C605326A951FF5137687
635460462DF1BD7EC04E388C094CAB45BED577580D8F1101B9D5CE74052BD1302
290D3C15FBE41C416D8A42C8E4681F91F06F7DA0A168403F80000000049454E44
AE42608200";
end
function getunredobitmapinfo(); function getunredobitmapinfo();
begin begin
return "0502000000060400000074797065000203000000696D670006040000006461746 return "0502000000060400000074797065000203000000696D670006040000006461746

View File

@ -5,14 +5,14 @@ interface
**} **}
uses utslvclauxiliary,utslvclbase,utslvclgdi,uvcpropertytypespersistence,tslvcl,utslvcldcomponents; uses utslvclauxiliary,utslvclbase,utslvclgdi,uvcpropertytypespersistence,tslvcl,utslvcldcomponents;
function registereditpropertytodesigner(cls); function registereditpropertytodesigner(cls);
type TGCellRender = class(TSLUIBASE) type TGCellRender = class(TSLUIBASE) //属性编辑器单元格对象基类
{** {**
@explan(说明) gridcell渲染器 %% @explan(说明) gridcell渲染器 %%
**} **}
private private
FActivate; FActivate;
public public
function CreateEditer(AOwner);virtual; function CreateEditer(AOwner);
begin begin
return createobject(self(true).classinfo(1),AOwner); return createobject(self(true).classinfo(1),AOwner);
end end
@ -23,23 +23,23 @@ type TGCellRender = class(TSLUIBASE)
**} **}
class(TSLuibase).create(); class(TSLuibase).create();
end end
function CelldbClick(grid,e,d);virtual; function CelldbClick(grid,e,d);virtual; //双击
begin begin
end end
function CellClick(grid,e,d);virtual; function CellClick(grid,e,d);virtual; //点击
begin begin
{** {**
@explan(说明) 格子点击 %% @explan(说明) 格子点击 %%
**} **}
FActivate := true; FActivate := true;
end end
function CellDraw(grid,e,d);virtual; function CellDraw(grid,e,d);virtual; //绘制
begin begin
{** {**
@explan(说明) 绘制格子 %% @explan(说明) 绘制格子 %%
**} **}
end end
function CellLeave(grid);virtual; function CellLeave(grid);virtual; //离开
begin begin
{** {**
@explan(说明) 离开编辑格子 %% @explan(说明) 离开编辑格子 %%
@ -49,11 +49,7 @@ type TGCellRender = class(TSLUIBASE)
property Activated read FActivate; property Activated read FActivate;
end end
type TGridPropertyRender = class(TGCellRender) type TGridPropertyRender = class(TGCellRender) //属性编辑添加owner
function CreateEditer(AOwner);override;
begin
return CreateObject(self(true).Classinfo(1),AOwner);
end
function Create(AOwner); function Create(AOwner);
begin begin
inherited; inherited;
@ -61,21 +57,20 @@ type TGridPropertyRender = class(TGCellRender)
end end
Owner ; Owner ;
end end
type TGridCellEditWithButton = class(TGridPropertyRender) type TGridCellEditWithButton = class(TGridPropertyRender) //带按钮的单元格编辑
{** {**
@explan(说明) 带有按钮的格子% @explan(说明) 带有按钮的格子%
**} **}
private private
FRbuttonWidth; FRbuttonWidth; //按钮宽度
FCurorList;
FUpRect; FUpRect;
FDownRect; FDownRect;
protected protected
function ptinrect(pt,rec); function ptinrect(pt,rec);//区域中判断
begin begin
return (pt[0]>rec[0] and pt[0]<=rec[2]) and (pt[1]>rec[1] and pt[1]<=rec[3]); return (pt[0]>rec[0] and pt[0]<=rec[2]) and (pt[1]>rec[1] and pt[1]<=rec[3]);
end end
function splitrect(r,rs);virtual; function splitrect(r,rs);virtual;//拆分区域
begin begin
rs := array(); rs := array();
src := r; src := r;
@ -89,7 +84,7 @@ type TGridCellEditWithButton = class(TGridPropertyRender)
rs[1] := src; rs[1] := src;
end end
public public
function GetPopRectByHeight(h); function GetPopRectByHeight(h); //获得弹出区域
begin begin
{** {**
@explan(说明)根据格子获得弹出的区域 %% @explan(说明)根据格子获得弹出的区域 %%
@ -110,7 +105,7 @@ type TGridCellEditWithButton = class(TGridPropertyRender)
end end
return dn; return dn;
end end
function GetPopRect(f); function GetPopRect(f); //获得弹出区域
begin begin
{** {**
@explan(说明) 获得弹出区域%% @explan(说明) 获得弹出区域%%
@ -119,7 +114,7 @@ type TGridCellEditWithButton = class(TGridPropertyRender)
if f then return FUpRect; if f then return FUpRect;
return FDownRect; return FDownRect;
end end
function DrawButton(dc,src,d); function DrawButton(dc,src,d);//绘制按钮
begin begin
{** {**
@explan(说明) 绘制按钮%% @explan(说明) 绘制按钮%%
@ -129,7 +124,6 @@ type TGridCellEditWithButton = class(TGridPropertyRender)
Function Create(AOwner);override; Function Create(AOwner);override;
begin begin
inherited; inherited;
//echo "\r\nwitchbtn:";
ButtonWidth := 20; ButtonWidth := 20;
end end
function CellDraw(grid,e,d);override; function CellDraw(grid,e,d);override;
@ -140,7 +134,7 @@ type TGridCellEditWithButton = class(TGridPropertyRender)
DrawButton(dc,rs[0],d); DrawButton(dc,rs[0],d);
CellDrawLabel(dc,rs[1],d); CellDrawLabel(dc,rs[1],d);
end end
function CellDrawLabel(dc,rect,d);override; function CellDrawLabel(dc,rect,d);override;//绘制其他部分
begin begin
{** {**
@explan(说明) 绘制标签 %% @explan(说明) 绘制标签 %%
@ -150,7 +144,7 @@ type TGridCellEditWithButton = class(TGridPropertyRender)
//dc.drawtext(self(true).EditType(),rect); //dc.drawtext(self(true).EditType(),rect);
end end
end end
function CellClick(grid,e,d);override; function CellClick(grid,e,d);override;//点击
begin begin
{** {**
@explan(说明) 格子点击 %% @explan(说明) 格子点击 %%
@ -177,7 +171,7 @@ type TGridCellEditWithButton = class(TGridPropertyRender)
end end
end end
function CelldbClick(grid,e,d);override; function CelldbClick(grid,e,d);override;//双击处理
begin begin
{** {**
@explan(说明) 格子点击 %% @explan(说明) 格子点击 %%
@ -200,19 +194,19 @@ type TGridCellEditWithButton = class(TGridPropertyRender)
//LabelClick(grid,e,d); //LabelClick(grid,e,d);
end end
end end
function ButtonClick(grid,e,d);virtual; function ButtonClick(grid,e,d);virtual;//按钮处点击
begin begin
{** {**
@explan(说明) 按钮被点击 %% @explan(说明) 按钮被点击 %%
**} **}
end end
function LabelClick(grid,e,d);virtual; function LabelClick(grid,e,d);virtual;//非按钮处点击
begin begin
{** {**
@explan(说明)标签被点击 %% @explan(说明)标签被点击 %%
**} **}
end end
function CellLeave(grid);override; function CellLeave(grid);override; //离开
begin begin
{** {**
@explan(说明) 离开编辑格子 %% @explan(说明) 离开编辑格子 %%
@ -224,7 +218,7 @@ type TGridCellEditWithButton = class(TGridPropertyRender)
@param(ButtonWidth)(integer) 按钮宽度 %% @param(ButtonWidth)(integer) 按钮宽度 %%
**} **}
end end
type TGCellBoolRender=class(TGCellRender) type TGCellBoolRender=class(TGCellRender) //bool类型
class Function EditType();override; class Function EditType();override;
begin begin
return "bool"; return "bool";
@ -1574,10 +1568,6 @@ type TGridCellIntegerEdit = class(TGridCellNaturalEdit)
{** {**
@explan(说明) 整数编辑 %% @explan(说明) 整数编辑 %%
**} **}
function CreateEditer(AOwner);override;
begin
return new TGridCellIntegerEdit(AOwner);
end
function EditType();override; function EditType();override;
begin begin
return "integer"; return "integer";
@ -1612,10 +1602,6 @@ type TGridCellStringEdit = class(TGridCellNaturalEdit)
{** {**
@explan(说明) 整数编辑 %% @explan(说明) 整数编辑 %%
**} **}
function CreateEditer(AOwner);override;
begin
return new TGridCellStringEdit(AOwner);
end
function EditType();override; function EditType();override;
begin begin
return "string"; return "string";
@ -2430,10 +2416,6 @@ type TGridCellFileFilterEdit = class(TGridCellEditWithButton,TPropertyFileFilter
end end
end end
type TGridCellLazyIntegerEdit = class(TGridCellIntegerEdit) type TGridCellLazyIntegerEdit = class(TGridCellIntegerEdit)
function CreateEditer(AOwner);override;
begin
return new TGridCellLazyIntegerEdit(AOwner);
end
function EditType();override; function EditType();override;
begin begin
return "lazyinteger"; return "lazyinteger";
@ -2448,10 +2430,6 @@ type TGridCellLazyIntegerEdit = class(TGridCellIntegerEdit)
end end
end end
type TGridCellLazystrEdit = class(TGridCellStringEdit) //后处理信息 type TGridCellLazystrEdit = class(TGridCellStringEdit) //后处理信息
function CreateEditer(AOwner);override;
begin
return new TGridCellLazystrEdit(AOwner);
end
function EditType();override; function EditType();override;
begin begin
return "lazystr"; return "lazystr";

View File

@ -4,7 +4,7 @@ uses utslvclauxiliary,UVCPropertyTypesPersistence,utslvclbase;
@explan(说明) 可视化组件基类 %% @explan(说明) 可视化组件基类 %%
@date(20220505) 分离tcomponent基类 @date(20220505) 分离tcomponent基类
**} **}
private private //基础属性
{** {**
@param(FOwner)(tcomponent) 所有者 %% @param(FOwner)(tcomponent) 所有者 %%
@param(FComponents)( TFpList ) 子项 %% @param(FComponents)( TFpList ) 子项 %%
@ -12,14 +12,14 @@ uses utslvclauxiliary,UVCPropertyTypesPersistence,utslvclbase;
@param(FComponentStyle)( array of integer) 节点样式 %% @param(FComponentStyle)( array of integer) 节点样式 %%
@param(FFreeNotifies)( TFpList) 销毁通知节点 %% @param(FFreeNotifies)( TFpList) 销毁通知节点 %%
**} **}
fasdomain; fasdomain; //名字域节点
FOwner; FOwner; //所有者,在所有者销毁的时候其自动销毁
FName; FName; //节点名,在域内不能重复
FComponents; FComponents; //子节点
FFreeNotifies: TFpList; FFreeNotifies: TFpList; //销毁通知
FComponentState; FComponentState; //当前状态
FComponentStyle; FComponentStyle; //类型
FComponentCreated; FComponentCreated; //构造完成
FLoader; FLoader;
function ComponentGetParent();virtual; function ComponentGetParent();virtual;
begin begin
@ -30,14 +30,14 @@ uses utslvclauxiliary,UVCPropertyTypesPersistence,utslvclbase;
end end
#!begin //private methods #!begin //private methods
function GetLoader(); function GetLoader(); //获得加载器
begin begin
m2 := class(tUIglobalData).uigetdata("G_T_TTFM2COMPONET_"); m2 := class(tUIglobalData).uigetdata("G_T_TTFM2COMPONET_");
if not m2 then return 0; if not m2 then return 0;
if not FLoader then FLoader := createobject(m2); if not FLoader then FLoader := createobject(m2);
return FLoader; return FLoader;
end end
function GetPropInfo(); function GetPropInfo(); //获得有属性
begin begin
o := self(true); o := self(true);
r := getPropInfo2(o); r := getPropInfo2(o);
@ -49,14 +49,14 @@ uses utslvclauxiliary,UVCPropertyTypesPersistence,utslvclbase;
end end
return select * from ret order by["name"] end; return select * from ret order by["name"] end;
end end
static FClassDigestB; static FClassDigestB; //类信息
class function GetClassDigestB(idx,d); class function GetClassDigestB(idx,d); //类信息获取
begin begin
if not ifarray(FClassDigestB)then FClassDigestB := array(); if not ifarray(FClassDigestB)then FClassDigestB := array();
if ifnil(d)then return FClassDigestB[idx]; if ifnil(d)then return FClassDigestB[idx];
else FClassDigestB[idx]:= d; else FClassDigestB[idx]:= d;
end end
function getPropInfo2(o); function getPropInfo2(o); //获得类信息,带缓存
begin begin
if not(o is class(tcomponent))then return array(); if not(o is class(tcomponent))then return array();
t := o.classinfo; t := o.classinfo;
@ -97,7 +97,7 @@ uses utslvclauxiliary,UVCPropertyTypesPersistence,utslvclbase;
GetClassDigestB(idx,r); GetClassDigestB(idx,r);
return r; return r;
end end
function GetComponent(AIndex); function GetComponent(AIndex);//获得子项
begin begin
{** {**
@explan(说明) 获取子节点 %% @explan(说明) 获取子节点 %%
@ -105,11 +105,11 @@ uses utslvclauxiliary,UVCPropertyTypesPersistence,utslvclbase;
**} **}
return FComponents.geti(AIndex); return FComponents.geti(AIndex);
end end
function SetComponentState(v); function SetComponentState(v); //设置状态
begin begin
if ifarray(v)then FComponentState := v; if ifarray(v)then FComponentState := v;
end end
function GetComponentCount(); function GetComponentCount(); //子项数目
begin begin
{** {**
@explan(说明) 获取子节数量%% @explan(说明) 获取子节数量%%
@ -117,7 +117,7 @@ uses utslvclauxiliary,UVCPropertyTypesPersistence,utslvclbase;
**} **}
return FComponents.count(); return FComponents.count();
end end
function GetComponentIndex(); function GetComponentIndex();//序号
begin begin
{** {**
@explan(说明) 获取子节序号%% @explan(说明) 获取子节序号%%
@ -137,7 +137,7 @@ uses utslvclauxiliary,UVCPropertyTypesPersistence,utslvclbase;
FComponents.Add(AComponent); FComponents.Add(AComponent);
AComponent.FOwner := Self(true); AComponent.FOwner := Self(true);
end end
procedure Remove(AComponent:TComponent); procedure Remove(AComponent:TComponent); //移除
begin begin
{** {**
@explan(说明)移除子节点 %% @explan(说明)移除子节点 %%
@ -149,16 +149,16 @@ uses utslvclauxiliary,UVCPropertyTypesPersistence,utslvclbase;
end end
return false; return false;
end; end;
procedure RemoveNotification(AComponent:TComponent); procedure RemoveNotification(AComponent:TComponent); //是否通知
begin begin
r := FFreeNotifies.Remove(AComponent); r := FFreeNotifies.Remove(AComponent);
if FFreeNotifies.count()<1 then includestate(FComponentState,csFreeNotification); if FFreeNotifies.count()<1 then includestate(FComponentState,csFreeNotification);
return r; return r;
end end
#!end #!end
protected protected //名字相关
#!begin //protected methods #!begin //protected methods
function SetName(v);virtual; function SetName(v);virtual; //设置名字
begin begin
if ifstring(v)and length(v)>1 and v <> FName then if ifstring(v)and length(v)>1 and v <> FName then
begin begin
@ -174,7 +174,7 @@ uses utslvclauxiliary,UVCPropertyTypesPersistence,utslvclbase;
end end
end end
end end
Procedure SetAncestor(Value:Boolean); Procedure SetAncestor(Value:Boolean); //设置祖先
begin begin
If Value then includestate(FComponentState,csAncestor)else excludestate(FCOmponentState,csAncestor); If Value then includestate(FComponentState,csAncestor)else excludestate(FCOmponentState,csAncestor);
For Runner := 0 To FComponents.Count-1 do For Runner := 0 To FComponents.Count-1 do
@ -182,7 +182,7 @@ uses utslvclauxiliary,UVCPropertyTypesPersistence,utslvclbase;
FComponents.geti(Runner).SetAncestor(Value); FComponents.geti(Runner).SetAncestor(Value);
end end
end; end;
function ValidateContainer(AComponent:TComponent);virtual; function ValidateContainer(AComponent:TComponent);virtual; //刷新容器
begin begin
if AComponent is class(tcomponent)then return AComponent.ValidateInsert(Self); if AComponent is class(tcomponent)then return AComponent.ValidateInsert(Self);
end end
@ -190,8 +190,8 @@ uses utslvclauxiliary,UVCPropertyTypesPersistence,utslvclbase;
begin begin
return true; return true;
end end
public public //通知相关
function ExecuteCommand(cmd,p);virtual; function ExecuteCommand(cmd,p);virtual; //执行命令行
begin begin
end end
@ -211,7 +211,7 @@ public
if ow<>ac then if ow<>ac then
ow.Notification(ac,Operation); ow.Notification(ac,Operation);
end end
function Notification(AComponent,Operation);virtual; function Notification(AComponent,Operation);virtual; //通知
begin begin
{** {**
@explan(说明) 通知处理 %% @explan(说明) 通知处理 %%
@ -231,20 +231,20 @@ public
end; end;
end; end;
private private
Procedure SetDesignInstance(Value); Procedure SetDesignInstance(Value); //设置设计状态
begin begin
If Value then If Value then
includestate(FComponentState,csDesignInstance) includestate(FComponentState,csDesignInstance)
else else
excludestate(FComponentState,csDesignInstance); excludestate(FComponentState,csDesignInstance);
end; end;
public public //通知相关,设计器设置相关
procedure RemoveFreeNotification(AComponent:TComponent); procedure RemoveFreeNotification(AComponent:TComponent); //释放通知
begin begin
RemoveNotification(AComponent); RemoveNotification(AComponent);
AComponent.RemoveNotification(self); AComponent.RemoveNotification(self);
end; end;
Procedure SetDesigning(Value,SetChildren);virtual; Procedure SetDesigning(Value,SetChildren);virtual; //设置设计状态
begin begin
{** {**
@explan(说明) 设计器使用方法,设置为设计状态,或者解除设置状态 %% @explan(说明) 设计器使用方法,设置为设计状态,或者解除设置状态 %%
@ -282,7 +282,7 @@ protected
end end
#!end #!end
public public //构造析构相关
#!begin //public methods #!begin //public methods
function create(AOwner);virtual; function create(AOwner);virtual;
begin begin
@ -302,13 +302,13 @@ public
AOwner.InsertComponent(Self); AOwner.InsertComponent(Self);
end end
end end
function RootOwner(); function RootOwner(); //获得域根节点
begin begin
if fasdomain then return self(true); if fasdomain then return self(true);
if not(FOwner is class(TComponent))then return self(true); if not(FOwner is class(TComponent))then return self(true);
return FOwner.RootOwner(); return FOwner.RootOwner();
end end
function FindComponentByName(n); function FindComponentByName(n);//查找子节点中含名字的节点
begin begin
if n and n=FName then return self(true); if n and n=FName then return self(true);
cps := Components; cps := Components;
@ -319,7 +319,7 @@ public
end end
return false; return false;
end end
function isDescendant(cd); function isDescendant(cd);//是否为子节点
begin begin
{** {**
@explan(说明) 判断节点是否为其子节点 %% @explan(说明) 判断节点是否为其子节点 %%
@ -346,7 +346,7 @@ public
AOwner.InsertComponent(self(true)); AOwner.InsertComponent(self(true));
end end
end end
function Recycling();override; function Recycling();override; //回收
begin begin
if not FComponentCreated then exit; if not FComponentCreated then exit;
Destroying(); Destroying();
@ -361,7 +361,7 @@ public
begin begin
inherited; inherited;
end; end;
function Destroying(); function Destroying();//销毁
begin begin
If csDestroying in FComponentstate Then Exit; If csDestroying in FComponentstate Then Exit;
includestate(FComponentState,csDestroying); includestate(FComponentState,csDestroying);
@ -369,7 +369,7 @@ public
data := FCOmponents.data(); data := FCOmponents.data();
for i,v in data do v.Destroying(); for i,v in data do v.Destroying();
end; end;
function ExecuteAction(act:TBasicAction):Boolean;virtual; function ExecuteAction(act:TBasicAction):Boolean;virtual;//执行action
begin begin
{** {**
@explan(说明)执行action %% @explan(说明)执行action %%
@ -381,7 +381,7 @@ public
end else end else
return False; return False;
end end
function UpdateAction(act:TBasicAction):Boolean;virtual; function UpdateAction(act:TBasicAction):Boolean;virtual;//更新action
begin begin
{** {**
@explan(说明) 更新action %% @explan(说明) 更新action %%
@ -393,7 +393,7 @@ public
end else end else
return False; return False;
end end
function DestroyComponents(); function DestroyComponents();//销毁子节点
begin begin
{** {**
@explan(说明)删除子项 %% @explan(说明)删除子项 %%
@ -423,7 +423,7 @@ public
end; end;
//function GetParentComponent(); virtual;begin end //function GetParentComponent(); virtual;begin end
//function HasParent(); virtual;begin end //function HasParent(); virtual;begin end
function InsertComponent(AComponent);virtual; function InsertComponent(AComponent);virtual;//插入
begin begin
{** {**
@explan(说明)插入节点 %% @explan(说明)插入节点 %%
@ -448,11 +448,11 @@ public
return ifobj(o); return ifobj(o);
end end
#!end #!end
private private //设计器中属性事件相关
FEventsProperties; FEventsProperties;
FChangedProperties; FChangedProperties;
FVariableProperties; FVariableProperties;
function GetPublishInfo(); function GetPublishInfo();//属性获取
begin begin
r := publishs(); r := publishs();
rr := array(); rr := array();
@ -476,12 +476,12 @@ public
r := r1; r := r1;
end end
end end
public public //设计器属性设置相关
function publishs();virtual; function publishs();virtual;//释放属性
begin begin
//return array("currentcolor","lazyitems","range","firstdayofweek","align","mbbtnstyle","textalign","text","imagelist","canvs","images","items","bkbitmap","icon","popupmenu","mainmenu","cursor","height","width","left","top","enabled","visible","caption","color","font","onclick","rootfolder","initialdir"); //return array("currentcolor","lazyitems","range","firstdayofweek","align","mbbtnstyle","textalign","text","imagelist","canvs","images","items","bkbitmap","icon","popupmenu","mainmenu","cursor","height","width","left","top","enabled","visible","caption","color","font","onclick","rootfolder","initialdir");
end end
function GetPublishproperties();virtual; function GetPublishproperties();virtual; //获得属性信息
begin begin
{** {**
@explan(说明) 获得properties,设计器使用%% @explan(说明) 获得properties,设计器使用%%
@ -511,7 +511,7 @@ public
//////////////////// ////////////////////
return r; return r;
end end
function GetPublishEvents();virtual; function GetPublishEvents();virtual; //获得事件信息
begin begin
{** {**
@explan(说明) 获得event值,设计器使用 %% @explan(说明) 获得event值,设计器使用 %%
@ -536,11 +536,11 @@ public
OrderPublish(r,pps); OrderPublish(r,pps);
return r; return r;
end end
function GetChangedPropertiesn(n);virtual; function GetChangedPropertiesn(n);virtual;//获得改变的属性
begin begin
return FChangedProperties[n]; return FChangedProperties[n];
end end
function GetChangedPublish(f);virtual; function GetChangedPublish(f);virtual; //获得改变的属性
begin begin
{** {**
@explan(说明)获取修改过的publish,设计器使用 %% @explan(说明)获取修改过的publish,设计器使用 %%
@ -568,7 +568,7 @@ public
end end
return r; return r;
end end
function SetChangedPublish(n,v);virtual; function SetChangedPublish(n,v);virtual;//设置属性
begin begin
{** {**
@explan(说明) 设计器相关函数 %% @explan(说明) 设计器相关函数 %%
@ -577,7 +577,7 @@ public
//reindex(FChangedProperties,array(n:nil)); //reindex(FChangedProperties,array(n:nil));
FChangedProperties[n]:= v; FChangedProperties[n]:= v;
end end
function DeleteChangedPublish(n);virtual; function DeleteChangedPublish(n);virtual;//删除属性
begin begin
if n and ifstring(n)then if n and ifstring(n)then
begin begin
@ -585,7 +585,7 @@ public
reindex(FChangedProperties,array(n:nil)); reindex(FChangedProperties,array(n:nil));
end end
end end
function SetPublish(n,v);virtual; function SetPublish(n,v);virtual;//设置属性
begin begin
{** {**
@explan(说明) 修改单个值,设计器使用 %% @explan(说明) 修改单个值,设计器使用 %%
@ -636,7 +636,7 @@ public
end end
end end
end end
property Owner:tcomponent read FOwner; property Owner:tcomponent read FOwner; //所有者
{** {**
@param(Owner)(tcomponent) 所有者 %% @param(Owner)(tcomponent) 所有者 %%
@param(ComponentState)() 状态集合 %% @param(ComponentState)() 状态集合 %%
@ -648,8 +648,8 @@ public
property Components read FComponents; property Components read FComponents;
property ComponentState read FComponentState write SetComponentState; property ComponentState read FComponentState write SetComponentState;
property ComponentStyle read FComponentStyle; property ComponentStyle read FComponentStyle;
property Name:string read FName write SetName; property Name:string read FName write SetName; //名字
property Parent read ComponentGetParent write ComponentSetParent; property Parent read ComponentGetParent write ComponentSetParent;
property asdomain read fasdomain write fasdomain; property asdomain read fasdomain write fasdomain; //域节点
property Loader read GetLoader; property Loader read GetLoader; //加载器
end end