diff --git a/designer/tslvcldesigner.tsf b/designer/tslvcldesigner.tsf index 8c7c0bf..bd724ad 100644 --- a/designer/tslvcldesigner.tsf +++ b/designer/tslvcldesigner.tsf @@ -18,7 +18,7 @@ type TVclDesigner = class(tvcform) fwindowinfos; //窗口文件节点存储对象 fcutcopyinfo;//复制的信息 FChmHelper; //帮助文档 - FImageList; //图标 + fdimagelist; //图标 FViewBitmap; //图片管理器 FVariableSelecter; //当前控件树的变量 FFunctionSelecter; //当前控件树的函数 @@ -68,12 +68,12 @@ type TVclDesigner = class(tvcform) **} for i,v in class(TDComponent).GetClassItem() do begin - FImageList.RegisterDitem(v); + fdimagelist.RegisterDitem(v); //if not v.InToolBar() then continue; tb := new TToolButton(self); tb.caption := v.HitTip; tb.Enabled := v.InToolBar(); - ig := FImageList.GetImageId(V.dclassname); + ig := fdimagelist.GetImageId(V.dclassname); tb.imageid := ig; v.Imgs := ig; tb._tag := v; @@ -105,7 +105,7 @@ type TVclDesigner = class(tvcform) tr := ftree; if nd then begin - tr := fwindowinfos.gettreebyid(nd); + tr := fwindowinfos.gettreebyid(nd); end if not tr then return ; it := tr.RootItem; @@ -296,7 +296,7 @@ type TVclDesigner = class(tvcform) end return r; end - public + public //设计器工程 function OpenFileFromTpjFile(); //从文件打开工程 begin FProjectFileOpener.caption := "打开"; @@ -448,7 +448,7 @@ type TVclDesigner = class(tvcform) ) ); end - public + public //编辑器中代码操作 function DeleFiledFromEdit(n,nn); //删除变量 begin if FTree.Loading then return ; @@ -478,7 +478,7 @@ type TVclDesigner = class(tvcform) begin FProjectManager.SetProjectInfo(n); end - private + private //设计器控件的事件响应 function tablelines(str,n); begin lines := str2array(str,"\r\n"); @@ -573,7 +573,7 @@ type TVclDesigner = class(tvcform) end end - public + public //控件选中 //**************************************** function CreateComponent(); //构造控件 begin @@ -642,7 +642,7 @@ type TVclDesigner = class(tvcform) setcomponentfocus(wd,true); return t.SelectedNode(); end - private + private //右键菜单处理 function RClickComponent(o,e); //右键控件窗口 begin {** @@ -679,7 +679,7 @@ type TVclDesigner = class(tvcform) end end //FClickTime; - public + public //双击添加事件到代码 function addandopeneventbyname(nd,n); //打开事件函数位置 begin if nd then @@ -736,7 +736,7 @@ type TVclDesigner = class(tvcform) if o then AddAndOPenEvent(o._tag); if e then e.skip := true; end - private + private //节点点击 function ClickComponent(o,e); //点击组件选择 begin {** @@ -821,7 +821,7 @@ type TVclDesigner = class(tvcform) **} FProjectManager.CloseCurrentEdit(nil,true); end - public + public //设计器中绑定事件 function BindCwndMessage(wnd); //给控件绑定处理函数 begin {** @@ -865,7 +865,7 @@ type TVclDesigner = class(tvcform) fwindowinfos.deletedata(wndnode); tr.Recycling(); end - private + private //不同窗口切换 function hidenatree(nd);//隐藏控件树 begin FCurrentNode := nil; @@ -929,10 +929,14 @@ type TVclDesigner = class(tvcform) end end end - public + public //加载以及处理 function ExecuteCommand(cmd,p);override; begin case cmd of + "imglist": + begin + return fdimagelist; + end "allopendnod": begin r := array(); @@ -1021,7 +1025,7 @@ type TVclDesigner = class(tvcform) it := new TDPanelForm(); end else return ; it.dclassname(d["class"]); - it.Imgs := FImageList.GetImageId("tdcreateform"); + it.Imgs := fdimagelist.GetImageId("tdcreateform"); end comp := it.ComponentCreater(node,wr); comp.name := d["name"]; @@ -1160,9 +1164,9 @@ type TVclDesigner = class(tvcform) Mobjinspect(); onactivate := thisfunction(OnDesignerActivate); - FImageList := new TDesigImageList(self); - //FTree.Imagelist := FImageList; - fwindowinfos := new tfilesinfo(self,thisfunction(ClickTreeNode),FImageList,tparent); + fdimagelist := new TDesigImageList(self); + //FTree.Imagelist := fdimagelist; + fwindowinfos := new tfilesinfo(self,thisfunction(ClickTreeNode),fdimagelist,tparent); //******************toolbar *************** tlbar := FProjectManager.FTslEditer.gettoolbar(); savebtn := FProjectManager.FTslEditer.gettoolbarbtn(); @@ -1186,7 +1190,7 @@ type TVclDesigner = class(tvcform) sp1.parent := self; FToolBars := new TDesignertoolbars(self); FToolBars.parent := self; - FToolBars.Imagelist := FImageList; + FToolBars.Imagelist := fdimagelist; FToolBars.Font.width := 9; FToolBars.Font.height := 18; @@ -1207,7 +1211,7 @@ type TVclDesigner = class(tvcform) end property VariableSelecter read FVariableSelecter; //当前控件树的变量对象 - private + private //其他资源函数 function ViewBitmap(o,e); begin if not FViewBitmap then @@ -1364,7 +1368,9 @@ type tfilesinfo = class() // if not nd then begin tr := new TComponentTree(fdesginer); + img := fdesginer.ExecuteCommand("imglist"); tr.visible := false; + tr.ImageList := img; tr.Align := tr.alClient; tr.parent := fparent; tr.onselchanged := fcompclick; @@ -1593,7 +1599,7 @@ type TDesignertoolbars = class(TPageControl) // st.caption := t; tb := new ttoolbar(self); tb.align := alClient; - if t<>"非点击添加控件" then + if t<>"隐藏" then begin st.parent := self; tb.parent := st; diff --git a/designer/udesignerproject.tsf b/designer/udesignerproject.tsf index 0b721ae..8ec2bf7 100644 --- a/designer/udesignerproject.tsf +++ b/designer/udesignerproject.tsf @@ -237,9 +237,13 @@ type TProjectView = class(TVCForm) // end FFilterList.SetData(d); end - function saveformcode(); //保存当前class + function saveformcode(fn); //保存当前class begin - it := FTslEditer.GetCurrentItem(); + if ifstring(fn) and fn then + begin + it := FTslEditer.OpenAndGoLineByName(fn); + end else + it := FTslEditer.GetCurrentItem(); FTslEditer.SavePageItem(it); end public @@ -682,7 +686,7 @@ type TProjectView = class(TVCForm) // begin r := FCurrentOpend.gettsfname(); FTslEditer.Addfiled(r,n); - saveformcode(); + saveformcode(r); end end function adduses(lbs); //添加成员 @@ -691,7 +695,7 @@ type TProjectView = class(TVCForm) // begin r := FCurrentOpend.gettsfname(); FTslEditer.adduses(r,lbs); - saveformcode(); + saveformcode(r); end end @@ -701,7 +705,7 @@ type TProjectView = class(TVCForm) // begin r := FCurrentOpend.gettsfname(); FTslEditer.Delfiled(r,n,nn); - saveformcode(); + saveformcode(r); end end function AddAFunction(ff); //添加函数 @@ -711,15 +715,16 @@ type TProjectView = class(TVCForm) // s := createtslfunction(ff); fn := FCurrentOpend.gettsfname(); r := FTslEditer.AddFunction(fn,ff["name"],s); - saveformcode(); + saveformcode(fn); ShowEditor(); return r; end end function GoToAFunction(n); //跳转到函数 begin - r := FTslEditer.GoToFunction(FCurrentOpend.gettsfname(),n); - saveformcode(); + fn := FCurrentOpend.gettsfname(); + r := FTslEditer.GoToFunction(fn,n); + saveformcode(fn); ShowEditor(); return r; end @@ -754,13 +759,15 @@ type TProjectView = class(TVCForm) // begin //打开class fn := FCurrentOpend.gettsfname(); - it := FTslEditer.OpenAndGotoFileByName(fn); + if FTslEditer.getpageitemcount()<1 then + it := FTslEditer.OpenAndGotoFileByName(fn); + else it := FTslEditer.OpenAndGoLineByName(fn); if not it then begin FCurrentOpend := nil; return messageboxa("文件不存在","错误",0,self); end - classinfo := FTslEditer.GetClassInfo(); + classinfo := FTslEditer.GetClassInfo(it); if not(ifarray(classinfo)and classinfo)then begin FCurrentOpend := nil; @@ -1642,7 +1649,14 @@ BD141CA912494F502D48D224F45050274A21E03806FF2C7CA7516022D7D000000 end function GetClassInfo(n); //获得信息 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(); if it then begin diff --git a/designer/utslcodeeditor.tsf b/designer/utslcodeeditor.tsf index f40a37f..e37d61d 100644 --- a/designer/utslcodeeditor.tsf +++ b/designer/utslcodeeditor.tsf @@ -467,6 +467,7 @@ type TPage=class(TCustomControl) // property CloseBtn read FCloseBtn write SetCloseBtn; property Lines read FLines; property PageItems read FPageItems; + property pageitemcount read getpageitemcount; property ItemIndex read FItemIndex write SetItemIndex; protected function CallSelChanged();virtual; @@ -579,6 +580,10 @@ F47AC96526C21CCB26FD326A2180CC21F5CAC302CA5C842B865FD9D7003D1F17B DoControlAlign(); end end + function getpageitemcount(); + begin + return FPageItems.length(); + end function SetItemIndex(idx); begin if idx >= 0 and idx FItemIndex then @@ -1913,6 +1918,10 @@ type TEditer=class(TCustomcontrol) // end end end + function getpageitemcount(); //获得页面数量 + begin + return FPageEditer.pageitemcount; + end function CloseAllPageItems(it); begin its := FPageEditer.PageItems; @@ -5084,62 +5093,15 @@ begin r["打开文件"]:= getopenfilebmpinfo(); r["保存全部"]:= getsaveallbitmapinfo(); r["保存"]:= GetSaveFileBitmapInfo(); - r["取消注释"]:= "0502000000060400000074797065000203000000696D670006040000006461746 -100022001000089504E470D0A1A0A0000000D4948445200000020000000200806 -000000737A7AF4000000017352474200AECE1CE90000000467414D410000B18F0 -BFC6105000000097048597300000EC300000EC301C76FA864000000B549444154 -5847ED95C109C5200C40FF4E4EE15D07D0832B787142F1EC0C2EE03925FC2A9F9 -2160A7EE3C10739546DF220113FC0CC16D8026B0AD45A21A5343430270529E09C -0321C4D0C09C146B0AB0B76026EB0B78EF2184707E8DE751008BB721C23EFE035 -2A094024AA95EDC180331C63E5039E7F3E497B6FE14AF86504AD98BDF45039353 -FBD778750DD905B0055AEBFEB3B5766E0B1A6C43F80BEB359CC19A02EC8F11FB7 -3CC2EC0DE82996C812DC02C0070005765629339C9EFE60000000049454E44AE42 -608200"; - r["注释"]:= "0502000000060400000074797065000203000000696D670006040000006461746 -100021201000089504E470D0A1A0A0000000D4948445200000020000000200806 -000000737A7AF4000000017352474200AECE1CE90000000467414D410000B18F0 -BFC6105000000097048597300000EC300000EC301C76FA864000000A749444154 -5847ED94410A80201045BB9377F20A6EBD9757F03A82BB8909021333B56F1AF8E -0D3A2181F8CFD8D06B30496C09C02CE39B2D642C333532405A4942484808667A6 -985360F80ABEE41F02C6986387FC445324105E26B444D125D45A6725C26FEF02E -F81538287A7DEC781F740578170058C52EA32ACFB0A42BCF7D9C3DFF228C0F0A1 -437FC39ECC2910F70022F01EA80DBC076AD3DC03A834F7406F96C012182C40B40 -319335F36295E4B140000000049454E44AE42608200"; + r["取消注释"]:= getedituncommetbmpinfo(); + r["注释"]:= geteditcommetbmpinfo(); + r["tsl代码格式化"]:= gettslcodeformatbitmapinfo(); r["撤销"]:= getredobitmapinfo(); r["反撤销"]:= getunredobitmapinfo(); - r["tsl语法检查"]:=gettslsyntaxcheckbitmapinfo(); - r["tsl代码格式化"]:= gettslcodeformatbitmapinfo(); + r["tsl语法检查"]:=gettslsyntaxcheckbitmapinfo(); r["查找"]:=getfindbitmapinfo(); - r["后退"]:= "0502000000060400000074797065000203000000696D670006040000006461746 -100027501000089504E470D0A1A0A0000000D4948445200000020000000200806 -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["后退"]:= getbackwardbitmapinfo(); + r["前进"]:= getforwardbitmapinfo(); r["快捷键说明"]:= getquickkeybitmapinfo(); r["代码地图(alt+m)"]:= gettslcodemapbitmapinfo(); r["分隔符"] := 0; @@ -5148,164 +5110,16 @@ end function dbugicos(); begin r := array(); - r["添加/删除断点F5"]:= "0502000000060400000074797065000203000000696D670006040000006461746 -100022B01000089504E470D0A1A0A0000000D4948445200000018000000180806 -000000E0773DF8000000017352474200AECE1CE90000000467414D410000B18F0 -BFC6105000000097048597300000EC300000EC301C76FA864000000C049444154 -484B63F84F6330022CB0769FF85F58A98A280C528B0EF05A1095BAE8FFCEBD37A -03CC200A416A40719E0B500E42A5201BA1EFA5AB076D3C5FFF6DE93C16179E4F8 -5DEA5B6064DFFDFFF6DDD7501E0D7C802E396A01088C5A800148B2A073E2DEFF3 -9A56BFE6FD87A99280C52DB31610F543704E0B500040E1CB9FD3F2967195118A4 -161D10B4801000F9121FA0AF0520C5DA961D58BD8F0DFB45CEFE7FEFC11BA86EE -C00C50210F8F0F13BD608C48689011816501B0C750BFEFF070066B64F1FB7C689 -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"; + r["添加/删除断点F5"]:= getdbugaddbreakbmpinfo(); + r["暂停"]:= getdbugsuspendbmpinfo(); + r["继续"]:= getdbugcontinuebmpinfo(); + r["进入"]:= getdbugsetpinbmpinfo(); + r["跳出"]:= getdbugstepoutbmpinfo(); + //r["单步"] := getdbugmcronextbmpinfo(); + r["下一行(F8)"]:= getdbugnextbmpinfo(); + r["终止"]:= getdbugstopbmpinfo(); + r["刷新符号表"]:= getdbugfreshsymsbmpinfo(); + r["刷新当前符号"]:=getdbugfreshsymbmpinfo(); return r; end diff --git a/designer/utslvcldcomponents.tsf b/designer/utslvcldcomponents.tsf index 38d0488..bc79eea 100644 --- a/designer/utslvcldcomponents.tsf +++ b/designer/utslvcldcomponents.tsf @@ -650,14 +650,14 @@ type TDRootComponent = class(TDComponent) end //************TImageList*********************** -type TDVirutalWindow = class(TCustomControl) +type TDVirutalWindow = class(TCustomControl) //无窗口控件的虚拟窗口 {** @explan(说明) 非可视控件的窗口容器 %% **} private - FBitmap; - FBindComponent; - FWindowFileds; + FBitmap; //图标 + FBindComponent;//绑定的设计控件 + FWindowFileds; //窗口的属性 function SetBindComponent(v); begin if v is class(TComponent) then @@ -676,7 +676,7 @@ type TDVirutalWindow = class(TCustomControl) reindex(r,rdx); return r; end - function getnotnil(ra); + function getnotnil(ra); //获得非空的属性 begin r := array(); for i,v in FWindowFileds do @@ -713,7 +713,7 @@ type TDVirutalWindow = class(TCustomControl) begin return nil; end - function GetPublishProperties();override; + function GetPublishProperties();override; //获得属性 begin r := inherited; r := r[FWindowFileds]; @@ -722,21 +722,21 @@ type TDVirutalWindow = class(TCustomControl) if r2 then begin deletefiled(r2); - return r union r2; + return (r union r2); end return r; end - function GetPublishEvents();override; + function GetPublishEvents();override; //获得消息处理函数 begin + r := array(); if FBindComponent then begin r := FBindComponent.GetPublishEvents(); return r; end - if not r then return array();//array(1:nil); return r; end - function GetChangedPublish(f);override; + function GetChangedPublish(f);override; //获得改变的属性 begin r := getnotnil(inherited); if not FBindComponent then exit; @@ -748,7 +748,7 @@ type TDVirutalWindow = class(TCustomControl) end return r; end - function SetPublish(n,v);override; + function SetPublish(n,v);override; //设置属性 begin if n in FWindowFileds then begin @@ -759,7 +759,7 @@ type TDVirutalWindow = class(TCustomControl) return FBindComponent.SetPublish(n,v); end end - function DesigningSizer();override; + function DesigningSizer();override; //鼠标改变大小 begin return false; end @@ -904,7 +904,7 @@ type TDForm = class(TDComponent) end function classification();override; begin - return "非点击添加控件"; + return "隐藏"; end function HitTip();override; begin @@ -974,7 +974,7 @@ type TDMenu = class(TDMenuBase) end function classification();override; begin - return "非点击添加控件" ; + return "隐藏" ; end function InToolBar();override; begin @@ -1682,7 +1682,7 @@ type TDToolButton = class(TDComponent) end function classification();override; begin - return "非点击添加控件" ; + return "隐藏" ; end function InToolBar();override; begin @@ -2009,7 +2009,7 @@ type TDAction = class(TDComponent) end function classification();override; begin - return "非点击添加控件" ; + return "隐藏" ; end function InToolBar();override; begin @@ -3226,7 +3226,7 @@ type TDPairSplitterSide = class(TDComponent) end function classification();override; begin - return "非点击添加控件" ; + return "隐藏" ; end function menus();override; begin @@ -3337,7 +3337,7 @@ type TDTabSheet = class(TDComponent) end function classification();override; begin - return "非点击添加控件"; + return "隐藏"; end function SelectedNode();override; begin @@ -3451,7 +3451,7 @@ begin class(TDcoolBar),class(TDToolBar),class(TDStatusBar),class(TDToolButton), class(TDTray), class(TDActionList),class(TDAction), - class(TDQuotations),class(TDtlogincontrol), + //class(TDQuotations),class(TDtlogincontrol), class(TDmessagebox), class(TDBtn), diff --git a/designer/utslvcldesignerresource.tsf b/designer/utslvcldesignerresource.tsf index 9f2403a..19200a3 100644 --- a/designer/utslvcldesignerresource.tsf +++ b/designer/utslvcldesignerresource.tsf @@ -13,8 +13,21 @@ function GetOpenFileBitmapInfo(); function GetTrayBitmapInfo(); function GetImageListBitmapInfo(); function GetTimerBitmapInfo(); +function geteditcommetbmpinfo(); 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 gethighlighterbitmapinfo(); function GetActionListBitmapInfo(); function GetPopUpMenuBitmapInfo(); @@ -40,6 +53,8 @@ function getdbugerrunbmpinfo(); function getopenfilebmpinfo(); function getsaveallbitmapinfo(); function getredobitmapinfo(); +function getbackwardbitmapinfo(); +function getforwardbitmapinfo(); function getunredobitmapinfo(); function gettslsyntaxcheckbitmapinfo(); function gettslcodemapbitmapinfo(); @@ -452,6 +467,33 @@ E75F6B92237701200B4A4F07417AD477FE77239FDF2CF3C05A576BFC3590203F4 A7AFB93CA55249BFFCBBBAE83B447E01A5FB392686E583230000000049454E44A E42608200"; 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(); begin return "0502000000060400000074797065000203000000696D670006040000006461746 @@ -473,6 +515,194 @@ FEF7B0502F713105A2E9751A95450ABD5EC7BAD56CBEE6B78AFD7F317F0BB7392 E80AC9EAE8AE907AAFBB1795F04041586D27DC7D98345C3FBD4770F49FFEF11AF 00DCA98480ED0E0E3350000000049454E44AE42608200"; 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(); begin return "0502000000060400000074797065000203000000696D670006040000006461746 @@ -838,6 +1068,42 @@ DF93E618D36DCDC60B782E9F6302FFDEF6192B101E1E24272D6C2EECDD0689E08 11047474A0AC9E500391AA1457301F01FDA4F2FDFE8B101E70000000049454E44 AE42608200"; 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(); begin return "0502000000060400000074797065000203000000696D670006040000006461746 diff --git a/designer/utslvcldpropertytypes.tsf b/designer/utslvcldpropertytypes.tsf index e4c5b84..3845355 100644 --- a/designer/utslvcldpropertytypes.tsf +++ b/designer/utslvcldpropertytypes.tsf @@ -5,14 +5,14 @@ interface **} uses utslvclauxiliary,utslvclbase,utslvclgdi,uvcpropertytypespersistence,tslvcl,utslvcldcomponents; function registereditpropertytodesigner(cls); -type TGCellRender = class(TSLUIBASE) +type TGCellRender = class(TSLUIBASE) //属性编辑器单元格对象基类 {** @explan(说明) gridcell渲染器 %% **} private FActivate; public - function CreateEditer(AOwner);virtual; + function CreateEditer(AOwner); begin return createobject(self(true).classinfo(1),AOwner); end @@ -23,23 +23,23 @@ type TGCellRender = class(TSLUIBASE) **} class(TSLuibase).create(); end - function CelldbClick(grid,e,d);virtual; + function CelldbClick(grid,e,d);virtual; //双击 begin end - function CellClick(grid,e,d);virtual; + function CellClick(grid,e,d);virtual; //点击 begin {** @explan(说明) 格子点击 %% **} FActivate := true; end - function CellDraw(grid,e,d);virtual; + function CellDraw(grid,e,d);virtual; //绘制 begin {** @explan(说明) 绘制格子 %% **} end - function CellLeave(grid);virtual; + function CellLeave(grid);virtual; //离开 begin {** @explan(说明) 离开编辑格子 %% @@ -49,11 +49,7 @@ type TGCellRender = class(TSLUIBASE) property Activated read FActivate; end -type TGridPropertyRender = class(TGCellRender) - function CreateEditer(AOwner);override; - begin - return CreateObject(self(true).Classinfo(1),AOwner); - end +type TGridPropertyRender = class(TGCellRender) //属性编辑添加owner function Create(AOwner); begin inherited; @@ -61,21 +57,20 @@ type TGridPropertyRender = class(TGCellRender) end Owner ; end -type TGridCellEditWithButton = class(TGridPropertyRender) +type TGridCellEditWithButton = class(TGridPropertyRender) //带按钮的单元格编辑 {** @explan(说明) 带有按钮的格子% **} private - FRbuttonWidth; - FCurorList; + FRbuttonWidth; //按钮宽度 FUpRect; FDownRect; protected - function ptinrect(pt,rec); + function ptinrect(pt,rec);//区域中判断 begin return (pt[0]>rec[0] and pt[0]<=rec[2]) and (pt[1]>rec[1] and pt[1]<=rec[3]); end - function splitrect(r,rs);virtual; + function splitrect(r,rs);virtual;//拆分区域 begin rs := array(); src := r; @@ -89,7 +84,7 @@ type TGridCellEditWithButton = class(TGridPropertyRender) rs[1] := src; end public - function GetPopRectByHeight(h); + function GetPopRectByHeight(h); //获得弹出区域 begin {** @explan(说明)根据格子获得弹出的区域 %% @@ -110,7 +105,7 @@ type TGridCellEditWithButton = class(TGridPropertyRender) end return dn; end - function GetPopRect(f); + function GetPopRect(f); //获得弹出区域 begin {** @explan(说明) 获得弹出区域%% @@ -119,7 +114,7 @@ type TGridCellEditWithButton = class(TGridPropertyRender) if f then return FUpRect; return FDownRect; end - function DrawButton(dc,src,d); + function DrawButton(dc,src,d);//绘制按钮 begin {** @explan(说明) 绘制按钮%% @@ -129,7 +124,6 @@ type TGridCellEditWithButton = class(TGridPropertyRender) Function Create(AOwner);override; begin inherited; - //echo "\r\nwitchbtn:"; ButtonWidth := 20; end function CellDraw(grid,e,d);override; @@ -140,7 +134,7 @@ type TGridCellEditWithButton = class(TGridPropertyRender) DrawButton(dc,rs[0],d); CellDrawLabel(dc,rs[1],d); end - function CellDrawLabel(dc,rect,d);override; + function CellDrawLabel(dc,rect,d);override;//绘制其他部分 begin {** @explan(说明) 绘制标签 %% @@ -150,7 +144,7 @@ type TGridCellEditWithButton = class(TGridPropertyRender) //dc.drawtext(self(true).EditType(),rect); end end - function CellClick(grid,e,d);override; + function CellClick(grid,e,d);override;//点击 begin {** @explan(说明) 格子点击 %% @@ -177,7 +171,7 @@ type TGridCellEditWithButton = class(TGridPropertyRender) end end - function CelldbClick(grid,e,d);override; + function CelldbClick(grid,e,d);override;//双击处理 begin {** @explan(说明) 格子点击 %% @@ -200,19 +194,19 @@ type TGridCellEditWithButton = class(TGridPropertyRender) //LabelClick(grid,e,d); end end - function ButtonClick(grid,e,d);virtual; + function ButtonClick(grid,e,d);virtual;//按钮处点击 begin {** @explan(说明) 按钮被点击 %% **} end - function LabelClick(grid,e,d);virtual; + function LabelClick(grid,e,d);virtual;//非按钮处点击 begin {** @explan(说明)标签被点击 %% **} end - function CellLeave(grid);override; + function CellLeave(grid);override; //离开 begin {** @explan(说明) 离开编辑格子 %% @@ -224,7 +218,7 @@ type TGridCellEditWithButton = class(TGridPropertyRender) @param(ButtonWidth)(integer) 按钮宽度 %% **} end -type TGCellBoolRender=class(TGCellRender) +type TGCellBoolRender=class(TGCellRender) //bool类型 class Function EditType();override; begin return "bool"; @@ -1574,10 +1568,6 @@ type TGridCellIntegerEdit = class(TGridCellNaturalEdit) {** @explan(说明) 整数编辑 %% **} - function CreateEditer(AOwner);override; - begin - return new TGridCellIntegerEdit(AOwner); - end function EditType();override; begin return "integer"; @@ -1612,10 +1602,6 @@ type TGridCellStringEdit = class(TGridCellNaturalEdit) {** @explan(说明) 整数编辑 %% **} - function CreateEditer(AOwner);override; - begin - return new TGridCellStringEdit(AOwner); - end function EditType();override; begin return "string"; @@ -2430,10 +2416,6 @@ type TGridCellFileFilterEdit = class(TGridCellEditWithButton,TPropertyFileFilter end end type TGridCellLazyIntegerEdit = class(TGridCellIntegerEdit) - function CreateEditer(AOwner);override; - begin - return new TGridCellLazyIntegerEdit(AOwner); - end function EditType();override; begin return "lazyinteger"; @@ -2448,10 +2430,6 @@ type TGridCellLazyIntegerEdit = class(TGridCellIntegerEdit) end end type TGridCellLazystrEdit = class(TGridCellStringEdit) //后处理信息 - function CreateEditer(AOwner);override; - begin - return new TGridCellLazystrEdit(AOwner); - end function EditType();override; begin return "lazystr"; diff --git a/funcext/tvclib/tcomponent.tsf b/funcext/tvclib/tcomponent.tsf index 25de941..618c41f 100644 --- a/funcext/tvclib/tcomponent.tsf +++ b/funcext/tvclib/tcomponent.tsf @@ -4,7 +4,7 @@ uses utslvclauxiliary,UVCPropertyTypesPersistence,utslvclbase; @explan(说明) 可视化组件基类 %% @date(20220505) 分离tcomponent基类 **} - private + private //基础属性 {** @param(FOwner)(tcomponent) 所有者 %% @param(FComponents)( TFpList ) 子项 %% @@ -12,14 +12,14 @@ uses utslvclauxiliary,UVCPropertyTypesPersistence,utslvclbase; @param(FComponentStyle)( array of integer) 节点样式 %% @param(FFreeNotifies)( TFpList) 销毁通知节点 %% **} - fasdomain; - FOwner; - FName; - FComponents; - FFreeNotifies: TFpList; - FComponentState; - FComponentStyle; - FComponentCreated; + fasdomain; //名字域节点 + FOwner; //所有者,在所有者销毁的时候其自动销毁 + FName; //节点名,在域内不能重复 + FComponents; //子节点 + FFreeNotifies: TFpList; //销毁通知 + FComponentState; //当前状态 + FComponentStyle; //类型 + FComponentCreated; //构造完成 FLoader; function ComponentGetParent();virtual; begin @@ -30,14 +30,14 @@ uses utslvclauxiliary,UVCPropertyTypesPersistence,utslvclbase; end #!begin //private methods - function GetLoader(); + function GetLoader(); //获得加载器 begin m2 := class(tUIglobalData).uigetdata("G_T_TTFM2COMPONET_"); if not m2 then return 0; if not FLoader then FLoader := createobject(m2); return FLoader; end - function GetPropInfo(); + function GetPropInfo(); //获得有属性 begin o := self(true); r := getPropInfo2(o); @@ -49,14 +49,14 @@ uses utslvclauxiliary,UVCPropertyTypesPersistence,utslvclbase; end return select * from ret order by["name"] end; end - static FClassDigestB; - class function GetClassDigestB(idx,d); + static FClassDigestB; //类信息 + class function GetClassDigestB(idx,d); //类信息获取 begin if not ifarray(FClassDigestB)then FClassDigestB := array(); if ifnil(d)then return FClassDigestB[idx]; else FClassDigestB[idx]:= d; end - function getPropInfo2(o); + function getPropInfo2(o); //获得类信息,带缓存 begin if not(o is class(tcomponent))then return array(); t := o.classinfo; @@ -97,7 +97,7 @@ uses utslvclauxiliary,UVCPropertyTypesPersistence,utslvclbase; GetClassDigestB(idx,r); return r; end - function GetComponent(AIndex); + function GetComponent(AIndex);//获得子项 begin {** @explan(说明) 获取子节点 %% @@ -105,11 +105,11 @@ uses utslvclauxiliary,UVCPropertyTypesPersistence,utslvclbase; **} return FComponents.geti(AIndex); end - function SetComponentState(v); + function SetComponentState(v); //设置状态 begin if ifarray(v)then FComponentState := v; end - function GetComponentCount(); + function GetComponentCount(); //子项数目 begin {** @explan(说明) 获取子节数量%% @@ -117,7 +117,7 @@ uses utslvclauxiliary,UVCPropertyTypesPersistence,utslvclbase; **} return FComponents.count(); end - function GetComponentIndex(); + function GetComponentIndex();//序号 begin {** @explan(说明) 获取子节序号%% @@ -137,7 +137,7 @@ uses utslvclauxiliary,UVCPropertyTypesPersistence,utslvclbase; FComponents.Add(AComponent); AComponent.FOwner := Self(true); end - procedure Remove(AComponent:TComponent); + procedure Remove(AComponent:TComponent); //移除 begin {** @explan(说明)移除子节点 %% @@ -149,16 +149,16 @@ uses utslvclauxiliary,UVCPropertyTypesPersistence,utslvclbase; end return false; end; - procedure RemoveNotification(AComponent:TComponent); + procedure RemoveNotification(AComponent:TComponent); //是否通知 begin r := FFreeNotifies.Remove(AComponent); if FFreeNotifies.count()<1 then includestate(FComponentState,csFreeNotification); return r; end #!end - protected + protected //名字相关 #!begin //protected methods - function SetName(v);virtual; + function SetName(v);virtual; //设置名字 begin if ifstring(v)and length(v)>1 and v <> FName then begin @@ -174,7 +174,7 @@ uses utslvclauxiliary,UVCPropertyTypesPersistence,utslvclbase; end end end - Procedure SetAncestor(Value:Boolean); + Procedure SetAncestor(Value:Boolean); //设置祖先 begin If Value then includestate(FComponentState,csAncestor)else excludestate(FCOmponentState,csAncestor); For Runner := 0 To FComponents.Count-1 do @@ -182,7 +182,7 @@ uses utslvclauxiliary,UVCPropertyTypesPersistence,utslvclbase; FComponents.geti(Runner).SetAncestor(Value); end end; - function ValidateContainer(AComponent:TComponent);virtual; + function ValidateContainer(AComponent:TComponent);virtual; //刷新容器 begin if AComponent is class(tcomponent)then return AComponent.ValidateInsert(Self); end @@ -190,8 +190,8 @@ uses utslvclauxiliary,UVCPropertyTypesPersistence,utslvclbase; begin return true; end -public - function ExecuteCommand(cmd,p);virtual; +public //通知相关 + function ExecuteCommand(cmd,p);virtual; //执行命令行 begin end @@ -211,7 +211,7 @@ public if ow<>ac then ow.Notification(ac,Operation); end - function Notification(AComponent,Operation);virtual; + function Notification(AComponent,Operation);virtual; //通知 begin {** @explan(说明) 通知处理 %% @@ -231,20 +231,20 @@ public end; end; private - Procedure SetDesignInstance(Value); + Procedure SetDesignInstance(Value); //设置设计状态 begin If Value then includestate(FComponentState,csDesignInstance) else excludestate(FComponentState,csDesignInstance); end; -public - procedure RemoveFreeNotification(AComponent:TComponent); +public //通知相关,设计器设置相关 + procedure RemoveFreeNotification(AComponent:TComponent); //释放通知 begin RemoveNotification(AComponent); AComponent.RemoveNotification(self); end; - Procedure SetDesigning(Value,SetChildren);virtual; + Procedure SetDesigning(Value,SetChildren);virtual; //设置设计状态 begin {** @explan(说明) 设计器使用方法,设置为设计状态,或者解除设置状态 %% @@ -282,7 +282,7 @@ protected end #!end -public +public //构造析构相关 #!begin //public methods function create(AOwner);virtual; begin @@ -302,13 +302,13 @@ public AOwner.InsertComponent(Self); end end - function RootOwner(); + function RootOwner(); //获得域根节点 begin if fasdomain then return self(true); if not(FOwner is class(TComponent))then return self(true); return FOwner.RootOwner(); end - function FindComponentByName(n); + function FindComponentByName(n);//查找子节点中含名字的节点 begin if n and n=FName then return self(true); cps := Components; @@ -319,7 +319,7 @@ public end return false; end - function isDescendant(cd); + function isDescendant(cd);//是否为子节点 begin {** @explan(说明) 判断节点是否为其子节点 %% @@ -346,7 +346,7 @@ public AOwner.InsertComponent(self(true)); end end - function Recycling();override; + function Recycling();override; //回收 begin if not FComponentCreated then exit; Destroying(); @@ -361,7 +361,7 @@ public begin inherited; end; - function Destroying(); + function Destroying();//销毁 begin If csDestroying in FComponentstate Then Exit; includestate(FComponentState,csDestroying); @@ -369,7 +369,7 @@ public data := FCOmponents.data(); for i,v in data do v.Destroying(); end; - function ExecuteAction(act:TBasicAction):Boolean;virtual; + function ExecuteAction(act:TBasicAction):Boolean;virtual;//执行action begin {** @explan(说明)执行action %% @@ -381,7 +381,7 @@ public end else return False; end - function UpdateAction(act:TBasicAction):Boolean;virtual; + function UpdateAction(act:TBasicAction):Boolean;virtual;//更新action begin {** @explan(说明) 更新action %% @@ -393,7 +393,7 @@ public end else return False; end - function DestroyComponents(); + function DestroyComponents();//销毁子节点 begin {** @explan(说明)删除子项 %% @@ -423,7 +423,7 @@ public end; //function GetParentComponent(); virtual;begin end //function HasParent(); virtual;begin end - function InsertComponent(AComponent);virtual; + function InsertComponent(AComponent);virtual;//插入 begin {** @explan(说明)插入节点 %% @@ -448,11 +448,11 @@ public return ifobj(o); end #!end - private + private //设计器中属性事件相关 FEventsProperties; FChangedProperties; FVariableProperties; - function GetPublishInfo(); + function GetPublishInfo();//属性获取 begin r := publishs(); rr := array(); @@ -476,12 +476,12 @@ public r := r1; end end -public - function publishs();virtual; + public //设计器属性设置相关 + function publishs();virtual;//释放属性 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"); end - function GetPublishproperties();virtual; + function GetPublishproperties();virtual; //获得属性信息 begin {** @explan(说明) 获得properties,设计器使用%% @@ -511,7 +511,7 @@ public //////////////////// return r; end - function GetPublishEvents();virtual; + function GetPublishEvents();virtual; //获得事件信息 begin {** @explan(说明) 获得event值,设计器使用 %% @@ -536,11 +536,11 @@ public OrderPublish(r,pps); return r; end - function GetChangedPropertiesn(n);virtual; + function GetChangedPropertiesn(n);virtual;//获得改变的属性 begin return FChangedProperties[n]; end - function GetChangedPublish(f);virtual; + function GetChangedPublish(f);virtual; //获得改变的属性 begin {** @explan(说明)获取修改过的publish,设计器使用 %% @@ -568,7 +568,7 @@ public end return r; end - function SetChangedPublish(n,v);virtual; + function SetChangedPublish(n,v);virtual;//设置属性 begin {** @explan(说明) 设计器相关函数 %% @@ -577,7 +577,7 @@ public //reindex(FChangedProperties,array(n:nil)); FChangedProperties[n]:= v; end - function DeleteChangedPublish(n);virtual; + function DeleteChangedPublish(n);virtual;//删除属性 begin if n and ifstring(n)then begin @@ -585,7 +585,7 @@ public reindex(FChangedProperties,array(n:nil)); end end - function SetPublish(n,v);virtual; + function SetPublish(n,v);virtual;//设置属性 begin {** @explan(说明) 修改单个值,设计器使用 %% @@ -636,7 +636,7 @@ public end end end - property Owner:tcomponent read FOwner; + property Owner:tcomponent read FOwner; //所有者 {** @param(Owner)(tcomponent) 所有者 %% @param(ComponentState)() 状态集合 %% @@ -648,8 +648,8 @@ public property Components read FComponents; property ComponentState read FComponentState write SetComponentState; 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 asdomain read fasdomain write fasdomain; - property Loader read GetLoader; + property asdomain read fasdomain write fasdomain; //域节点 + property Loader read GetLoader; //加载器 end \ No newline at end of file