diff --git a/MathKrnl.dll b/MathKrnl.dll index feafc93..525a4f6 100644 Binary files a/MathKrnl.dll and b/MathKrnl.dll differ diff --git a/TSLInterp.dll b/TSLInterp.dll index 836bab1..1c51b65 100644 Binary files a/TSLInterp.dll and b/TSLInterp.dll differ diff --git a/d_examples/ListBox/resource.tfm/e_listboxmain.tfm b/d_examples/ListBox/e_listboxmain.tfm similarity index 100% rename from d_examples/ListBox/resource.tfm/e_listboxmain.tfm rename to d_examples/ListBox/e_listboxmain.tfm diff --git a/d_examples/ListView/resource.tfm/e_listviewmain.tfm b/d_examples/ListView/e_listviewmain.tfm similarity index 100% rename from d_examples/ListView/resource.tfm/e_listviewmain.tfm rename to d_examples/ListView/e_listviewmain.tfm diff --git a/d_examples/TreeView/resource.tfm/e_treeviewmain.tfm b/d_examples/TreeView/e_treeviewmain.tfm similarity index 100% rename from d_examples/TreeView/resource.tfm/e_treeviewmain.tfm rename to d_examples/TreeView/e_treeviewmain.tfm diff --git a/d_examples/action/resource.tfm/e_actionmain.tfm b/d_examples/action/e_actionmain.tfm similarity index 100% rename from d_examples/action/resource.tfm/e_actionmain.tfm rename to d_examples/action/e_actionmain.tfm diff --git a/d_examples/desktop.ini b/d_examples/desktop.ini deleted file mode 100644 index d957fd1..0000000 --- a/d_examples/desktop.ini +++ /dev/null @@ -1,4 +0,0 @@ -[ViewState] -Mode= -Vid= -FolderType=Generic diff --git a/d_examples/menu/e_menumain.tfm b/d_examples/menu/e_menumain.tfm new file mode 100644 index 0000000..84ee8f4 --- /dev/null +++ b/d_examples/menu/e_menumain.tfm @@ -0,0 +1,103 @@ +object e_menumain1:e_menumain + caption="菜单范例" + height=392 + left=488 + mainmenu=mainmenu1 + onclose=e_menumain1_close + popupmenu=popupmenu1 + top=220 + width=375 + object mainmenu1:tmainmenu + left=58 + top=73 + height=30 + width=30 + object menu1:tmenu + caption="menu1" + object menu3:tmenu + caption="菜单3" + onclick=menuclick + end + object menu4:tmenu + caption="menu4" + object menu5:tmenu + caption="menu5" + onclick=menuclick + end + end + end + object menu2:tmenu + caption="menu2" + onclick=menuclick + end + end + object popupmenu1:tpopupmenu + left=172 + top=98 + height=30 + width=30 + caption="popupmenu1" + object menu6:tmenu + bitmap={ 900200000000000000020000000200000001000000480300003C0000000000000 + 004000000040000000400000008000000030000000B0000000103000074797065 + 64617461696D6789504E470D0A1A0A0000000D494844520000002000000020080 + 6000000737A7AF4000000017352474200AECE1CE90000000467414D410000B18F + 0BFC6105000000097048597300000EC300000EC301C76FA864000002964944415 + 45847ED964B68135114865D894BC1951BE946A42B752356505C54042D882E846A + 5BA13B6B151491D295B4882B2D08E293D6422D55918AF5416AC5A22008BAD085D + 45A6D9A986812E3249989B1769263FEDB7BAF379957122DA5900F0EC99C398F7F + E69E99B9CB689159FA02326F5FD3B7CE760AECAF67BFC6D8437EA634FE49803E3 + A4293B5AB6862CDF2020B1F3BC423BCF114103BDF455AFF2532E331EEF9CBCCBE + EDACE174FD061687C64284F1CCC7A3DC2910F0BDA79B12B76EF0A379444158A07 + 127690357C94CFC60E770DBD17C76F23D3B065F5AF7B2D868F729EE71470A885F + BF201B850E37CAA210E56FA893E784059A765162A897B27A8AC509D098D5686FE + 61E77A480ACA153B0A54136800895F4AB17143DDB49D33B36CA1866352B2898BF + EAE4DD01CAFD4C33C1F063494AC13203C6D347ECD6A65F8E738F15E3F918454E9 + FA0CFDB6A0BC47C58B792426D0728393C48B95F191EED8EE7107A618CFBE86B47 + 1B4D6DAA2910F371FD6A0A1F6FA5D4C81D22738E475B910252F786D8731CE93AC + 93DE5A3E7DF01688AE6AA18888348FDC903A25C8E47CF2305A80973A120F75A31 + 6311FECF1DDD779FC2475BD8B2A8B5B16CEA7C48017883C52F9FCBDFD251EEB1F + 23BE867457035E5907A3C4CA12307D9C0223F71BB9F9F71980134FAB465ADE551 + C260A20086B45250437D746D05884630153701D1331DB6F3632635CABC7BC38FA + CFC3701221E312AFEDD9B995F7D5BAA2CB80027BFA02AA02AA02A606909C8EA49 + B9FF2B061B98E24D0CA848C0ECD4844CC477A152C4C70BE6F43AB6150066F66C6 + 589F12B3DDC533EC81502C446B6184701DACD6B32195F46AC7B39861C91EFF6F9 + 761400B0D6A248A5A6F55DE4D5EC711500B08ED840408C9D61176C67C829657E3 + C052C348B2C80E80FBF5E212863E9B00A0000000049454E44AE426082 } + caption="menu6" + onclick=menuclick + end + object menu7:tmenu + bitmap={ 9002000000000000000200000002000000010000008C0300003C0000000000000 + 004000000040000000400000008000000030000000B0000004503000074797065 + 64617461696D6789504E470D0A1A0A0000000D494844520000002000000020080 + 6000000737A7AF4000000017352474200AECE1CE90000000467414D410000B18F + 0BFC6105000000097048597300000EC300000EC301C76FA864000002DA4944415 + 45847C597BD6A54411886BD066BADD45E11BC01116C6C142F402C2CAC44112C94 + 947A031606B7515288918022A8202EF107D42A0988C4D5603624EBAE68B2C6282 + A9FFB8CE73D993D993973768DF8C040767EDF39F3CDFB4DB6D87F66200193CDAF + 76A6FEC1F6DF7C6FBBAFCDD9B6D1866DEF95BDD7E7ECE0AD79BBF0B46D77DF7DB + 1C5D59FD9883449012BDF7FD995A94F6ED1AD97672B9791671DEBACA585940AB8 + F8BC637B7A3BF527DE596BD8A189A69D7BDCB61BAF576C7CB66B23BD9D1FB9BD6 + 0BB6A6FFBFAEE1B9BB3B157CBD96C61A2022EBDF8D837D9F9276D9BEE7CCB5AE3 + CCF4FA9CAEB7FAC69E7CD8CA5A37121470F4CE423E78C7D586D5E757B396EAD46 + 6965D7C681EE60CB141006A35E8C483A5AC76780EF78E46F371A445FA04705EEA + CCC014A71EB55C49C14662227201442C4143273E5D8A63F716F349F93B0547495 + F829A9B2572015C1B4DC8F995E12FAE9212411CA92FD75A380118871A89E03242 + 8BABA4447093E887A7082700F7D2245CA318FEE2136FBAC1BFCB44708DD50F570 + 527000BA5122389515C1CF41BAA8AC0C8E883A58313808F53899B85082D0EAA13 + 5544E0A2B4EB189C00920995586A11DF17FCC541F53EBE88900362E1B491CCC00 + 99063E1EB451045E7E2E2A0858A48446843E40FDAC8A4E004F02326A08C988032 + 24405EE304B0432A438ACB1846808E8063072740B93E1684318611A02024F0C10 + 99041945DC310C308D0353C3BE95DC3974B6BF964654654645001BE1129DE9C00 + 3830FEC70B5256EC33A8007D694AB3FBC3D5E50248106A4C2523A1FE55F093118 + 94FE40248917AFF5549C7308800A56352BEFF58CD05008F054D5AE54142445352 + F80F92A2D7F40980E3F7D77D7FB39F64A3539FB3DA75360800DD55CA663D4A635 + F2A280050ABC194BF7996F35563440500E7A577A2CA20FF9810D4A197B04FA900 + 2062FDF7629582A770ADFDC7678CA4008171B05B2C141F279970C664529219F98 + 463C25507A1B2807F83D96FD95753C0FE2C3C9B0000000049454E44AE426082 } + caption="menu7" + onclick=menuclick + end + end +end \ No newline at end of file diff --git a/d_examples/menu/resource.tfm/e_menumain.tfm b/d_examples/menu/resource.tfm/e_menumain.tfm deleted file mode 100644 index 33dfc4a..0000000 --- a/d_examples/menu/resource.tfm/e_menumain.tfm +++ /dev/null @@ -1,101 +0,0 @@ -object e_menumain1:e_menumain - caption="菜单范例" - height=392 - left=488 - mainmenu=mainmenu1 - onclose=e_menumain1_close - popupmenu=popupmenu1 - top=220 - width=375 - object mainmenu1:tmainmenu - left=58 - top=73 - height=30 - width=30 - object menu1:tmenu - caption="menu1" - object menu3:tmenu - caption="菜单3" - onclick=menuclick - end - object menu4:tmenu - caption="menu4" - object menu5:tmenu - caption="menu5" - onclick=menuclick - end - end - end - object menu2:tmenu - caption="menu2" - onclick=menuclick - end - end - object popupmenu1:tpopupmenu - left=172 - top=98 - height=30 - width=30 - caption="popupmenu1" - object menu6:tmenu - bitmap={ 0502000000060400000074797065000203000000696D670006040000006461746 - 100020103000089504E470D0A1A0A0000000D4948445200000020000000200806 - 000000737A7AF4000000017352474200AECE1CE90000000467414D410000B18F0 - BFC6105000000097048597300000EC300000EC301C76FA8640000029649444154 - 5847ED964B68135114865D894BC1951BE946A42B752356505C54042D882E846A5 - BA13B6B151491D295B4882B2D08E293D6422D55918AF5416AC5A22008BAD085D4 - 5A6D9A986812E3249989B1769263FEDB7BAF379957122DA5900F0EC99C398F7FE - 69E99B9CB689159FA02326F5FD3B7CE760AECAF67BFC6D8437EA634FE49803E3A - 4293B5AB6862CDF2020B1F3BC423BCF114103BDF455AFF2532E331EEF9CBCCBEE - DACE174FD061687C64284F1CCC7A3DC2910F0BDA79B12B76EF0A379444158A071 - 27690357C94CFC60E770DBD17C76F23D3B065F5AF7B2D868F729EE71470A885FB - F201B850E37CAA210E56FA893E784059A765162A897B27A8AC509D098D5686FE6 - 1E77A480ACA153B0A54136800895F4AB17143DDB49D33B36CA1866352B2898BFE - AE4DD01CAFD4C33C1F063494AC13203C6D347ECD6A65F8E738F15E3F918454E9F - A0CFDB6A0BC47C58B792426D0728393C48B95F191EED8EE7107A618CFBE86B471 - B4D6DAA2910F371FD6A0A1F6FA5D4C81D22738E475B910252F786D8731CE93AC9 - 3DE5A3E7DF01688AE6AA18888348FDC903A25C8E47CF2305A80973A120F75A316 - 311FECF1DDD779FC2475BD8B2A8B5B16CEA7C48017883C52F9FCBDFD251EEB1F2 - 3BE867457035E5907A3C4CA12307D9C0223F71BB9F9F71980134FAB465ADE551C - 260A20086B45250437D746D05884630153701D1331DB6F3632635CABC7BC38FAC - FC3701221E312AFEDD9B995F7D5BAA2CB80027BFA02AA02AA02A606909C8EA49B - 9FF2B061B98E24D0CA848C0ECD4844CC477A152C4C70BE6F43AB6150066F66C65 - 89F12B3DDC533EC81502C446B6184701DACD6B32195F46AC7B39861C91EFF6F97 - 61400B0D6A248A5A6F55DE4D5EC711500B08ED840408C9D61176C67C829657E3C - 052C348B2C80E80FBF5E212863E9B00A0000000049454E44AE42608200 } - caption="menu6" - onclick=menuclick - end - object menu7:tmenu - bitmap={ 0502000000060400000074797065000203000000696D670006040000006461746 - 100024503000089504E470D0A1A0A0000000D4948445200000020000000200806 - 000000737A7AF4000000017352474200AECE1CE90000000467414D410000B18F0 - BFC6105000000097048597300000EC300000EC301C76FA864000002DA49444154 - 5847C597BD6A54411886BD066BADD45E11BC01116C6C142F402C2CAC44112C949 - 47A031606B7515288918022A8202EF107D42A0988C4D5603624EBAE68B2C6282A - 9FFB8CE73D993D993973768DF8C040767EDF39F3CDFB4DB6D87F66200193CDAF7 - 6A6FEC1F6DF7C6FBBAFCDD9B6D1866DEF95BDD7E7ECE0AD79BBF0B46D77DF7DB1 - C5D59FD9883449012BDF7FD995A94F6ED1AD97672B9791671DEBACA585940AB8F - 8BC637B7A3BF527DE596BD8A189A69D7BDCB61BAF576C7CB66B23BD9D1FB9BD60 - BB6A6FFBFAEE1B9BB3B157CBD96C61A2022EBDF8D837D9F9276D9BEE7CCB5AE3C - CF4FA9CAEB7FAC69E7CD8CA5A37121470F4CE423E78C7D586D5E757B396EAD466 - 965D7C681EE60CB141006A35E8C483A5AC76780EF78E46F371A445FA04705EEAC - CC014A71EB55C49C14662227201442C4143273E5D8A63F716F349F93B0547495F - 829A9B2572015C1B4DC8F995E12FAE9212411CA92FD75A380118871A89E032428 - BABA4447093E887A7082700F7D2245CA318FEE2136FBAC1BFCB44708DD50F5705 - 27000BA5122389515C1CF41BAA8AC0C8E883A58313808F53899B85082D0EAA135 - 544E0A2B4EB189C00920995586A11DF17FCC541F53EBE88900362E1B491CCC009 - 9063E1EB451045E7E2E2A0858A48446843E40FDAC8A4E004F02326A08C9880322 - 4405EE304B0432A438ACB1846808E8063072740B93E1684318611A02024F0C109 - 9041945DC310C308D0353C3BE95DC3974B6BF964654654645001BE1129DE9C003 - 830FEC70B5256EC33A8007D694AB3FBC3D5E50248106A4C2523A1FE55F0931189 - 4FE40248917AFF5549C7308800A56352BEFF58CD05008F054D5AE54142445352F - 80F92A2D7F40980E3F7D77D7FB39F64A3539FB3DA75360800DD55CA663D4A635F - 2A280050ABC194BF7996F35563440500E7A577A2CA20FF9810D4A197B04FA9002 - 062FDF7629582A770ADFDC7678CA4008171B05B2C141F279970C664529219F984 - 63C25507A1B2807F83D96FD95753C0FE2C3C9B0000000049454E44AE42608200 } - caption="menu7" - onclick=menuclick - end - end -end \ No newline at end of file diff --git a/d_examples/toolbar/e_toolbarmain.tfm b/d_examples/toolbar/e_toolbarmain.tfm new file mode 100644 index 0000000..578017f --- /dev/null +++ b/d_examples/toolbar/e_toolbarmain.tfm @@ -0,0 +1,167 @@ +object e_toolbarmain1:e_toolbarmain + caption="工具栏范例" + height=520.0 + left=429 + onclose=e_toolbarmain1_close + top=236 + width=664 + object toolbar1:ttoolbar + caption="toolbar1" + height=29 + imagelist=controlimagelist1 + width=648 + object toolbutton1:ttoolbutton + caption="按钮1" + imageid=0 + onclick=toolbaritemclick + end + object toolbutton2:ttoolbutton + caption="按钮2" + imageid=1 + onclick=toolbaritemclick + end + object toolbutton3:ttoolbutton + caption="按钮3" + imageid=2 + onclick=toolbaritemclick + end + object toolbutton4:ttoolbutton + caption="toolbutton4" + imageid=4 + onclick=toolbaritemclick + end + object toolbutton5:ttoolbutton + caption="toolbutton5" + imageid=3 + onclick=toolbaritemclick + end + end + object controlimagelist1:tcontrolimagelist + left=84 + top=114 + images={ 900200000000000000020000000000000000000000B40F00003E0000000000000 + 0040000000400000005000000020900000004000000050D000000690F00007479 + 70656974656D73626D70739005000000020000000000000002000000020000006 + 80F00007E00000000000000040000000400000004000000020208000000030000 + 000B0000009F020000AA02000003000000AD020000D3030000800600000300000 + 083060000DB0200005E0900000300000061090000F8020000590C000003000000 + 5C0C00008E0200007479706564617461696D6789504E470D0A1A0A0000000D494 + 8445200000020000000200806000000737A7AF4000000017352474200AECE1CE9 + 0000000467414D410000B18F0BFC6105000000097048597300000EC300000EC30 + 1C76FA86400000234494441545847ED96CDCB69511487EF5F6BC25061A048C940 + 9181C840182829C554664AEFC04C0C0C64A0440626C8E0DC9E75D73E6DC7E1E55 + EEE3BF1D41A9CB5D6DEFB77F6C7DAFB97F3C37C047C045C08C866B34E201078DA + 686768341ABE39582C1693B8CD4B056CB75BDFB8D77ABD9EE4C34B9760381CCA0 + 0D56A553D97CC663389472211F5BC588099C16EB7AB9E4BCEE7B3C483C1A07A3C + 0268C83A91F4B7964C269DC3E1A03D5EB2DFEF25271C0EABC712C0BA783B7BD6C + AE5B233994CB4C76BD6EBB5E4C5E371F55802581782ACD3BB582C1632463A9D56 + 8F2520140A49F0743AA9E7F54CA753192397CBA9C712108D4625B8DBEDD4F3185 + F5F5FCE6834D2AFFB8CC76319A3542AA9C712904AA524B85C2ED5F318DFED7C1B + 734C6BB59A7A2C01F97C5E82F736911FABD5CA4924120F89E8F7FB92D76AB5D46 + 309A8542A12644A6FC1F16293FA99116157392FE6A4D9425D01CD66538283C140 + 3DD79829FCCE10E4077F4E9C9930B802FCD479A1D613B78D7658A15090F6C5625 + 1B3AF61EDC9E1470CAE00FE9C2033F12CF57A5DDAB28F8EC7A37AAF61F793C769 + 30B802587B82EC8567E8743AD22E93C948A9BD07E79F5CEA81C115C0EE377FF12 + 8F3F95CDA50FF379B8D7A6F4305249F8A68700570FE09520F9E816378EBF2F1C2 + 1DC018DC0906570015902015F15D700B3286BD54AE00EE0082DC09EF82770063F + 02E30B802E09D37227DD2B7FD1A820B019C6B92DE69ED765B47FBC3850040C4BF + BE8AFC8C3E79B078B912F0BFF908F861018EF31BE3A64DABEA577256000000004 + 9454E44AE426082696D6789504E470D0A1A0A0000000D49484452000000300000 + 003008060000005702F987000000017352474200AECE1CE90000000467414D410 + 000B18F0BFC6105000000097048597300000EC300000EC301C76FA86400000368 + 494441546843ED98DB4B14511CC7FB837AEB35287A080A8A1E844088EA2108C94 + 8222822BAA0629682742122C9D0BC84B5A246E135EFBAAEAB99AD46522A5B5E48 + 2C5371E7F66DCECE6FDCD9F1CCECCD7194F6035FD839F33D737EDFD939672E7BB + 0CB4907709B74002EBF2781BA1380AF981A9CC39900A3CF80B2BD9A825DD4E80C + D60116C781F76781E6F3407B0ED07915E8BD050CE40383F701FF03400E91D904E + BA70718794C8D26E687D4639400DE42A03F0FE8BE01745C01DAB281A6735ADBCA + 2C99ADB10E507B3852044FC38FC8C8C118C0CEC74E8EF198668D9591D11AEB00B + C031AB530A2F9E687B5B3CCC48A653207304BE75369F431CD327A2D482E407D06 + 9954DE66F23D769A6ED6FA2E06F8FB753916C0B8BAD41CE47BEC345E499D553CC + 7F81E26C702B009AE136BAEF0642CCC5BC0F7303912C0739C0CC4DF2030EB4D4C + 46D8366F1C266702A87FF95632DDC21F87C99100E5FBB4FB81F9AC26A3892AE0F + 511FE384C8ECD81ED523A80DB4A07705BE900B1F4EA90F640C65B22EDE4BDCB3F + 9E598E07E8CB257312189F58ADE47880EEEB644E106175870460626F506CA0441 + 4EF2338F3C6E03F9FC44E2B1D201EB117733650228A670233316F0C520BD0758D + CC49102B04BB57C4416A01D87B41B2D8050854904943595A53975E99B6A249FD1 + 2B25B46F5CF2D66597D0FAADA0FCCB453012A7FD621167E4028A31CA153D5106B + E8538E819D33891B4F024B5F69700DB1C2AF156F90DC33457B35764600F6E992D + D9D09A92100B1A43BFC5B2CEE8C0A209CA98132F92BBC8FE17E005F110DA8A228 + 109F0E6C142B95F9A02CAC40C8AE8B0A2116755207B7034C54D3606AED3F9721D + C6E8E2A9489FD1BF2F08F4DED3AEE04A83E0004B54B84C10A14B23C9B8AD425F7 + 4D43F28C6D6C4BE57EEAE95680858F34885AFCBB2F51C572755ABDEE3FCF417CD + 803E9C510F5D4D8FE006F8ED200EA65E30B42BCD9145E1EB9851B245CAA8732B3 + 443D236C7F00C34B9058EA8570B911CAE22AC47B1DDCC299C4DC56286B02F58AC + 6850077680035405EAB56A05A3C96D7C361CCC54B4FFAC9CDC73A40DB457E01A9 + AA258B0600421722CBA3F4D20F796C0EA1CCCA485BED2839ADB10EC0E0BD906F8 + 508BD505D72D77708EA9C608F0D72C73772D9631FC061E4DE2948CF072116B443 + C8698090590531BF0D72609E1CB17135C056900EE036BB3C00F00FB4FD2774447 + C293D0000000049454E44AE426082696D6789504E470D0A1A0A0000000D494844 + 5200000020000000200806000000737A7AF4000000017352474200AECE1CE9000 + 0000467414D410000B18F0BFC6105000000097048597300000EC300000EC301C7 + 6FA86400000270494441545847D596CB6A2A411086CF0BBA72A3A851541414043 + 722EE44111782BAF182260441B7826F6188E015DCB81111172AC4B55087BFE89E + 8CE3CCD8E6C484F341914A55F7F43F5D3DD5FEA15FE6FF13301C0EA95AAD92C7E + 32197CB45D1689452A914F5FB7DDA6EB762943ACA0276BB1D65B35972381CB656 + 2814E870388859B7511230994C281C0EF3028944823A9D0EAD562B91253A1E8FD + 4EBF5C8EFF7F398582C46F3F95C64EDB92960B3D9F076E3C1E572993E3E3E44E6 + 1A942097CB69BBB15C2E45C69A9B02506F3CAC56AB89C86DBADD2ECF29954A226 + 28DAD80E974CA0F72BBDDBC13AAA024B21CEFEFEF226A8EAD80F57A4DF1789CDF + E85E702620A05EAFF3FFFBFD9E4EA713FB7A940EE13D542A150A8542D46AB5584 + 02693E15D808F9731F2ED02DAED362F260DE583C137DB495301AFAFAF6C5F452F + C2E974F25F7C41665C09188D46DA64F85F65301868CF49A7D3743E9F45E6922B0 + 1B27630F8FFC2DBDB1B6F3BBAA8155702D0DBA500F88FE642C0783CE6859F9E9E + D8E023F6482E04BCBCBCF0A2CD66930D3E62F780CF0EF3A4A121E5F37991BDE64 + 280BC707091C0E023760FFAC58D66862660369BF1A060302822C43E62C8A9625C + 0CDD54DE0DC56251443FD1043C3F3F6B938D869C2A728E1E79A7F87C3E11F9441 + 3100804B4C946434E153947CF4D018BC582074422110EEA410C398C51C1280025 + 9017936509E489470B3522DB2AC6A820059899D9D7C002BC5E2F0F306BBDB2356 + 38C0AFA05AD4C0F0BC0AFDA46A3C1013392C9247FDF2A982D02ACBE06ED107E17 + 560280D961FC5101D805E4D01D253F26006F2F4BA03F8C0F1360677ABE5D80F13 + 29286BADBB6E2DFE2970510FD05E1AD4F7F1B5448FE0000000049454E44AE4260 + 82696D6789504E470D0A1A0A0000000D494844520000002000000020080600000 + 0737A7AF4000000017352474200AECE1CE90000000467414D410000B18F0BFC61 + 05000000097048597300000EC300000EC301C76FA8640000028D494441545847C + 5973D6814411480B7B25050045B259D8595A0A5550AB5B00A626163255A5A5B28 + B676E92C14091A8B84E01F88281844A208FE8128722268E7DE9D5E363197E4923 + CF79B9BB7EEE6CE9DD9BDD3FD608ED937F3E6BD9B7DF3DE6C209EB456D665E273 + 5BC69EB464FFDDA6EC996AC8D61BA169F4919D989D9799AFCB12AD6E582D374E0 + 73EB43A72F679243B26EB125CFF6EDA968950764FD5E5C0BDA669F491E9F8CEC9 + D0E8A0EB22D781F3AF1765FBCDAEE1C38F7ECA85370B3217AEDAD15E5E353A72F + 9FD2F3912CF45075DD6C8E3AF0E1C9F6D9945F6CE34E46AAD6DA5FEA0832E6B1C + 7AF0C34A7BE9EBC0C87457F14CBC8DF5F6BA9516075DFD23BB6E85569AA5C7012 + 6A2C0760F8B934FE7CD9AFCB1CD641C60AB9888C2B0E10FB1363B9226718060E9 + 376198F04AB1910E4CE300C7858825680679E72E581B1BD8D2236A1CE0CCE259D + 1683FF73232AD08D8C0163621206B91388EC667B7282C442B0A3985C446760D48 + 9D2C32FE71C90EFB53D6818B6FBBF1466A0FC8DF3CD4A2353BEC4F5907C8A6E85 + 157028AC8B6B8A094A1AC0340EDC0764025EB97207C18C4010A18B603CAE9C1FB + 4D2B2EC6200E5045B16D1CE0218F53CF22B34BD76AD940EDE70073988B4E1E890 + 36C03DB9187462DEDD2BB5416DBE400632A73D592E415100804848B2B9F9692C5 + 4FCFD924629F01993E33D74512847A0CB94CB8B8F36DD9242DE61F7BDCBD74A4F + B8C31C745E6186A22E226E3C38B7A47F6DD8E3DB7C6B52163CC07AD8C2611692A + E61AE5CB978535197DF86707E823F325938A119429468B9D0DF3DE69F47DE9294 + 6FC545E8EA1D20B8952E9954CA9F452AA3011854AAEE58A2A123445AF6A800EBA + AC51F8C3442158885816F9EF9F660AC785335BC9C7699A7FF3792EF21B1F1CB3C + 87955C3470000000049454E44AE426082696D6789504E470D0A1A0A0000000D49 + 48445200000020000000200806000000737A7AF4000000017352474200AECE1CE + 90000000467414D410000B18F0BFC6105000000097048597300000EC300000EC3 + 01C76FA86400000223494441545847ED972DAB024114860D824D2C7693C560103 + 409FA038C62B008828A3FC0EA57B268320882980D822206838A4530F80BC42236 + ABC570EE3D7BE7EC9DFD9A9D5D96850BF78117768ECE996757775603204920108 + 0CD66C34662B2D92C9CCF673612232DF07ABD20994CB2D10FEFF71B2E970B7C3E + 1F56F9A1DFEFB3237BA4059056AB05F3F91CDAED36643219E5AA6082C120A4D36 + 9A8D7EB50AD56E1F97CB219F6480BDCEF77A8542AEAA256894422301C0ED92C7B + A404F6FBBDE962A2148B45365B8CADC0E974825028A4344DA552301E8F0D8BF1E + 16565246C054AA592DA1005ECAE06BE1E0E87D5F16432619DCC110ADC6E37F5EC + DD06A5450805F01B6FD6D4691E8F07EB684428D068344C1B3A8D6853D208D0AD8 + 69F2372381C6C733C1EA582E0FE81E1D108C46231D57A3A9D42A7D3D19C89DBE0 + 09E11D41E372B9CC56E404F4DFEE5C2E07BD5E4F53731BB33B87F04560B7DB196 + A84A5403E9FF74C60BBDD1A6A842F02EBF5DA50237C11582E97861A2114E876BB + 9A9ADB2C160B438DF04560B55A196A842F02FADE184228E0E546A4AF11BF47DFE + 0938BDE8093BC14A8D56AEA188F098DC0F57A85D168A44C4070DFE61BB90DF6C3 + E7CC6C365382C78446408F9702560805F08A98357492783CCEBA99231440D01E9 + F0B187D73AAEB5FA3DA6030605DACB115E0E117C11028C9D7717159FE05FE9600 + 36365B04FF0BF202FADF7D221C09E0CE98482494E81769369B108D46A15028B08 + A0C005F1ECEF59244AA69250000000049454E44AE426082 } + end +end \ No newline at end of file diff --git a/d_examples/toolbar/resource.tfm/e_toolbarmain.tfm b/d_examples/toolbar/resource.tfm/e_toolbarmain.tfm deleted file mode 100644 index 34ad42d..0000000 --- a/d_examples/toolbar/resource.tfm/e_toolbarmain.tfm +++ /dev/null @@ -1,168 +0,0 @@ -object e_toolbarmain1:e_toolbarmain - caption="工具栏范例" - height=520.0 - left=429 - onclose=e_toolbarmain1_close - top=236 - width=664 - object toolbar1:ttoolbar - caption="toolbar1" - height=29 - imagelist=controlimagelist1 - width=648 - object toolbutton1:ttoolbutton - caption="按钮1" - imageid=0 - onclick=toolbaritemclick - end - object toolbutton2:ttoolbutton - caption="按钮2" - imageid=1 - onclick=toolbaritemclick - end - object toolbutton3:ttoolbutton - caption="按钮3" - imageid=2 - onclick=toolbaritemclick - end - object toolbutton4:ttoolbutton - caption="toolbutton4" - imageid=4 - onclick=toolbaritemclick - end - object toolbutton5:ttoolbutton - caption="toolbutton5" - imageid=3 - onclick=toolbaritemclick - end - end - object controlimagelist1:tcontrolimagelist - left=84 - top=114 - images={ 0502000000060400000074797065000204000000626D707300060500000069746 - 56D73000505000000000000000005020000000604000000747970650002030000 - 00696D670006040000006461746100029F02000089504E470D0A1A0A0000000D4 - 948445200000020000000200806000000737A7AF4000000017352474200AECE1C - E90000000467414D410000B18F0BFC6105000000097048597300000EC300000EC - 301C76FA86400000234494441545847ED96CDCB69511487EF5F6BC25061A048C9 - 409181C840182829C554664AEFC04C0C0C64A0440626C8E0DC9E75D73E6DC7E1E - 55EEE3BF1D41A9CB5D6DEFB77F6C7DAFB97F3C37C047C045C08C866B34E201078 - DA686768341ABE39582C1693B8CD4B056CB75BDFB8D77ABD9EE4C34B9760381CC - A00D56A553D97CC663389472211F5BC588099C16EB7AB9E4BCEE7B3C483C1A07A - 3C0268C83A91F4B7964C269DC3E1A03D5EB2DFEF25271C0EABC712C0BA783B7BD - 6CAE5B233994CB4C76BD6EBB5E4C5E371F55802581782ACD3BB582C1632463A9D - 568F2520140A49F0743AA9E7F54CA753192397CBA9C712108D4625B8DBEDD4F31 - 85F5F5FCE6834D2AFFB8CC76319A3542AA9C712904AA524B85C2ED5F318DFED7C - 1B734C6BB59A7A2C01F97C5E82F736911FABD5CA4924120F89E8F7FB92D76AB5D - 46309A8542A12644A6FC1F16293FA99116157392FE6A4D9425D01CD66538283C1 - 403DD79829FCCE10E4077F4E9C9930B802FCD479A1D613B78D7658A15090F6C56 - 251B3AF61EDC9E1470CAE00FE9C2033F12CF57A5DDAB28F8EC7A37AAF61F793C7 - 6930B802587B82EC8567E8743AD22E93C948A9BD07E79F5CEA81C115C0EE377FF - 128F3F95CDA50FF379B8D7A6F4305249F8A68700570FE09520F9E816378EBF2F1 - C21DC018DC0906570015902015F15D700B3286BD54AE00EE0082DC09EF8277006 - 3F02E30B802E09D37227DD2B7FD1A820B019C6B92DE69ED765B47FBC3850040C4 - BFBE8AFC8C3E79B078B912F0BFF908F861018EF31BE3A64DABEA5772560000000 - 049454E44AE426082000001000000050200000006040000007479706500020300 - 0000696D67000604000000646174610002D303000089504E470D0A1A0A0000000 - D49484452000000300000003008060000005702F987000000017352474200AECE - 1CE90000000467414D410000B18F0BFC6105000000097048597300000EC300000 - EC301C76FA86400000368494441546843ED98DB4B14511CC7FB837AEB35287A08 - 0A8A1E844088EA2108C948222822BAA0629682742122C9D0BC84B5A246E135EFB - AAEAB99AD46522A5B5E482C5371E7F66DCECE6FDCD9F1CCECCD7194F6035FD839 - F33D737EDFD939672E7BB0CB4907709B74002EBF2781BA1380AF981A9CC39900A - 3CF80B2BD9A825DD4E80CD60116C781F76781E6F3407B0ED07915E8BD050CE403 - 83F701FF03400E91D904EBA70718794C8D26E687D4639400DE42A03F0FE8BE017 - 45C01DAB281A6735ADBCA2C99ADB10E507B3852044FC38FC8C8C118C0CEC74E8E - F198668D9591D11AEB00BC031AB530A2F9E687B5B3CCC48A653207304BE75369F - 431CD327A2D482E407D069954DE66F23D769A6ED6FA2E06F8FB753916C0B8BAD4 - 1CE47BEC345E499D553CC7F81E26C702B009AE136BAEF0642CCC5BC0F7303912C - 0739C0CC4DF2030EB4D4C46D8366F1C266702A87FF95632DDC21F87C99100E5FB - B4FB81F9AC26A3892AE0F511FE384C8ECD81ED523A80DB4A07705BE900B1F4EA9 - 0F640C65B22EDE4BDCB3F9E598E07E8CB257312189F58ADE47880EEEB644E1061 - 75870460626F506CA04414EF2338F3C6E03F9FC44E2B1D201EB117733650228A6 - 70233316F0C520BD0758DCC49102B04BB57C4416A01D87B41B2D8050854904943 - 595A53975E99B6A249FD12B25B46F5CF2D66597D0FAADA0FCCB453012A7FD6211 - 67E4028A31CA153D5106BE8538E819D33891B4F024B5F69700DB1C2AF156F90DC - 33457B35764600F6E992DD9D09A92100B1A43BFC5B2CEE8C0A209CA98132F92BB - C8FE17E005F110DA8A228109F0E6C142B95F9A02CAC40C8AE8B0A2116755207B7 - 034C54D3606AED3F9721DC6E8E2A9489FD1BF2F08F4DED3AEE04A83E0004B54B8 - 4C10A14B23C9B8AD425F74D43F28C6D6C4BE57EEAE95680858F34885AFCBB2F51 - C572755ABDEE3FCF417CD803E9C510F5D4D8FE006F8ED200EA65E30B42BCD9145 - E1EB9851B245CAA8732B3443D236C7F00C34B9058EA8570B911CAE22AC47B1DDC - C299C4DC56286B02F58AC6850077680035405EAB56A05A3C96D7C361CCC54B4FF - AC9CDC73A40DB457E01A9AA258B0600421722CBA3F4D20F796C0EA1CCCA485BED - 2839ADB10EC0E0BD906F8508BD505D72D77708EA9C608F0D72C73772D9631FC06 - 1E4DE2948CF072116B443C8698090590531BF0D72609E1CB17135C056900EE036 - BB3C00F00FB4FD2774447C293D0000000049454E44AE426082000002000000050 - 2000000060400000074797065000203000000696D670006040000006461746100 - 02DB02000089504E470D0A1A0A0000000D4948445200000020000000200806000 - 000737A7AF4000000017352474200AECE1CE90000000467414D410000B18F0BFC - 6105000000097048597300000EC300000EC301C76FA8640000027049444154584 - 7D596CB6A2A411086CF0BBA72A3A851541414043722EE44111782BAF182260441 - B7826F6188E015DCB81111172AC4B55087BFE89E8CE3CCD8E6C484F341914A55F - 7F43F5D3DD5FEA15FE6FF13301C0EA95AAD92C7E32197CB45D1689452A914F5FB - 7DDA6EB762943ACA0276BB1D65B35972381CB6562814E870388859B7511230994 - C281C0EF3028944823A9D0EAD562B91253A1E8FD4EBF5C8EFF7F398582C46F3F9 - 5C64EDB92960B3D9F076E3C1E572993E3E3E44E61A942097CB69BBB15C2E45C69 - A9B02506F3CAC56AB89C86DBADD2ECF29954A22628DAD80E974CA0F72BBDDBC13 - AAA024B21CEFEFEF226A8EAD80F57A4DF1789CDFE85E702620A05EAFF3FFFBFD9 - E4EA713FB7A940EE13D542A150A8542D46AB558402693E15D808F9731F2ED02DA - ED362F260DE583C137DB495301AFAFAF6C5F452FC2E974F25F7C41665C09188D4 - 6DA64F85F65301868CF49A7D3743E9F45E6922B01B27630F8FFC2DBDB1B6F3BBA - A8155702D0DBA500F88FE642C0783CE6859F9E9ED8E023F6482E04BCBCBCF0A2C - D66930D3E62F780CF0EF3A4A121E5F37991BDE64280BC707091C0E023760FFAC5 - 8D66862660369BF1A060302822C43E62C8A9625C0CDD54DE0DC56251443FD1043 - C3F3F6B938D869C2A728E1E79A7F87C3E11F94413100804B4C946434E153947CF - 4D018BC582074422110EEA410C398C51C12800259017936509E489470B3522DB2 - AC6A820059899D9D7C002BC5E2F0F306BBDB235638C0AFA05AD4C0F0BC0AFDA46 - A3C1013392C9247FDF2A982D02ACBE06ED107E17560280D961FC5101D805E4D01 - D253F26006F2F4BA03F8C0F1360677ABE5D80F1329286BADBB6E2DFE2970510FD - 05E1AD4F7F1B5448FE0000000049454E44AE42608200000300000005020000000 - 60400000074797065000203000000696D67000604000000646174610002F80200 - 0089504E470D0A1A0A0000000D4948445200000020000000200806000000737A7 - AF4000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 - 00097048597300000EC300000EC301C76FA8640000028D494441545847C5973D6 - 814411480B7B25050045B259D8595A0A5550AB5B00A626163255A5A5B28B676E9 - 2C14091A8B84E01F88281844A208FE8128722268E7DE9D5E363197E4923CF79B9 - BB7EEE6CE9DD9BDD3FD608ED937F3E6BD9B7DF3DE6C209EB456D665E2735BC69E - B464FFDDA6EC996AC8D61BA169F4919D989D9799AFCB12AD6E582D374E073EB43 - A72F679243B26EB125CFF6EDA968950764FD5E5C0BDA669F491E9F8CEC9D0E8A0 - EB22D781F3AF1765FBCDAEE1C38F7ECA85370B3217AEDAD15E5E353A72F9FD2F3 - 912CF45075DD6C8E3AF0E1C9F6D9945F6CE34E46AAD6DA5FEA0832E6B1C7AF0C3 - 4A7BE9EBC0C87457F14CBC8DF5F6BA9516075DFD23BB6E85569AA5C70126A2C07 - 60F8B934FE7CD9AFCB1CD641C60AB9888C2B0E10FB1363B9226718060E9376198 - F04AB1910E4CE300C7858825680679E72E581B1BD8D2236A1CE0CCE259D1683FF - 73232AD08D8C0163621206B91388EC667B7282C442B0A3985C446760D489D2C32 - FE71C90EFB53D6818B6FBBF1466A0FC8DF3CD4A2353BEC4F5907C8A6E85157028 - AC8B6B8A094A1AC0340EDC0764025EB97207C18C4010A18B603CAE9C1FB4D2B2E - C6200E5045B16D1CE0218F53CF22B34BD76AD940EDE70073988B4E1E89036C03D - B9187462DEDD2BB5416DBE400632A73D592E415100804848B2B9F9692C54FCFD9 - 24629F01993E33D74512847A0CB94CB8B8F36DD9242DE61F7BDCBD74A4FB8C31C - 745E6186A22E226E3C38B7A47F6DD8E3DB7C6B52163CC07AD8C2611692AE61AE5 - CB978535197DF86707E823F325938A119429468B9D0DF3DE69F47DE92946FC545 - E8EA1D20B8952E9954CA9F452AA3011854AAEE58A2A123445AF6A800EBAAC51F8 - C3442158885816F9EF9F660AC785335BC9C7699A7FF3792EF21B1F1CB3C87955C - 3470000000049454E44AE42608200000400000005020000000604000000747970 - 65000203000000696D670006040000006461746100028E02000089504E470D0A1 - A0A0000000D4948445200000020000000200806000000737A7AF4000000017352 - 474200AECE1CE90000000467414D410000B18F0BFC61050000000970485973000 - 00EC300000EC301C76FA86400000223494441545847ED972DAB024114860D824D - 2C7693C560103409FA038C62B008828A3FC0EA57B268320882980D822206838A4 - 530F80BC42236ABC570EE3D7BE7EC9DFD9A9D5D96850BF78117768ECE99675777 - 56032049201080CD66C34662B2D92C9CCF673612232DF07ABD20994CB2D10FEFF - 71B2E970B7C3E1F56F9A1DFEFB3237BA4059056AB05F3F91CDAED36643219E5AA - 6082C120A4D369A8D7EB50AD56E1F97CB219F6480BDCEF77A8542AEAA25689442 - 2301C0ED92C7BA404F6FBBDE962A2148B45365B8CADC0E974825028A4344DA552 - 301E8F0D8BF1E16565246C054AA592DA1005ECAE06BE1E0E87D5F16432619DCC1 - 10ADC6E37F5ECDD06A5450805F01B6FD6D4691E8F07EB684428D068344C1B3A8D - 6853D208D0AD869F2372381C6C733C1EA582E0FE81E1D108C46231D57A3A9D42A - 7D3D19C89DBE009E11D41E372B9CC56E404F4DFEE5C2E07BD5E4F53731BB33B87 - F04560B7DB196A84A5403E9FF74C60BBDD1A6A842F02EBF5DA50237C11582E978 - 61A2114E876BB9A9ADB2C160B438DF04560B55A196A842F02FADE184228E0E546 - A4AF11BF47DFE0938BDE8093BC14A8D56AEA188F098DC0F57A85D168A44C4070D - FE61BB90DF6C3E7CC6C365382C78446408F9702560805F08A98357492783CCEBA - 99231440D01E9F0B187D73AAEB5FA3DA6030605DACB115E0E117C11028C9D7717 - 159FE05FE960036365B04FF0BF202FADF7D221C09E0CE98482494E81769369B10 - 8D46A15028B08A0C005F1ECEF59244AA69250000000049454E44AE42608200 } - end -end \ No newline at end of file diff --git a/designer/ctl_mgr/resource.tfm/t_compile_config.tfm b/designer/ctl_mgr/resource.tfm/t_compile_config.tfm deleted file mode 100644 index 091d18d..0000000 --- a/designer/ctl_mgr/resource.tfm/t_compile_config.tfm +++ /dev/null @@ -1,368 +0,0 @@ -object ed_script:t_compile_config - caption="编译选项设置" - height=681 - left=618 - minmaxbox=false - onclose=compile_config_close - top=180 - width=502 - wssizebox=true - object bt_ok:tbtn - caption="确定" - height=31 - left=405 - onclick=bt_ok_clk - parentcolor=false - top=582 - width=55 - end - object gp_dir:tgroupbox - caption="输入目录" - height=87 - left=24 - parentcolor=true - top=181 - width=442 - object bt_f_dir:tbtn - caption=".." - height=23 - left=408 - onclick=bt_f_dir_clk - top=20 - width=24 - end - object bt_s_dir:tbtn - caption="..." - height=23 - left=408 - onclick=bt_s_dir_clk - top=51 - width=24 - end - object label1:tlabel - left=14 - top=20 - width=68 - height=23 - caption="函数目录" - end - object ed_f_dirs:tedit - caption="edit1" - height=22 - left=87 - top=21 - width=312 - end - object label2:tlabel - left=13 - top=51 - width=60 - height=23 - caption="资源目录" - end - object ed_s_dirs:tedit - caption="edit2" - height=23 - left=87 - top=51 - width=311 - end - end - object gp_filter:tgroupbox - caption="筛选" - height=164 - left=27 - parentcolor=true - top=269 - width=437 - object lb_s_type:tlabel - left=11 - top=20 - width=92 - height=25 - caption="资源文件后缀" - end - object ed_s_type:tedit - caption="edit2" - height=27 - left=112 - text="*.tfm,*.ini" - top=20 - width=290 - end - object bt_i_f:tbtn - caption="..." - height=22 - left=408 - onclick=bt_i_f_clk - top=83 - width=21 - end - object bt_d_f:tbtn - caption="..." - height=21 - left=408 - onclick=bt_d_f_clk - top=136 - width=21 - end - object bt_i_s:tbtn - caption="..." - height=22 - left=408 - onclick=bt_i_s_clk - top=54 - width=21 - end - object label3:tlabel - left=13 - top=51 - width=61 - height=25 - caption="指定资源" - end - object ed_include_s:tedit - caption="edit1" - height=25 - left=84 - top=52 - width=317 - end - object label4:tlabel - left=11 - top=83 - width=63 - height=25 - caption="指定函数" - end - object ed_include_f:tedit - caption="" - height=23 - left=84 - top=83 - width=317 - end - object label5:tlabel - left=12 - top=133 - width=61 - height=25 - caption="排除函数" - end - object ed_exclude_f:tedit - caption="" - height=22 - left=84 - top=136 - width=317 - end - object lb_tsg:tlabel - left=11 - top=106 - width=63 - height=25 - caption="tsg库" - end - object ed_tsg:tedit - caption="edit1" - height=22 - left=84 - top=111 - width=318 - end - object bt_tsgadd:tbtn - caption="..." - height=21 - left=408 - onclick=bt_tsgadd_clk - top=111 - width=21 - end - end - object gp_out:tgroupbox - caption="输出" - height=123 - left=27 - parentcolor=true - top=48 - width=433 - object lb_ype:tlabel - left=14 - top=17 - width=53 - height=25 - caption="类型" - end - object cb_type:tcombobox - caption="combobox1" - height=23 - itemindex=0 - items=["执行程序" "动态库" tsg ] - left=79 - onselchanged=cb_type_sel - top=18 - width=131 - end - object lb_output:tlabel - left=13 - top=45 - width=46 - height=25 - caption="输出" - end - object ed_output:tedit - caption="edit1" - height=25 - left=79 - placeholder="输出文件" - top=48 - width=320 - end - object bt_output:tbtn - caption="..." - enabled=false - height=23 - left=404 - onclick=bt_output_clk - top=86 - width=22 - end - object bt_outputname:tbtn - caption="..." - height=25 - left=404 - onclick=bt_outputname_clk - top=48 - width=22 - end - object lb_output_f:tlabel - left=14 - top=83 - width=60 - height=25 - caption="输出函数" - end - object ed_out_f:tedit - caption="edit1" - height=25 - left=79 - top=86 - width=320 - end - end - object bt_cancel:tbtn - caption="取消" - height=31 - left=332 - onclick=bt_cancel_clk - top=582 - width=55 - end - object gp_other:tgroupbox - caption="其他" - height=129 - left=27 - parentcolor=true - top=440 - width=437 - object ck_gui:tcheckbtn - caption="gui" - height=25 - left=17 - top=25 - width=75 - end - object ck_strong:tcheckbtn - caption="强引用函数" - height=25 - left=122 - onclick=checkbtn2_clk - top=25 - width=98 - end - object ck_s_rp:tcheckbtn - caption="资源文件保留相对路径" - enabled=false - height=25 - left=253 - top=25 - width=173 - end - object lb_ico:tlabel - left=17 - top=59 - width=66 - height=25 - caption=" 图 标:" - end - object ed_ico:tedit - caption="edit3" - height=25 - left=94 - top=58 - width=277 - end - object bt_ico:tbtn - caption="..." - height=25 - left=386 - onclick=bt_ico_clk - top=58 - width=22 - end - object l_namespace:tlabel - left=17 - top=93 - width=75 - height=25 - caption="namespace:" - end - object e_namespace:tedit - caption="edit1" - height=25 - left=94 - top=93 - width=278 - end - end - object f_op:topenfileadlg - left=15 - top=575 - height=30 - width=30 - caption="openfileadlg1" - filter=< - "ico图标"="*.ico" - > - end - object lb_input:tlabel - left=32 - top=16 - width=63 - height=25 - caption="主程序" - end - object e_script:tedit - caption="edit1" - height=25 - left=98 - top=16 - width=331 - end - object bt_script:tbtn - caption="..." - height=25 - left=437 - onclick=bt_script_clk - top=16 - width=22 - end - object bt_cmd:tbtn - caption="命令行" - height=31 - left=208 - onclick=bt_cmd_clk - top=582 - width=92 - end -end \ No newline at end of file diff --git a/designer/ctl_mgr/resource.tfm/t_bconfig_cmd_shower.tfm b/designer/ctl_mgr/t_bconfig_cmd_shower.tfm similarity index 84% rename from designer/ctl_mgr/resource.tfm/t_bconfig_cmd_shower.tfm rename to designer/ctl_mgr/t_bconfig_cmd_shower.tfm index c8bf812..4177a5e 100644 --- a/designer/ctl_mgr/resource.tfm/t_bconfig_cmd_shower.tfm +++ b/designer/ctl_mgr/t_bconfig_cmd_shower.tfm @@ -1,23 +1,23 @@ object bconfig_cmd_shower:t_bconfig_cmd_shower caption="命令行" - height=250 + height=263 left=610 minmaxbox=false onclose=bconfig_cmd_shower_close top=406 - width=508 + width=546 object panel1:tpanel align=albottom caption="panel1" height=45 left=0 parentcolor=true - top=166 - width=492 + top=179 + width=530 wsdlgmodalframe=false object bt_ok:tbtn caption="完成" - height=26 + height=33 left=406 onclick=btn1_clk top=8 @@ -25,8 +25,8 @@ object bconfig_cmd_shower:t_bconfig_cmd_shower end object bt_copy:tbtn caption="复制" - height=26 - left=291 + height=33 + left=253 onclick=bt_copy_clk top=8 width=94 @@ -36,11 +36,11 @@ object bconfig_cmd_shower:t_bconfig_cmd_shower align=alclient autogutterwidth=true caption="memo1" - height=211 + height=179 left=0 readonly=true top=0 - width=492 + width=530 end object cpbord:tclipboard left=211 diff --git a/designer/ctl_mgr/t_code_format_mgr.tfm b/designer/ctl_mgr/t_code_format_mgr.tfm new file mode 100644 index 0000000..4650ee0 --- /dev/null +++ b/designer/ctl_mgr/t_code_format_mgr.tfm @@ -0,0 +1,122 @@ +object codeformateditor:t_code_format_mgr + autosize=true + caption="tsl代码格式化参数" + childsizing=< + layout=1 + controlsperline=2 + horizontalspacing=10 + verticalspacing=10 + leftrightspacing=20 + topbottomspacing=10 + > + + font=< + height=19 + width=9 + escapement=0 + orientation=0 + weight=400 + italic=0 + underline=0 + strikeout=0 + charset=134 + outprecision=3 + clipprecision=2 + quality=1 + pitchandfamily=49 + facename="新宋体" + color=0 + > + + height=90 + left=547 + minmaxbox=false + onclose=tformatinfownd1_close + parentfont=false + top=277 + width=449 + wssizebox=false + object label1:tlabel + left=20 + top=10 + width=128 + height=22 + autosize=true + caption="多行注释对齐" + end + object faligncmt:tcheckbtn + autosize=false + caption="" + height=22 + left=158 + parentcolor=true + top=10 + width=110 + end + object label3:tlabel + left=20 + top=42 + width=128 + height=22 + autosize=true + caption="array格式化" + end + object farraytype:tcombobox + autosize=true + height=22 + itemindex=1 + items=["默认" "普通" "宽松" ] + left=158 + top=42 + width=110 + end + object label4:tlabel + left=20 + top=74 + width=128 + height=22 + autosize=true + caption="语法检查" + end + object fsyncheck:tcheckbtn + caption="" + checked=true + height=22 + left=158 + parentcolor=true + top=74 + width=110 + end + object label5:tlabel + left=20 + top=106 + width=128 + height=22 + autosize=true + caption="格式化选择区域" + end + object fselectcheck:tcheckbtn + caption="" + height=22 + left=158 + parentcolor=true + top=106 + width=110 + end + object label2:tlabel + left=20 + top=138 + width=128 + height=22 + caption="" + end + object btn1:tbtn + autosize=true + caption="确定" + height=22 + left=158 + onclick=dookclick + top=138 + width=110 + end +end \ No newline at end of file diff --git a/designer/ctl_mgr/t_code_format_mgr.tsf b/designer/ctl_mgr/t_code_format_mgr.tsf new file mode 100644 index 0000000..4f30918 --- /dev/null +++ b/designer/ctl_mgr/t_code_format_mgr.tsf @@ -0,0 +1,62 @@ +type t_code_format_mgr=class(tdcreateform) + uses tslvcl; + label1:tlabel; + label2:tlabel; + label3:tlabel; + label4:tlabel; + label5:tlabel; + faligncmt:tcombobox; + fcharct:tcombobox; + farraytype:tcombobox; + fsyncheck:tcheckbtn; + fselectcheck:tcheckbtn; + btn1:tbtn; + function Create(AOwner);override;//构造 + begin + inherited; + end + function DoOKClick(o;e);virtual; + begin + calldatafunction(FOnOkClick,self,e); + end + function tformatinfownd1_close(o;e);virtual; + begin + e.skip := true; + o.Visible := false; + end + function Recycling();override;//回收变量 + begin + inherited; + ci := self.classinfo(); + //将成员变量赋值为nil避免循环引用 + for i,v in ci["members"]do + begin + invoke(self,v["name"],nil); + end + end + function GetData(); + begin + r := array(); + r["cmt"]:= faligncmt.Checked; + r["arraytype"]:= array("普通":1,"默认":0,"宽松":3)[farraytype.getCurrentItemText()]; + r["syn"]:= fsyncheck.checked; + r["sel"]:= fselectcheck.checked; + return r; + end + function SetData(d); + begin + //"50" "80" "100" "130" + // "50" "100" "130" "150" "200" "250" "300" + //"默认" "普通" "宽松" + if ifarray(d) then + begin + faligncmt.Checked := (d["cmt"]=1); + farraytype.ItemIndex := (array(0:0,1:1,3:2))[d["arraytype"]]; + fsyncheck.Checked := d["syn"]; + fselectcheck.Checked := d["sel"]; + end + end + property OnOkClicked read FOnOkClick write FOnOkClick; + private + [weakref] FOnOkClick; +end diff --git a/designer/ctl_mgr/t_compile_config.tfm b/designer/ctl_mgr/t_compile_config.tfm new file mode 100644 index 0000000..6e4a4e9 --- /dev/null +++ b/designer/ctl_mgr/t_compile_config.tfm @@ -0,0 +1,556 @@ +object ed_script:t_compile_config + autosize=true + caption="编译选项设置" + childsizing=< + layout=2 + controlsperline=10 + horizontalspacing=10 + verticalspacing=10 + leftrightspacing=10 + topbottomspacing=10 + > + + height=560 + left=638 + minmaxbox=false + onclose=compile_config_close + top=208 + width=484 + wssizebox=true + object panel1:tpanel + autosize=true + caption="panel1" + childsizing=< + layout=1 + controlsperline=3 + horizontalspacing=2 + verticalspacing=2 + leftrightspacing=2 + topbottomspacing=2 + > + height=25 + left=10 + top=10 + width=448 + wsdlgmodalframe=false + object lb_input:tlabel + left=2 + top=2 + width=44 + height=21 + autosize=true + caption="主程序" + end + object e_script:tedit + autosize=true + caption="edit1" + height=21 + left=48 + top=2 + width=331 + end + object bt_script:tbtn + autosize=true + caption=".." + height=21 + left=381 + onclick=bt_script_clk + top=2 + width=28 + end + end + object gp_out:tgroupbox + autosize=true + caption="输出" + childsizing=< + layout=1 + controlsperline=3 + horizontalspacing=2 + verticalspacing=10 + leftrightspacing=2 + topbottomspacing=2 + > + height=94 + left=10 + parentcolor=true + top=45 + width=448 + object lb_ype:tlabel + left=6 + top=21 + width=58 + height=21 + autosize=true + caption="类型" + textalign=al9_centerright + end + object cb_type:tcombobox + autosize=true + caption="combobox1" + height=21 + itemindex=0 + items=["执行程序" "动态库" tsg ] + left=74 + onselchanged=cb_type_sel + top=21 + width=324 + end + object label6:tlabel + left=408 + top=21 + width=28 + height=21 + autosize=true + caption="" + end + object lb_output:tlabel + left=6 + top=44 + width=58 + height=21 + autosize=true + caption="输出" + textalign=al9_centerright + end + object ed_output:tedit + autosize=true + caption="edit1" + height=21 + left=74 + placeholder="输出文件" + top=44 + width=324 + end + object bt_output:tbtn + autosize=true + caption=".." + enabled=false + height=21 + left=408 + onclick=bt_output_clk + top=44 + width=28 + end + object lb_output_f:tlabel + left=6 + top=67 + width=58 + height=21 + autosize=true + caption="输出函数" + textalign=al9_centerright + end + object ed_out_f:tedit + autosize=true + caption="edit1" + height=21 + left=74 + top=67 + width=324 + end + object bt_outputname:tbtn + autosize=true + caption=".." + height=21 + left=408 + onclick=bt_outputname_clk + top=67 + width=28 + end + end + object gp_dir:tgroupbox + autosize=true + caption="输入目录" + childsizing=< + layout=1 + controlsperline=3 + horizontalspacing=2 + verticalspacing=2 + leftrightspacing=2 + topbottomspacing=2 + > + height=71 + left=10 + parentcolor=true + top=149 + width=448 + object label1:tlabel + left=6 + top=21 + width=58 + height=21 + autosize=true + caption="函数目录" + end + object ed_f_dirs:tedit + autosize=true + caption="edit1" + height=21 + left=66 + top=21 + width=312 + end + object bt_f_dir:tbtn + autosize=true + caption=".." + height=21 + left=380 + onclick=bt_f_dir_clk + top=21 + width=28 + end + object label2:tlabel + left=6 + top=44 + width=58 + height=21 + autosize=true + caption="资源目录" + end + object ed_s_dirs:tedit + autosize=true + caption="edit2" + height=21 + left=66 + top=44 + width=312 + end + object bt_s_dir:tbtn + autosize=true + caption=".." + height=21 + left=380 + onclick=bt_s_dir_clk + top=44 + width=28 + end + end + object gp_filter:tgroupbox + autosize=true + caption="筛选" + childsizing=< + layout=1 + controlsperline=3 + horizontalspacing=2 + verticalspacing=2 + leftrightspacing=2 + topbottomspacing=2 + > + height=139 + left=10 + parentcolor=true + top=230 + width=448 + object lb_s_type:tlabel + left=6 + top=21 + width=86 + height=20 + autosize=true + caption="资源文件后缀" + end + object ed_s_type:tedit + autosize=true + caption="edit2" + height=20 + left=94 + text="*.tfm,*.ini" + top=21 + width=318 + end + object label7:tlabel + left=414 + top=21 + width=28 + height=20 + autosize=true + caption="" + end + object label3:tlabel + left=6 + top=43 + width=86 + height=21 + autosize=true + caption="指定资源" + textalign=al9_centerright + end + object ed_include_s:tedit + autosize=true + caption="edit1" + height=21 + left=94 + top=43 + width=318 + end + object bt_i_s:tbtn + autosize=true + caption=".." + height=21 + left=414 + onclick=bt_i_s_clk + top=43 + width=28 + end + object label4:tlabel + left=6 + top=66 + width=86 + height=21 + autosize=true + caption="指定函数" + textalign=al9_centerright + end + object ed_include_f:tedit + autosize=true + caption="" + height=21 + left=94 + top=66 + width=318 + end + object bt_i_f:tbtn + autosize=true + caption=".." + height=21 + left=414 + onclick=bt_i_f_clk + top=66 + width=28 + end + object lb_tsg:tlabel + left=6 + top=89 + width=86 + height=21 + autosize=true + caption="tsg库" + textalign=al9_centerright + end + object ed_tsg:tedit + autosize=true + caption="edit1" + height=21 + left=94 + top=89 + width=318 + end + object bt_tsgadd:tbtn + autosize=true + caption=".." + height=21 + left=414 + onclick=bt_tsgadd_clk + top=89 + width=28 + end + object label5:tlabel + left=6 + top=112 + width=86 + height=21 + autosize=true + caption="排除函数" + textalign=al9_centerright + end + object ed_exclude_f:tedit + autosize=true + caption="" + height=21 + left=94 + top=112 + width=318 + end + object bt_d_f:tbtn + autosize=true + caption=".." + height=21 + left=414 + onclick=bt_d_f_clk + top=112 + width=28 + end + end + object gp_other:tgroupbox + autosize=true + caption="其他" + childsizing=< + layout=1 + controlsperline=3 + horizontalspacing=2 + verticalspacing=2 + leftrightspacing=2 + topbottomspacing=2 + > + height=97 + left=10 + parentcolor=true + top=379 + width=448 + object label9:tlabel + left=6 + top=21 + width=65 + height=25 + autosize=true + caption="" + end + object panel3:tpanel + autosize=true + caption="panel3" + childsizing=< + layout=1 + controlsperline=3 + horizontalspacing=2 + verticalspacing=2 + leftrightspacing=2 + topbottomspacing=2 + > + height=25 + left=73 + top=21 + width=316 + wsdlgmodalframe=false + object ck_gui:tcheckbtn + autosize=true + caption="gui" + height=21 + left=2 + top=2 + width=56 + end + object ck_strong:tcheckbtn + autosize=true + caption="强引用函数" + height=21 + left=60 + onclick=checkbtn2_clk + top=2 + width=105 + end + object ck_s_rp:tcheckbtn + autosize=true + caption="资源保留相对路径" + enabled=false + height=21 + left=167 + top=2 + visible=false + width=147 + end + end + object label10:tlabel + left=391 + top=21 + width=28 + height=25 + autosize=true + caption="" + end + object lb_ico:tlabel + left=6 + top=48 + width=65 + height=21 + autosize=true + caption="图标" + textalign=al9_centerright + end + object ed_ico:tedit + autosize=true + caption="edit3" + height=21 + left=73 + top=48 + width=316 + end + object bt_ico:tbtn + autosize=true + caption=".." + height=21 + left=391 + onclick=bt_ico_clk + top=48 + width=28 + end + object l_namespace:tlabel + left=6 + top=71 + width=65 + height=20 + autosize=true + caption="namespace" + end + object e_namespace:tedit + autosize=true + caption="edit1" + height=20 + left=73 + top=71 + width=316 + end + object label8:tlabel + left=391 + top=71 + width=28 + height=20 + autosize=true + caption="" + end + end + object f_op:topenfileadlg + left=473 + top=14 + height=30 + width=30 + caption="openfileadlg1" + filter=< + "ico图标"="*.ico" + > + end + object panel2:tpanel + autosize=true + caption="panel2" + childsizing=< + layout=1 + controlsperline=3 + horizontalspacing=2 + verticalspacing=50 + leftrightspacing=50 + topbottomspacing=2 + > + height=25 + left=10 + top=486 + width=448 + wsdlgmodalframe=false + object bt_cmd:tbtn + autosize=true + caption="命令行" + height=21 + left=50 + onclick=bt_cmd_clk + top=2 + width=56 + end + object bt_cancel:tbtn + autosize=true + caption="取消" + height=21 + left=156 + onclick=bt_cancel_clk + top=2 + width=42 + end + object bt_ok:tbtn + autosize=true + caption="确定" + height=21 + left=248 + onclick=bt_ok_clk + parentcolor=false + top=2 + width=42 + end + end +end \ No newline at end of file diff --git a/designer/ctl_mgr/t_compile_config.tsf b/designer/ctl_mgr/t_compile_config.tsf index 3a19c2e..237eb51 100644 --- a/designer/ctl_mgr/t_compile_config.tsf +++ b/designer/ctl_mgr/t_compile_config.tsf @@ -1,6 +1,6 @@ type t_compile_config=class(tdcreateform) uses tslvcl; - bt_ok:tbtn; + gp_dir:tgroupbox; bt_f_dir:tbtn; bt_s_dir:tbtn; @@ -14,20 +14,20 @@ type t_compile_config=class(tdcreateform) cb_type:tcombobox; lb_output:tlabel; ed_output:tedit; - bt_cancel:tbtn; + gp_other:tgroupbox; - ck_gui:tcheckbtn; - ck_strong:tcheckbtn; - ck_s_rp:tcheckbtn; + + + bt_i_s:tbtn; lb_ico:tlabel; ed_ico:tedit; bt_ico:tbtn; bt_output:tbtn; f_op:topenfileadlg; - lb_input:tlabel; - e_script:tedit; - bt_script:tbtn; + + + bt_outputname:tbtn; lb_output_f:tlabel; ed_out_f:tedit; @@ -44,9 +44,26 @@ type t_compile_config=class(tdcreateform) lb_tsg:tlabel; ed_tsg:tedit; bt_tsgadd:tbtn; - bt_cmd:tbtn; + l_namespace:tlabel; e_namespace:tedit; + panel1:tpanel; + lb_input:tlabel; + e_script:tedit; + bt_script:tbtn; + panel2:tpanel; + bt_cmd:tbtn; + bt_cancel:tbtn; + bt_ok:tbtn; + label6:tlabel; + label7:tlabel; + panel3:tpanel; + ck_gui:tcheckbtn; + ck_strong:tcheckbtn; + ck_s_rp:tcheckbtn; + label8:tlabel; + label9:tlabel; + label10:tlabel; function Create(AOwner);override; //构造 begin f_sep := iofileseparator(); diff --git a/designer/ctl_mgr/resource.tfm/t_dir_list.tfm b/designer/ctl_mgr/t_dir_list.tfm similarity index 90% rename from designer/ctl_mgr/resource.tfm/t_dir_list.tfm rename to designer/ctl_mgr/t_dir_list.tfm index 1c34b23..d5fa579 100644 --- a/designer/ctl_mgr/resource.tfm/t_dir_list.tfm +++ b/designer/ctl_mgr/t_dir_list.tfm @@ -1,12 +1,12 @@ object dir_list:t_dir_list caption="目录管理" - height=228 + height=239 left=513 minmaxbox=false onclose=dir_list_close top=475 visible=false - width=615 + width=643 object lst_dir:tlistbox caption="listbox1" height=176 @@ -16,7 +16,7 @@ object dir_list:t_dir_list end object btn_add:tbtn caption="添加" - height=31 + height=36 left=496 onclick=btn_add_clk top=5 @@ -24,7 +24,7 @@ object dir_list:t_dir_list end object btn_del:tbtn caption="删除" - height=31 + height=35 left=496 onclick=btn_del_clk top=50 @@ -32,10 +32,10 @@ object dir_list:t_dir_list end object btn_ok:tbtn caption="完成" - height=31 + height=40 left=496 onclick=btn_ok_clk - top=146 + top=137 width=86 end object f_d:tfolderchooseadlg diff --git a/designer/ctl_mgr/resource.tfm/t_editor_color_mgr.tfm b/designer/ctl_mgr/t_editor_color_mgr.tfm similarity index 94% rename from designer/ctl_mgr/resource.tfm/t_editor_color_mgr.tfm rename to designer/ctl_mgr/t_editor_color_mgr.tfm index 4abe2cc..35a5d55 100644 --- a/designer/ctl_mgr/resource.tfm/t_editor_color_mgr.tfm +++ b/designer/ctl_mgr/t_editor_color_mgr.tfm @@ -19,7 +19,7 @@ object ditor_color_mgr:t_editor_color_mgr color=0 > - height=382 + height=385 left=645 minmaxbox=false onclose=edtcolormain1_close @@ -78,7 +78,7 @@ object ditor_color_mgr:t_editor_color_mgr leftrightspacing=20 topbottomspacing=10 > - height=39 + height=42 left=5 top=304 width=352 @@ -86,7 +86,7 @@ object ditor_color_mgr:t_editor_color_mgr object btn4:tbtn autosize=true caption="导入" - height=19 + height=22 left=20 onclick=import_clk top=10 @@ -95,7 +95,7 @@ object ditor_color_mgr:t_editor_color_mgr object btn5:tbtn autosize=true caption="导出" - height=19 + height=22 left=78 onclick=export_clk top=10 @@ -104,7 +104,7 @@ object ditor_color_mgr:t_editor_color_mgr object btn3:tbtn autosize=true caption="还原默认" - height=19 + height=22 left=136 onclick=btn3_clk top=10 @@ -113,7 +113,7 @@ object ditor_color_mgr:t_editor_color_mgr object btn1:tbtn autosize=true caption="取消" - height=19 + height=22 left=226 onclick=btn1_clk top=10 @@ -122,7 +122,7 @@ object ditor_color_mgr:t_editor_color_mgr object btn2:tbtn autosize=true caption="确定" - height=19 + height=22 left=284 onclick=btn2_clk top=10 diff --git a/designer/ctl_mgr/t_editor_color_mgr.tsf b/designer/ctl_mgr/t_editor_color_mgr.tsf index fd0d5a1..5a53758 100644 --- a/designer/ctl_mgr/t_editor_color_mgr.tsf +++ b/designer/ctl_mgr/t_editor_color_mgr.tsf @@ -21,6 +21,7 @@ type t_editor_color_mgr=class(tdcreateform) listbox1.Items := fcolorindexname; listbox1.ItemIndex := 1; listbox1.SelBkColor := listbox1.Color; + listbox1.onfontchanged := thisfunction(lfchanged); end function edtcolormain1_close(o;e);virtual; begin @@ -64,7 +65,10 @@ type t_editor_color_mgr=class(tdcreateform) listbox1.InvalidateRect(nil,false); end end - + function lfchanged(); + begin + listbox1.ItemHeight := font.Height+5; + end function btn1_clk(o;e);virtual; begin EndModal(0); diff --git a/designer/ctl_mgr/resource.tfm/t_editor_config.tfm b/designer/ctl_mgr/t_editor_config.tfm similarity index 97% rename from designer/ctl_mgr/resource.tfm/t_editor_config.tfm rename to designer/ctl_mgr/t_editor_config.tfm index 9ba0c8c..296d5ab 100644 --- a/designer/ctl_mgr/resource.tfm/t_editor_config.tfm +++ b/designer/ctl_mgr/t_editor_config.tfm @@ -114,7 +114,7 @@ object editor_config:t_editor_config leftrightspacing=10 topbottomspacing=10 > - height=126 + height=124 left=10 parentcolor=true top=177 @@ -176,7 +176,7 @@ object editor_config:t_editor_config left=14 top=89 width=30 - height=23 + height=21 autosize=true caption="" end @@ -184,7 +184,7 @@ object editor_config:t_editor_config left=54 top=89 width=41 - height=23 + height=21 autosize=true caption="" end @@ -192,7 +192,7 @@ object editor_config:t_editor_config autosize=true caption="从头匹配" checked=true - height=23 + height=21 left=105 top=89 width=105 @@ -202,7 +202,7 @@ object editor_config:t_editor_config caption="panel1" height=39 left=10 - top=313 + top=311 width=285 wsdlgmodalframe=false object bt_ok:tbtn diff --git a/designer/ctl_mgr/resource.tfm/t_function_finder.tfm b/designer/ctl_mgr/t_function_finder.tfm similarity index 91% rename from designer/ctl_mgr/resource.tfm/t_function_finder.tfm rename to designer/ctl_mgr/t_function_finder.tfm index 92c3993..1a521d0 100644 --- a/designer/ctl_mgr/resource.tfm/t_function_finder.tfm +++ b/designer/ctl_mgr/t_function_finder.tfm @@ -29,7 +29,7 @@ object functionfinder:t_function_finder align=altop autosize=true caption="panel1" - height=35 + height=41 left=0 top=0 width=804 @@ -46,18 +46,18 @@ object functionfinder:t_function_finder object btfind:tbtn autosize=true caption="筛选" - height=22 - left=281 + height=25 + left=284 onclick=btfind_clk - top=7 + top=6 width=54 end object ck_prev:tcheckbtn autosize=true caption="从头匹配" - height=22 - left=370 - top=7 + height=27 + left=371 + top=8 visible=true width=111 end @@ -82,11 +82,11 @@ object functionfinder:t_function_finder text="函数" > ] - height=572 + height=566 left=0 ondblclick=listfunc_ondblclick popupmenu=popupmenu1 - top=35 + top=41 width=804 end object popupmenu1:tpopupmenu diff --git a/designer/ctl_mgr/resource.tfm/t_m_list_editor.tfm b/designer/ctl_mgr/t_m_list_editor.tfm similarity index 92% rename from designer/ctl_mgr/resource.tfm/t_m_list_editor.tfm rename to designer/ctl_mgr/t_m_list_editor.tfm index b6a87e8..f4c0110 100644 --- a/designer/ctl_mgr/resource.tfm/t_m_list_editor.tfm +++ b/designer/ctl_mgr/t_m_list_editor.tfm @@ -11,14 +11,14 @@ object m_list_editor:t_m_list_editor left=7 top=2 width=325 - height=25 + height=31 caption="采用换行分割" end object m_list:tmemo caption="memo1" - height=378 + height=371 left=9 - top=31 + top=38 width=328 end object bt_cancel:tbtn diff --git a/designer/ctl_mgr/resource.tfm/t_shortcut_keys_view.tfm b/designer/ctl_mgr/t_shortcut_keys_view.tfm similarity index 97% rename from designer/ctl_mgr/resource.tfm/t_shortcut_keys_view.tfm rename to designer/ctl_mgr/t_shortcut_keys_view.tfm index 3b086db..576f881 100644 --- a/designer/ctl_mgr/resource.tfm/t_shortcut_keys_view.tfm +++ b/designer/ctl_mgr/t_shortcut_keys_view.tfm @@ -19,11 +19,11 @@ object shortcut_keys_view:t_shortcut_keys_view > height=684 - left=711 + left=420 minmaxbox=false onclose=shortcut_keys_view_close parentfont=false - top=459 + top=217 visible=false width=590 object panel1:tpanel diff --git a/designer/ctl_mgr/resource.tfm/textcompclassadder.tfm b/designer/ctl_mgr/textcompclassadder.tfm similarity index 82% rename from designer/ctl_mgr/resource.tfm/textcompclassadder.tfm rename to designer/ctl_mgr/textcompclassadder.tfm index 317d1cc..65062d8 100644 --- a/designer/ctl_mgr/resource.tfm/textcompclassadder.tfm +++ b/designer/ctl_mgr/textcompclassadder.tfm @@ -10,16 +10,16 @@ object extcompclassadder:textcompclassadder object e_classname:tedit caption="edit1" height=25 - left=91 + left=99 readonly=true top=28 - width=255 + width=247 end object label1:tlabel left=20 - top=28 - width=50 - height=25 + top=21 + width=72 + height=32 caption="控件类" end object b_classfile:tbtn @@ -33,41 +33,41 @@ object extcompclassadder:textcompclassadder object label2:tlabel left=20 top=72 - width=64 - height=25 + width=65 + height=33 caption="图标" end object p_imgshow:tpanel caption="img" - height=187 + height=195 left=91 - top=120 + top=107 width=245 wsdlgmodalframe=false end object b_img:tbtn caption="添加图标" height=25 - left=91 + left=100 onclick=b_img_clk - top=73 - width=94 + top=72 + width=176 end object b_ok:tbtn caption="确定" enabled=true height=31 - left=133 + left=134 onclick=b_ok_clk - top=317 + top=306 width=72 end object b_cancel:tbtn caption="取消" height=31 - left=283 + left=271 onclick=b_cancel_clk - top=317 + top=306 width=73 end object f_open:topenfileadlg diff --git a/designer/ctl_mgr/resource.tfm/textcompclassmgr.tfm b/designer/ctl_mgr/textcompclassmgr.tfm similarity index 87% rename from designer/ctl_mgr/resource.tfm/textcompclassmgr.tfm rename to designer/ctl_mgr/textcompclassmgr.tfm index c92a59e..f8ff195 100644 --- a/designer/ctl_mgr/resource.tfm/textcompclassmgr.tfm +++ b/designer/ctl_mgr/textcompclassmgr.tfm @@ -5,14 +5,14 @@ object extcompclassmgr:textcompclassmgr minmaxbox=false onclose=extcompclassmgr_close top=272 - width=477 + width=484 wssizebox=true object listbox1:tlistbox caption="listbox1" - height=345 + height=339 left=4 onselchanged=listbox1_sel - top=38 + top=44 width=344 end object b_del:tbtn @@ -21,7 +21,7 @@ object extcompclassmgr:textcompclassmgr height=31 left=364 onclick=b_del_clk - top=248 + top=224 width=88 end object b_add:tbtn @@ -29,7 +29,7 @@ object extcompclassmgr:textcompclassmgr height=31 left=364 onclick=b_add_clk - top=299 + top=279 width=88 end object b_ok:tbtn @@ -52,13 +52,13 @@ object extcompclassmgr:textcompclassmgr ] left=0 top=403 - width=461 + width=468 end object label1:tlabel left=8 - top=10 - width=80 - height=25 + top=5 + width=176 + height=36 caption="控件列表" end end \ No newline at end of file diff --git a/designer/ctl_mgr/resource.tfm/tfm_inheritedwnd.tfm b/designer/ctl_mgr/tfm_inheritedwnd.tfm similarity index 91% rename from designer/ctl_mgr/resource.tfm/tfm_inheritedwnd.tfm rename to designer/ctl_mgr/tfm_inheritedwnd.tfm index 2fdbb7c..55bfd3c 100644 --- a/designer/ctl_mgr/resource.tfm/tfm_inheritedwnd.tfm +++ b/designer/ctl_mgr/tfm_inheritedwnd.tfm @@ -1,6 +1,6 @@ object fm_inheritedwnd:tfm_inheritedwnd caption="通过继承构造窗口" - height=543 + height=550 left=526 minmaxbox=false onclose=fm_inheritedwnd_close @@ -11,7 +11,7 @@ object fm_inheritedwnd:tfm_inheritedwnd caption="statusbar1" height=25 left=0 - top=479 + top=486 width=417 end object panel2:tpanel @@ -19,7 +19,7 @@ object fm_inheritedwnd:tfm_inheritedwnd caption="panel2" height=31 left=0 - top=448 + top=455 width=417 wsdlgmodalframe=false object label1:tlabel @@ -27,8 +27,8 @@ object fm_inheritedwnd:tfm_inheritedwnd top=0 width=18 height=31 - caption="" align=alright + caption="" end object ed_ok:tbtn align=alright @@ -45,8 +45,8 @@ object fm_inheritedwnd:tfm_inheritedwnd top=0 width=25 height=31 - caption=" " align=alright + caption=" " end object bt_cancel:tbtn align=alright @@ -69,21 +69,21 @@ object fm_inheritedwnd:tfm_inheritedwnd object label3:tlabel left=0 top=0 - width=85 + width=149 height=27 - caption="可以继承:" align=alleft + caption="可以继承:" end object ed_search:tedit align=alclient caption="edit1" height=27 - left=85 + left=149 onchanged=ed_search_onchanged onkeyup=ed_search_keyup placeholder="搜索" top=0 - width=332 + width=268 end end object panel3:tpanel @@ -91,31 +91,31 @@ object fm_inheritedwnd:tfm_inheritedwnd caption="panel1" height=35 left=0 - top=413 + top=420 width=417 wsdlgmodalframe=false object label4:tlabel left=0 top=0 - width=85 + width=104 height=35 - caption=" 名称:" align=alleft + caption="名称:" end object ed_name:tedit align=alclient caption="edit1" height=35 - left=85 + left=104 placeholder="名称" top=0 - width=332 + width=313 end end object lbx_pal:tlistbox align=alclient caption="listbox1" - height=386 + height=393 left=0 onselchanged=lbx_pal_sel top=27 diff --git a/designer/gettsleditorstart.tsf b/designer/gettsleditorstart.tsf index 13ff754..1c18b0a 100644 --- a/designer/gettsleditorstart.tsf +++ b/designer/gettsleditorstart.tsf @@ -1,7 +1,6 @@ //启动tsl编辑器 //20230421 整理代码 uses tslvcl; -setprocessdpiawareness(2); deletefuncacheini(); //清空缓存 ops := ""; //待打开文件 GLobal G_OpenHostory; @@ -92,6 +91,7 @@ begin global g_dotsavehistory; //是否保存打开的历史记录 g_dotsavehistory := true; end +setprocessdpiawareness(2); app := initializeapplication(); app.createform(class(TRunEditorForm),fm); fm.OpenAndGotoFileByName(ops); diff --git a/designer/gettslvcldesignerstart.tsf b/designer/gettslvcldesignerstart.tsf index 7170a48..4083337 100644 --- a/designer/gettslvcldesignerstart.tsf +++ b/designer/gettslvcldesignerstart.tsf @@ -2,32 +2,46 @@ tsl界面设计器启动程序 } uses tslvcl,utslvclDesigner; -setprocessdpiawareness(2); -deletefuncacheini(); +oldlib := sysgettsllibpath(); isdebug := false; willopen := ""; -for i:= 0 to sysparamcount() do +i := 0; +ct := sysparamcount(); +while i<=ct do begin - if wait_filename then - begin - willopen := sysparamstr(i); - wait_filename := 0; - end else - if ("-tpj"=sysparamstr(i)) then + if ("-tpj"=sysparamstr(i)) then //打开工程 begin - wait_filename := true; + i++; + if i<=ct then willopen := sysparamstr(i); end else if ("-DEBUGSERVER" = sysparamstr(i)) then begin isdebug := true; - break; - end + end else + if ("-libpath" = sysparamstr(i)) then //设置libpahth + begin + i++; + if i<=ct then + begin + ph := sysparamstr(i); + if oldlib<>ph then + begin + try + syssettsllibpath(ph); + except + end; + end + end + end + i++; end +deletefuncacheini(); h := FindWindowA("tsluidesigner_a_a_1",nil); //查找唯一窗口 if not(isdebug) and h then begin return PostMessageA(h,0x400,303,10); end +setprocessdpiawareness(2); app := InitializeApplication(); app.createform(class(TVclDesignerStart),Desginer); Desginer.Show(); diff --git a/designer/teditorform.tsf b/designer/teditorform.tsf index 5d38bbe..d018bc1 100644 --- a/designer/teditorform.tsf +++ b/designer/teditorform.tsf @@ -46,7 +46,8 @@ type teditorform = class(TVCform) // const c_m_help = "帮助"; const c_m_manu = "使用手册"; const c_m_tsl_help = "tsl语言帮助"; - const c_m_about = "关于"; + const c_m_about = "关于"; + const c_m_font = "字体图标大小"; function WMACTIVATE(o,e):WM_ACTIVATE;override; //激活 begin inherited; @@ -97,6 +98,7 @@ type teditorform = class(TVCform) // Fexefilepath := basepath+"editer"+sp+"tslfile.tsm"; FOpendpaths := basepath+"editer"+sp+"openedpaths.tsm"; FTabWidthpath := basepath+"editer"+sp+"tabwidpath.tsm"; + Fsysfontpath := basepath+"editer"+sp+"sysfont.tsm"; FexefileCmds := basepath+"editer"+sp+"cmds.tsm"; FHistoryPath := basepath+"editer"+sp+"HistoryPath.tsm"; FCodeblockPath := basepath+"editer"+sp+"BlockManager.tsm"; @@ -267,13 +269,16 @@ type teditorform = class(TVCform) // FCodeBlockMenu.Parent := FTslLangMenu; FTslFormatMenu.Parent := FTslLangMenu; tbwidth := 4; - if importfile(ftstream(),"",FTabWidthpath,d)=1 and ( d>0 ) then + if importfile(ftstream(),"",FTabWidthpath,d)=1 and ( d>0 ) then //tab宽度 begin tbwidth := d; end FMTabContain :=new TMenu(self); fmshowhltediter :=new TMenu(self); fmshowhltediter.caption := c_m_edit_color; + fmsysfont :=new TMenu(self); + fmsysfont.caption := c_m_font; + FMTabs := array(); FMTabContain.Caption := c_m_tab_config; for i:= 0 to 6 do @@ -289,9 +294,13 @@ type teditorform = class(TVCform) // end FMTabContain.parent := FMenuSet; fmshowhltediter.Parent := FMenuSet; + fmsysfont.Parent := FMenuSet; fmshowhltediter.OnClick := function(o,e)begin FEdter.showhltcolor(); end + fmsysfont.OnClick := function(o,e)begin + FEdter.modifysyssize(); + end mainmenu := m; FmTool.parent := m; FEnCodeMenu.parent := m; @@ -311,8 +320,7 @@ type teditorform = class(TVCform) // FCloseMenu := new tmenu(self); FCloseMenu.Caption:=c_m_close_min; - //FCloseMenu.Checked := true; - FCloseMenu.parent := FMenuSet; + //FCloseMenu.parent := FMenuSet; FCloseMenu.OnClick := function(o,e) begin FCloseMenu.Checked := not(FCloseMenu.Checked); @@ -415,15 +423,18 @@ type teditorform = class(TVCform) // FEdter.OnPageItemSelChanged := thisfunction(PageItemSelChanged); FEdter.OnPageEditerChanged := thisfunction(PageEditerChanged); FEdter.TslExe := tslexefile; - FEdter.align := alClient; - + FEdter.align := alClient; if (importfile(ftstream(),"",feditorglobalpath,ginfo)=1) and ifarray(ginfo) then begin - global g_editer_font_size := ginfo["font"]; - //FEdter.getpage().font := ginfo["font"]; - //FEdter.getcodemap().font := ginfo["font"]; + global editorglobalinfo ; + editorglobalinfo := ginfo; + if ifarray(ginfo) then + begin + app := initializeapplication(); + app.font := array("width":ginfo["fontsize"],"height" :ginfo["fontsize"]*2); + NotifyComponent(self,ginfo); + end - //Fdirview.addrootdirs(dirs); end if importfile(ftstream(),"",fdirspath,dirs)=1 then begin @@ -708,11 +719,11 @@ type teditorform = class(TVCform) // if ifarray(d) and d then begin Exportfile(ftstream(),"",Fhighlightpath,d); - end - global g_editer_font_size; - if ifarray(g_editer_font_size) and g_editer_font_size then + end + global editorglobalinfo ; + if ifarray(editorglobalinfo) and editorglobalinfo then begin - Exportfile(ftstream(),"",feditorglobalpath,array("font":g_editer_font_size)); + Exportfile(ftstream(),"",feditorglobalpath,editorglobalinfo); end save_opend_file_name(); FEdter.CloseAllPageItems(); @@ -848,156 +859,7 @@ type teditorform = class(TVCform) // return array(); end protected - type TSerlogerSimpleWnd=class(tdcreateform) - uses tslvcl; - label1:tlabel; - furl:tedit; - label2:tlabel; - fport:tedit; - label3:tlabel; - fusr:tedit; - label4:tlabel; - fpwd:tpassword; - - flogout:tbtn; - flogin:tbtn; - [weakref]cancel_clk; - [weakref]save_clk; - function Create(AOwner);override; //构造 - begin - inherited; - Loader.LoadFromTfmScript(self,getinfo()); - flogout.OnClick := function(o,e)begin - calldatafunction(cancel_clk,self,e); - end - flogin.OnClick := function(o,e)begin - calldatafunction(save_clk,self,e); - end - end - function setdata(d); - begin - if not ifarray(d) then return ; - furl.text := d["addr"]; - fport.text := d["port"]; - fusr.text := d["usr"]; - fpwd.text := d["pwd"]; - end - function getdata(); - begin - r := array(); - r["addr"] := furl.text; - r["port"] := fport.text; - r["usr"] := fusr.text; - r["pwd"] := fpwd.text; - return r; - end - function tserlogersimplewnd1_close(o;e);virtual; - begin - Visible := false; - e.skip := true; - - end - function Recycling();override; //回收变量 - begin - inherited; - ci := self.classinfo(); //将成员变量赋值为nil避免循环引用 - for i,v in ci["members"] do - begin - if v["static"]then continue; - invoke(self,v["name"],nil); - end - end - private - function getinfo(); - begin - return %% - object tserlogersimplewnd1:tserlogersimplewnd - caption="远程连接信息" - color=0xFFFFFF - height=211 - minmaxbox=false - onclose=tserlogersimplewnd1_close - width=422 - wsdlgmodalframe=true - wssizebox=true - object label1:tlabel - left=4 - top=3 - width=80 - height=25 - caption="服务器地址" - end - object furl:tedit - height=25 - left=88 - tabstop=true - top=3 - width=204 - end - object label2:tlabel - left=296 - top=3 - width=34 - height=25 - caption="端口" - end - object fport:tedit - height=25 - left=333 - tabstop=true - top=3 - width=62 - end - object label3:tlabel - left=2 - top=38 - width=80 - height=25 - caption=" 用户名" - end - object fusr:tedit - height=25 - left=88 - tabstop=true - top=38 - width=244 - end - object label4:tlabel - left=2 - top=72 - width=80 - height=25 - caption=" 密 码" - end - object fpwd:tpassword - height=25 - left=88 - tabstop=true - top=72 - width=245 - end - object flogout:tbtn - anchors=[akright akbottom] - caption="取消" - height=23 - left=149 - tabstop=true - top=130 - width=74 - end - object flogin:tbtn - anchors=[akright akbottom] - caption="保存" - height=23 - left=259 - tabstop=true - top=130 - width=74 - end -end - %%; - end - end + type TBlockEditer = class(TPanel) uses TSLVCL,UtslCodeEditor; function Create(AOwner);override; @@ -1010,6 +872,7 @@ end li := new TLabel(self); li.caption := v; FLabels[i] := li; + li.TextAlign := AL9_CENTERRIGHT; li.parent := self; end FEditers := array(); @@ -1046,27 +909,31 @@ end begin if FLabels and FEditers and FBtn and FCoder and FChecked then begin + ft := font; + fh := ft.height+5; + fw := ft.width; r := ClientRect; - lr := array(5,10,45,35); - FChecked.SetBoundsRect(array(52,10,72,30)); + nx := 5+5+fw*7; //标签截止位置 + lr := array(5,10,nx,10+fh); + FChecked.SetBoundsRect(array(nx+5,10,nx+25,30)); for i,v in FLabels do begin v.SetBoundsRect(lr); - lr[1]+=25; - lr[3]+=25; + lr[1]+=fh; + lr[3]+=fh; end w := r[2]-r[0]; - lr := array(52,10+25,w-48,35+25); + lr := array(nx+5,10+fh+1,w-5,10+fh+fh-1); for i,v in FEditers do begin v.SetBoundsRect(lr); - lr[1]+=25; - lr[3]+=25; + lr[1]+=fh+1; + lr[3]+=fh-1; end - lr[3] := r[3]-35; + lr[3] := r[3]-fh-10; FCoder.SetBoundsRect(lr); - lr := array(lr[2]-100,lr[3]+5,lr[2],r[3]-5); + lr := array(lr[2]-fw*6,lr[3]+5,lr[2],r[3]-5); FBtn.SetBoundsRect(lr); end end @@ -1099,6 +966,18 @@ end end type TBlockManager=class(TVCForm) uses TSLVCL; + function ftchanged(o,e); + begin + if not flist then return ; + ft := font; + if not ft then return ; + fh := ft.height; + fw := ft.width; + FList.ItemHeight := fh+5; + flist.ColumnWidth(0) := fw*6; + flist.ColumnWidth(1) := fw*6; + flist.ColumnWidth(2) := fw*11; + end function Create(AOwner);override; begin inherited; @@ -1154,25 +1033,28 @@ type TBlockManager=class(TVCForm) class(UtslCodeEditor).move_popwnd_to_center2(FEditer); FEditer.showmodal(); end - + OnFontChanged := thisfunction(ftchanged); end function DoControlAlign();override; begin if FList and FBtns then begin + ft := font; + fw := ft.width; + fh := ft.height; R := ClientRect; R1 := R; - R1[3]-=30; + R1[3]-=(fh+10); FList.SetBoundsRect(R1); rc := R; - RC[1] := R[3]-28; + RC[1] := R[3]-(fh+5); RC[3] := R[3]-2; for i,v in Fbtns do begin rc1 := RC; - rc1[0] := R[2]-(I+1)*130; - rc1[2] := RC1[0]+95; + rc1[0] := R[2]-(I+1)*(fw*8); + rc1[2] := RC1[0]+fw*6; V.SetBoundsRect(rc1); end end @@ -1256,8 +1138,8 @@ type tsearchdir = class(TCustomControl) function Create(AOwner);override; begin inherited; - ParentFont := false; - font := array("width":10,"height":20); + //ParentFont := false; + //font := array("width":10,"height":20); fcopyer := new TClipBoard(self); caption := "函数搜索目录:左侧为别名,右侧为-libpath目录...."; fcpmenu := new TPopupmenu(self); @@ -1275,7 +1157,7 @@ type tsearchdir = class(TCustomControl) FFolder.parent := self; FLists := array(); FBtns := array(); - for i,v in array(array(2,28,220,430),array(248,2,700,430)) do + for i,v in array(array(2,38,220,430),array(248,2,700,430)) do begin ls := new tdirlistbox(self); ls.SetBoundsRect(v); @@ -1299,6 +1181,7 @@ type tsearchdir = class(TCustomControl) for i,v in array("+","-","+","-","确定") do begin bt := new tbtn(self); + if i<4 then bt.ParentFont := false; bt.caption := v; bt.SetBoundsRect(btrecs[i]); bt.parent := self; @@ -1311,7 +1194,8 @@ type tsearchdir = class(TCustomControl) FBtns[4].autosize := true; ///////////////////////////////// FEdit := new tedit(self); - FEdit.SetBoundsRect(array(2,2,220,26)); + FEdit.SetBoundsRect(array(2,2,220,26)); + FEdit.autosize := true; FEdit.parent := self; FEdit.onkeyup := thisfunction(editkeyup); FEdit.placeholder := "查找or添加"; @@ -1535,6 +1419,7 @@ end flastopend; FOpendpaths; FTabWidthpath; + Fsysfontpath; FFileopen; FexefileCmds; FCodeblockPath; @@ -1659,6 +1544,13 @@ type tdirviewer = class(tcustomcontrol) end end selnowork(); + ftree.OnFontChanged := function(o,e)begin + ft := font; + if ft then + begin + ftree.ItemHeight := ft.height+6; + end + end end function treenodeselchanged(o,e); begin @@ -1716,6 +1608,17 @@ type tdirviewer = class(tcustomcontrol) end ftb.ImageList := fimgs; ftb.parent := self; + ftb.autosize := true; + onnotification := thisfunction(wftchanged); + end + function wftchanged(o,e); + begin + if not fimgs then return ; + d := e.msg; + if ifarray(d) and d["imgsize"]>0 then + begin + fimgs.imgsize := d["imgsize"]; + end end function toolclick(o,e); //工具栏事件 begin diff --git a/designer/udesignerproject.tsf b/designer/udesignerproject.tsf index cea7ff7..6fcc988 100644 --- a/designer/udesignerproject.tsf +++ b/designer/udesignerproject.tsf @@ -144,10 +144,10 @@ type TProjectManagerForm = class(TVCForm) // if findfunction(n)or findclass(n)then return "和现有的函数重名"; cprojpath := p+fio; fn := f; - CreateDirWithFileName(cprojpath+"resource.tfm"+fio+"abc.tfm"); //构建窗口信息文件 + //CreateDirWithFileName(cprojpath+"resource.tfm"+fio+"abc.tfm"); //构建窗口信息文件 info := array(); info["name"]:= n; - info["version"]:= "1.2.0"; + info["version"]:= "1.1.0"; info["dir"]:= array(); mfn := n+"main"; info["files"]:= array( @@ -175,7 +175,8 @@ end %%,n,n+"main"); ReWriteString(cprojpath+n+".tsl",r); ReWriteString(cprojpath+n+"main.tsf",CreateAForm(n+"main")); - ReWriteString(cprojpath+"resource.tfm"+fio+format("%smain.tfm",n),CreateAtfm(n+"main",n+"main")); + ReWriteString(cprojpath+n+format("%smain.tfm",n),CreateAtfm(n+"main",n+"main")); + //ReWriteString(cprojpath+"resource.tfm"+fio+format("%smain.tfm",n),CreateAtfm(n+"main",n+"main")); //写入缓存 FProjectCoder.AddProject(n,f); //添加到list 中 @@ -206,6 +207,7 @@ type TProjectView = class(TVCForm) // FFilterList; FFilterNodes; Fhighlightpath; + feditorglobalpath; function ShowFilterList(d); begin if not FFilterList.visible then @@ -342,7 +344,7 @@ type TProjectView = class(TVCForm) // rc := _wapi.GetScreenRect(); left := 20; top := 150; - width := 360; //350 + width := 330; //350 height := max(400,rc[3]-200); FInput := new TNameInput(self); finheritedinput := new tfm_inheritedwnd(self); @@ -350,6 +352,7 @@ type TProjectView = class(TVCForm) // FInput.visible := false; FInput.parent := self; FTslEditer := new TTslEditer(AOwner); + FTslEditer.Notification(FTslEditer,"change_editor_keys"); FTslEditer.FExecuteEditer.cannotadd := true; FTslEditer.FExecuteEditer.onsaveclk := function(o,e) begin @@ -361,6 +364,7 @@ type TProjectView = class(TVCForm) // FTslEditer.TslCacheDir := bpath+"designer"+fio+"cmpCaches"; FCodeblockPath := bpath+"editer"+fio+"BlockManager.tsm"; Fhighlightpath := bpath+"editer"+fio+"highlight.tsm"; + feditorglobalpath := bpath+"editer"+fio+"feditorglobalpath.tsm"; if 1=importfile(ftstream(),"",FCodeblockPath,blockd)and blockd and ifarray(blockd)then begin class(TTSLCompletion).FCodeBlocks := blockd; @@ -382,14 +386,32 @@ type TProjectView = class(TVCForm) // nd := FTree.CurrentNode; if nd and (nd["type"] in array("panel","form")) then FDesigner.EditerCodeChanged(nd); end - //FTslEditer.Parent := AOwner; + imgs := New TControlImageList(self); + imgs.onnotification := function(o,e)begin + d := e.msg; + if ifarray(d) and d["imgsize"]>0 then + begin + o.imgsize := d["imgsize"]; + end + end + if (importfile(ftstream(),"",feditorglobalpath,ginfo)=1) and ifarray(ginfo) then + begin + global editorglobalinfo ; + editorglobalinfo := ginfo; + if ifarray(ginfo) then + begin + app := initializeapplication(); + app.font := array("width":ginfo["fontsize"],"height" :ginfo["fontsize"]*2); + NotifyComponent(self,ginfo); + end + + end + FTslEditer.Parent := AOwner; FTmfParser := new TTmfParser(); FTslParser := new ttslscripparser(); FTreeTool := new TToolBar(self); + FTreeTool.autosize := true; FTreeTool.parent := self; - imgs := New TControlImageList(self); - imgs.width := 24; - imgs.height := 24; imgs.DrawBmpFirst := true; EditToolBmps := array(); for i,v in GetToolBtns() do @@ -411,6 +433,7 @@ type TProjectView = class(TVCForm) // FTreeTool.ImageList := imgs; //**************目录树筛选功能*********************************** FFilter := new TEdit(self); + FFilter.autosize := true; FFilterList := new TListBox(self); FFilterList.color := 0xdcF8ff; FFilterList.visible := false; @@ -522,6 +545,7 @@ type TProjectView = class(TVCForm) // it.parent := fnewmenu; it.OnClick := thisfunction(newadd); end + return; end function setnodesel(nd); @@ -891,6 +915,10 @@ type TProjectView = class(TVCForm) // if r then FTslEditer.OpenAndGotoFileByName(r); ShowEditor(); end + function opensysfontmgr(); + begin + FTslEditer.modifysyssize(); + end function ShowCurrenttfm(); begin if FCurrentOpend then r := FCurrentOpend.gettmfname(); @@ -1002,7 +1030,6 @@ type TProjectView = class(TVCForm) // it := FTslEditer.OpenAndGoLineByName(tfm); if it then begin - //FTmfParser.ScriptPath := FCurrentOpend.gettmfname(); sc := it.FEditer.text; FTmfParser.Script := sc; FCurrentOpend.ftfmscript := sc; @@ -1135,6 +1162,7 @@ type TProjectView = class(TVCForm) // FExecEntry := d["entryscript"]; end FTslEditer.setExecuteEditerSetcmdline(d["commandline"]); + move_tfm_to_tsf(p); OpenMainForm(); //打开主窗口 end @@ -1285,6 +1313,8 @@ end %%,fn); if ph then ph += fio; else ph := ""; ph := cprojpath+ph+n+".tsf"; + tfm := ph; + tfm[(length(tfm)-3):length(tfm)] := ".tfm"; if not(FileExists("",ph))then begin r := format(%% @@ -1301,7 +1331,8 @@ end ReWriteString(ph,r); FTmfParser.ScriptPath := nd.gettmfname(); r := FTmfParser.inheritedcoy(n+"1",n,nd.Fname); - ReWriteString((FCProjectPath+"resource.tfm"+fio+n+".tfm"),r); + ReWriteString(tfm,r); + //ReWriteString((FCProjectPath+"resource.tfm"+fio+n+".tfm"),r); end else begin FTslParser.ScriptPath := ph; @@ -1332,7 +1363,8 @@ end if ph then ph += fio; else ph := ""; ph := cprojpath+ph+n+".tsf"; - tfm := FCProjectPath+"resource.tfm"+fio+n+".tfm"; + tfm := ph; + tfm[(length(tfm)-3):length(tfm)] := ".tfm"; if not(FileExists("",ph))then begin r := CreateAForm(n); @@ -1378,7 +1410,9 @@ end if ph then ph += fio; else ph := ""; ph := cprojpath+ph+n+".tsf"; - tfm := (FCProjectPath+"resource.tfm"+fio+n+".tfm"); + //tfm := (FCProjectPath+"resource.tfm"+fio+n+".tfm"); + tfm := ph; + tfm[(length(tfm)-3):length(tfm)] := ".tfm"; if not FileExists("",ph)then begin r := CreateAPanel(n); @@ -1763,6 +1797,11 @@ end begin exportfile(ftstream(),"",Fhighlightpath,d); end + global editorglobalinfo ; + if ifarray(editorglobalinfo) and editorglobalinfo then + begin + Exportfile(ftstream(),"",feditorglobalpath,editorglobalinfo); + end end private FMoveMnus; @@ -1833,6 +1872,10 @@ end CreateDirWithFileName(FCProjectPath+ndr+fio+d["name"]+"."+ft); if 1=filerename("",FCProjectPath+ml+d["name"]+"."+ft,FCProjectPath+ndr+d["name"]+"."+ft) then begin + if FileExists("",(FCProjectPath+ml+d["name"]+".tfm")) then + begin + filerename("",FCProjectPath+ml+d["name"]+".tfm",FCProjectPath+ndr+d["name"]+".tfm"); + end nd.Recycling(); SaveProjInfo(); //移动成功 @@ -2338,16 +2381,34 @@ type TFileTree = class(TTreeCtl) if FFType in array( "form","panel") then begin if not(ifstring(nn) and nn) then nn := Fname; - return Owner.fprojectpath+"resource.tfm"+fio+nn+".tfm"; + return Owner.fprojectpath+FPath2()+nn+".tfm"; + //return Owner.fprojectpath+"resource.tfm"+fio+nn+".tfm"; end end function gettmfdirs();//获得tmfdir begin if FFType in array( "form","panel") then begin - return array( Owner.fprojectpath+"resource.tfm"+fio); + //return array( Owner.fprojectpath+"resource.tfm"+fio); + return listdirs(Owner.fprojectpath); end end + function listdirs(dir); + begin + r := array(); + fio := dir[length(dir)]; + r[0] := dir; + for i,v in FileList("",dir+"*") do + begin + vn := v["FileName"]; + if vn="." or vn=".." then continue; + if pos("D",v["Attr"]) then + begin + r union=listdirs(dir+vn+fio); + end + end + return r; + end property FFileInfo read FFFileInfo write setfileinfo; fio; fdtree; @@ -2957,6 +3018,11 @@ type TNameInput=class(TCustomControl) // FBtn.Click(); end end + autosize := true; + FEidt.autosize := true; + FLabel.autosize := true; + FBtn.autosize := true; + childsizing := array("layout":1); end function sellAllText(); begin @@ -3048,6 +3114,56 @@ type TProjectAddDlg=class(TCustomControl) // FBtn; FOnBtnClk; end +//////////////////////////////////////////////////////////////// +function move_tfm_to_tsf(dir); +begin + tsfs := array(); + tfms := array(); + find_tsf_tfm(dir,tsfs,tfms); + fs := iofileseparator(); + for i,v in tsfs do + begin + tfmi := tfms[i]; + if tfmi then + begin + sf := tfmi[0]; + df := v+fs+tfmi[1]; + if sf<>df then + begin + if filecopy("",sf,"",df) then + begin + filedelete("",sf); + end + end + end + end + if not(FileList("",dir+iofileseparator()+"resource.tfm"+iofileseparator()+"*.tfm")) then removedir("",dir+iofileseparator()+"resource.tfm"); +end +function find_tsf_tfm(dir,tsfs,tfms); +begin + fs := iofileseparator(); + for i,v in filelist("",dir+fs+"*") do + begin + vn := v["FileName"]; + if vn="." or vn=".." then continue; + if pos("D",v["Attr"]) then //?? + begin + find_tsf_tfm(dir+fs+vn,tsfs,tfms) ; + end else + begin + if parseregexpr("(.+)\\.tsf",vn,"i",mr,mp,ml)=1 then + begin + tsfs[lowercase(mr[0,1])] := dir; + end else + if parseregexpr("(.+)\\.tfm",vn,"i",mr,mp,ml)=1 then + begin + fn := dir+fs+vn; + tfms[lowercase(mr[0,1])] := array(fn,vn); + end + end + end +end +///////////////////////////////////////////////////////////////// function ReWriteString(fn,d); begin if not ifstring(d)then return 0; @@ -3084,24 +3200,6 @@ r := format(%% type %s=class(tdcreatepanel) begin inherited; end - function DoControlAlign();override;//对齐子控件 - begin - //当窗口大小改变时,该函数会被调用, - //可以通过 clientrect 获取客户区大小,设置子控件的位置以及大小 - //如果自己处理了子控件的对齐,就可以去掉 inherited - inherited; - end - function Recycling();override; - begin - inherited; - ci := self.classinfo(); - for i,v in ci["members"] do - begin - if v["const"] then continue; - if v["static"] then continue; - invoke(self,v["name"],nil); - end - end end %%,n); return r; diff --git a/designer/utslcodeeditor.tsf b/designer/utslcodeeditor.tsf index e49c766..39777e2 100644 --- a/designer/utslcodeeditor.tsf +++ b/designer/utslcodeeditor.tsf @@ -72,7 +72,7 @@ type TPage=class(TCustomControl) // function Create(AOwner) begin Inherited; - ParentFont := false; + //ParentFont := false; FCloseBtn := false; FPageItems := new TMyarrayB(); FMultiLine := 1; @@ -125,9 +125,10 @@ type TPage=class(TCustomControl) // begin if GetItemIndex(it)>= 0 then InValidateRect(it.Rect,false); end - function FontChanged();override;//字体改变 + function FontChanged(o);override;//字体改变 begin FLineHeight := font.Height+6; + inherited; DoControlAlign(); end function IncPaintLock(); @@ -636,14 +637,6 @@ type TEditerAuxiliary=class(TPage) // //FFileFindeItem := CreateApageItem(); OnSelChanged := thisfunction(OnSelChangedCall); CloseBtn := true; - onnotification := function(o,e)begin - ms := e.message; - if ifarray(ms) and ms[0] ="font" then - begin - font := ms[1]; - InValidateRect(nil,false); - end - end end function WMNCLBUTTONDOWN(o,e):WM_NCLBUTTONDOWN;override; begin @@ -677,6 +670,7 @@ type TEditerAuxiliary=class(TPage) // {$endif} if CurrentItem then wnd := CurrentItem.Tag; if wnd then wnd.SetBoundsRect(Rc); + InValidateRect(nil,false); end function ShowPopUp();//弹出 begin @@ -873,7 +867,7 @@ type TExecuteEditer=class(TCustomControl) //执 WSpOPUp := true; FItems := new TMyArrayB(); caption := "编辑 Execute....."; - SetBoundsRect(array(50,50,930,201)); + //SetBoundsRect(array(50,50,930,301)); FMemo := new TSynMemoNorm(self); FMemo.OnKeyPress := function(o,e) begin @@ -901,13 +895,21 @@ type TExecuteEditer=class(TCustomControl) //执 end} FMemo.Border := true; - FMemo.parent := self; + FChooser := new TComboBoxb(self); //new TEditList(self); + FChooser.ongetpreferredsize := function(o,e)begin + e.Width := 200; + e.Height := font.Height+5; + end ; + FChooser.autosize := true; FChooser.ReadOnly := false; - FChooser.parent := self; + FOkBtn := new TBtn(self); + FOkBtn.autosize := true; FCancelBtn := new TBtn(self); + FCancelBtn.autosize := true; FEgnorBtn := new TBtn(self); + FEgnorBtn.autosize := true; cp := new TExecuteMemoComp(self); FMemo.Completion := cp; cp.PrepareCompletion(); @@ -919,14 +921,31 @@ type TExecuteEditer=class(TCustomControl) //执 FOkBtn.Caption := "保存/添加"; FCancelBtn.Caption := "删除当前"; FEgnorBtn.caption := "取消"; - FOkBtn.parent := self; - FCancelBtn.parent := self; - FEgnorBtn.parent := self; - FMemo.parent := self; + + FMemo.font := array("width":10,"height":20); FChooser.OnSelChanged := thisfunction(OnChooserChanged); FCancelBtn.OnClick := thisfunction(DeleteCurrent); FOkBtn.OnClick := thisfunction(doSaveCurrentName); FEGnorBtn.OnClick := thisfunction(OnIgnore); + // + FMemo.parent := self; + FMemo.ongetpreferredsize:=function(o,e)begin + e.Width := 800; + e.Height := 150; + end + pal := new TPanel(self); + pal.WsDlgModalFrame := false; + fpal := pal; + pal.childsizing := array("controlsperline":10,"layout":1,"verticalspacing":50,"horizontalspacing":3,"topbottomspacing":2); + FChooser.parent := pal; + FCancelBtn.parent := pal; + FOkBtn.parent := pal; + FEgnorBtn.parent := pal; + autosize := true; + childsizing := array("layout":2,"controlsperline":3,"horizontalspacing":3,"topbottomspacing":2); + pal.autosize := true; + pal.Parent := self; + end function Recycling();override; begin @@ -943,7 +962,7 @@ type TExecuteEditer=class(TCustomControl) //执 if length(FChooser.Items)<2 then return ; FChooser.DeleteItem(FChooser.ItemIndex); end - function DoControlAlign();override; + {function DoControlAlign();override; begin if FMemo and FChooser and FCancelBtn and FOkBtn and FEgnorBtn then begin @@ -954,16 +973,15 @@ type TExecuteEditer=class(TCustomControl) //执 tp := r1[3]+2; wd := 200; x := 50; - FChooser.SetBoundsRect(array(x,tp,x+200,tp+26)); + FChooser.SetBoundsRect(array(x,tp,x+200,tp+28)); + x += 230; + FCancelBtn.SetBoundsRect(array(x,tp,x+180,tp+28)); + x += 200; + FOkBtn.SetBoundsRect(array(x,tp,x+180,tp+28)); x += 200; - FCancelBtn.SetBoundsRect(array(x+20,tp,x+20+100,tp+26)); - x += 120; - FOkBtn.SetBoundsRect(array(x+20,tp,x+100,tp+26)); - x += 120; - FEgnorBtn.SetBoundsRect(array(x+20,tp,x+100,tp+26)); - x += 120; + FEgnorBtn.SetBoundsRect(array(x,tp,x+180,tp+28)); end - end + end} function OnIgnore(); begin idx := FChooser.ItemIndex; @@ -1039,8 +1057,9 @@ type TExecuteEditer=class(TCustomControl) //执 it := O.GetItem(idx); FMemo.Text := it.fexe; end else - FMemo.Text := ""; + FMemo.Text := ""; FMemo.ClearUndo(); + FMemo.ExecuteCommand(FMemo.ecGotoXY,array(1,1)); end function GetData(); //获得数据 begin @@ -1074,6 +1093,7 @@ type TExecuteEditer=class(TCustomControl) //执 FOkBtn; FItems; FEgnorBtn; + fpal; private function GetItemIndex(); begin @@ -1685,41 +1705,44 @@ type TPageEditer=class(TPage) // FMenu := nil; FPageItemOnRClick := nil; end + fscroling; function DoMouseWheel(o,e);override; begin IF ssCtrl in e.shiftstate then begin - fw := font.Width; - hw := font.height; + if fscroling then return ; + fscroling := true; + ft := o.font; + fw := ft.Width; + hw := ft.height; if e.delta<0 then begin if fw>6 then begin - if fw=18 then - begin - fw :=17; - hw :=34; - end finfo := array("width":fw-1,"height":hw-2); end end else begin - if fw<24 then + if fw<44 then begin - if fw=16 then - begin - fw := 17; - hw := 34; - end finfo := array("width":fw+1,"height":hw+2); end end if finfo then begin - font := finfo; - callMessgeFunction(onscrollfont,o,finfo); + //font := finfo; + //callMessgeFunction(onscrollfont,o,finfo); + a := InitializeApplication(); + if a then + begin + a.font := finfo; + end + global editorglobalinfo; + if not ifarray(editorglobalinfo) then editorglobalinfo := array(); + editorglobalinfo["fontsize"] := finfo["width"]; InValidateRect(nil,false); end + fscroling := false; return; end end @@ -1777,8 +1800,7 @@ type TEditer=class(TCustomcontrol) // begin inherited; if not Fhightercolor then - Fhightercolor := new thighlitcolor(self); - + Fhightercolor := new thighlitcolor(self); FOpenHistory := new TMyarrayb(); FFistShows := array(); FSynHCS := New TMyArrayA(); @@ -1790,52 +1812,25 @@ type TEditer=class(TCustomcontrol) // FCurrentItemCode := array(); FGoBackA := new TMyarrayB(); FGoBackB := new TMyarrayB(); - //FToolbar := new TToolBar(self); //工具栏 ftoolbara := new TToolBar(self); //工具栏 ftoolbarb := new TToolBar(self); //工具栏 FStatus := new TStatusBar(self); //状态栏 - fcoolbar := new tcoolbar(self); - fcoolbar.ParentFont := false; + fcoolbar := new tcoolbar(self); ftoolbara.Align := alNone; ftoolbarb.Align := alNone; - //ftoolbara.Width := 430; - //ftoolbarb.Width := 250; fcoolbar.autosize := true; FInfoShowWnd := new TEditerAuxiliary(self); - FPageEditer := new TPageEditer(self); - FPageEditer.onscrollfont := function(o,ft)begin - fh := ft["height"]; - if fh>34 then return ; - global g_editer_font_size := ft; - self.Notification(self,array("font",ft)); - FinCodemap.FTree.font := ft; - FinCodemap.FTree.ItemHeight := fh+6; - if fh<20 then + FPageEditer := new TPageEditer(self); + onnotification := function(o,e)begin + d := e.msg; + if ifarray(d) and d["imgsize"]>0 then begin - isz := array(24,24); - end else - if fh>=20 and fh<24 then - begin - isz := array(28,28); - end else - if fh>=24 and fh<28 then - begin - isz := array(32,32); - end else - if fh>=28 and fh<31 then - begin - isz := array(36,36); - end else - begin - isz := array(40,40); - end - FImages.imgsize := isz; - fcoolbar.font := ft; - end + FImages.imgsize := d["imgsize"]; + end + end //FPageEditer.CloseBtn := true; FPageEditer.Onbmpbclick := function(o,e) begin - it := e._Tag; if not it then return ; if it.fisnewfile then //单独处理新建关闭 @@ -1887,8 +1882,8 @@ type TEditer=class(TCustomcontrol) // end; FFindWnd := new TFindWnd(self); //查找 - FFindWnd.ParentFont := false; - FFindWnd.font := array("height":20,"width":10); + //FFindWnd.ParentFont := false; + //FFindWnd.font := array("height":20,"width":10); FGotoLineWnd := new TGoToLineWnd(self); //共同 FListPages := new TListPages(self); //tab 跳转页面 FEchoWnd := new TEditerEchoWnd(self); @@ -1911,9 +1906,9 @@ type TEditer=class(TCustomcontrol) // FGotoLineWnd.Visible := false; ///////////////////////// FFindWnd.Visible := false; - FFileSave.Filter := array("any":"*.*","tsl文件":"*.tsl;*.tsf"); + FFileSave.Filter := array("tsl函数":"*.tsf","tsl脚本":"*.tsl","any":"*.*"); FFileSave.Caption := "另存为"; - FFileopen.Filter := array("any":"*.*","tsl文件":"*.tsl;*.tsf"); + FFileopen.Filter := array("tsl文件":"*.tsl;*.tsf","any":"*.*"); FPageEditer.OnSelChanged := thisfunction(PageItemSelChanged); //////// FListPages.Visible := false; @@ -1931,9 +1926,6 @@ type TEditer=class(TCustomcontrol) // //////////// FPageEditer.PageItemOnRClick := thisfunction(PageItemOnRClick); FImages := new TControlImageList(self); - //FImages.Width := 24; - //FImages.Height := 24; - FImages.imgsize := array(24,24); imgs := GetEditIcons(); id := 0; FToolbtns := array(); @@ -1970,7 +1962,6 @@ type TEditer=class(TCustomcontrol) // FImages.DrawBmpFirst := true; Fdbgbtns := dbgbtns; FTslDebug.addbtns(dbgbtns); - //FToolbar.ImageList := FImages; ftoolbara.autosize := true; ftoolbara.ParentFont := true; ftoolbarb.autosize := true; @@ -1980,10 +1971,8 @@ type TEditer=class(TCustomcontrol) // ftoolbara.Parent := fcoolbar; ftoolbarb.Parent := fcoolbar; FInfoShowWnd.Visible := false; - //FInfoShowWnd.WsSysMenu := true; FInfoShowWnd.WSsizebox := true; FInfoShowWnd.height := 200; - //FInfoShowWnd.OnSize := thisfunction(DoControlAlign); FInfoShowWnd.OnCloseClick := function(o,e) begin o.visible := false; @@ -2037,7 +2026,24 @@ type TEditer=class(TCustomcontrol) // end ffuncfind := new t_function_finder(self); FShortCutshower := new t_shortcut_keys_view(self); + fsyssizemgr := new tsyssizemgr(self); + fsyssizemgr.Parent := self; end + function modifysyssize(); + begin + global editorglobalinfo; + if fsyssizemgr.show_syssize() then + begin + r := editorglobalinfo; + editorglobalinfo := fsyssizemgr.GetInfo(); + editorglobalinfo["syssize"] := true; + app := InitializeApplication(); + sz := editorglobalinfo["fontsize"]; + sz2 := sz*2; + app.font := array("width":sz,"height":sz2); + if not(r) or (ifarray( r ) and r["imgsize"]<>editorglobalinfo["imgsize"]) then NotifyComponent(fsyssizemgr,editorglobalinfo); + end + end function PopUpAuxiliary(); begin FInfoShowWnd.ShowPopUp(); @@ -2262,6 +2268,7 @@ type TEditer=class(TCustomcontrol) // s := FExecuteEditer.GetCurrentExuteString(it.Scriptpath); FEchoWnd.Exec("",s,h); end + fsyssizemgr; compile_config; fpg_config_infos; function buildpageitem(it); @@ -3073,7 +3080,7 @@ type TEditer=class(TCustomcontrol) // FHistoryWnd.Caption := "打开历史...."; FHistoryWnd.WSsysMenu := true; FHistoryWnd.WsSizeBox := true; - FHistoryWnd.Width := 400; + FHistoryWnd.Width := 700; FHistoryWnd.Height := 600; {FHistoryClearMenuPop := new TPopUpMenu(self); FHistoryClearMenu := new TMenu(self); @@ -3372,7 +3379,8 @@ type TEditer=class(TCustomcontrol) // fcoolbar.SetBoundsRect(r); end r := rr; - r[1]:= r[3]-FStatus.Height; + ft := font; + r[1]:= r[3]-ft.Height-5;//FStatus.Height; FStatus.SetBoundsRect(r); rr := rr; if htoolbar then @@ -3883,7 +3891,7 @@ type TEditer=class(TCustomcontrol) // if not fhltediter then begin fhltediter := new t_editor_color_mgr(self); - fhltediter.ParentFont := false; + //fhltediter.ParentFont := false; fhltediter.Parent := self; fhltediter.colorinfo := fhltediterdata; end @@ -4601,7 +4609,7 @@ type TEditList=class(TComboBox) inherited; width := 280; Height := 26; - dropdowncount := 30; + dropdowncount := 15; FMaxCoder := 20; ReadONly := false; Editer.OnKeyDown := function(o,e) @@ -4637,6 +4645,7 @@ type TEditList=class(TComboBox) end end; end + text := ""; end function Recycling();override; begin @@ -4894,18 +4903,9 @@ type tfincodemap = class(tcustomcontrol) Ftimer.Interval := 200; Ftimer.Ontimer := thisfunction(BdownTimeOut); Ftimer.Enabled := false; - - FList := new TCombobox(self); - flist.Width := 180; - ar := array("Class","Function","Statements","If","Else","SubCase","Goto","Try","Empty_Begin_End","NeedSql","Unit","property","Member"); - flist.Multisel := true; - FList.AppendItems(ar); - flist.ItemIndex := 0->(length(ar)-1); - FList.Parent := self; + initbtn(); FTree := new TTreeView(self); - FTree.ParentFont := false; - FTree.font := array("width":11,"height":22); ftree.ItemHeight := 28; FTree.OnSelChanged := thisfunction(SynNodeSelected); FTree.Parent := self; @@ -4944,7 +4944,7 @@ type tfincodemap = class(tcustomcontrol) FList.SetBoundsRect(r); fcbtn.left := rr[2]-25; r := rr; - r[1]:= 27; + r[1]:= FList.Height+2; r[0]:=1; r[2]:=r[2]-3; FTree.SetBoundsRect(r); @@ -5161,11 +5161,20 @@ EA5E0BB7C5850E4063EDA83420076B5E10000000049454E44AE42608200"; bmp := new TBitmap(); bmp.ReadVcon(HexformatStrToTsl(s)); ffbtn.BKBitmap := bmp; + FList := new TCombobox(self); + FList.autosize := true; + flist.Width := 180; + ar := array("Class","Function","Statements","If","Else","SubCase","Goto","Try","Empty_Begin_End","NeedSql","Unit","property","Member"); + flist.Multisel := true; + FList.AppendItems(ar); + flist.ItemIndex := 0->(length(ar)-1); + FList.Parent := self; end function geteditor(); begin if not owner then return 0; it := Owner.GetCurrentItem(); + if not it then return 0; edit := it.FEditer; if not edit then return 0; m := edit.HighLighter ; @@ -5272,15 +5281,15 @@ type TFindListWnd=class(TListBox) // function Create(AOwner); begin inherited; - font := array("width":11,"height":22); - ParentFont := false; - onnotification := function(o,e)begin + //font := array("width":11,"height":22); + //ParentFont := false; + {onnotification := function(o,e)begin ms := e.message; if ifarray(ms) and ms[0] ="font" then begin font := ms[1]; end - end + end } end function CheckListItem(s);override; begin @@ -5319,9 +5328,26 @@ type TFindWnd=class(TPage) if sec then r["section"]:= sec; r["btn"]:= btn; end + function ftchanged(o,e); //字体改变 + begin + //设置大小 + ft := font; + if not ft then return ; + fh := ft.Height; + fw := ft.Width; + h := 14*(fh+10); + fbtnheight := fh+10; + ffontwidth := fw; + fbtnwidth := fw*11+20; + feditwidth := 300; + Width := fbtnwidth*2+80+300; + Height := h; + //DoControlAlign(); + end function Create(AOwner);override; begin inherited; + OnClose := function(o,e) begin Parent.EndFind(); @@ -5335,7 +5361,7 @@ type TFindWnd=class(TPage) WSsYSMenu := true; //WsSizeBox := true; caption := "查找"; - SetBoundsRect(array(300,300,920,680)); + //SetBoundsRect(array(300,300,920,680)); IncPaintLock(); for i,v in array("查找","替换","文件查找") do begin @@ -5352,7 +5378,7 @@ type TFindWnd=class(TPage) FDirChooser := new TFolderChooseADlg(self); FEdit_dir_btn := new TBtn(self); flabels := array(); - for i,v in array("查找目标:"," 替换为:","文件类型:"," 目录:") do + for i,v in array("查找目标"," 替换为","文件类型"," 目录") do begin lb := new TLabel(self); lb.TextAlign := AL9_CENTERRIGHT; @@ -5397,6 +5423,7 @@ type TFindWnd=class(TPage) FBtn_Count := new TFindBtn(self); // 计数 FBtn_Count_a := new TFindBtn(self); // 计数 FBtn_replaceall := new TFindBtn(self); + FCheck_subdir := new TFindCheck(self); //保护子目录 FBtn_Find.caption := "查找"; FBtn_replace.caption := "替换"; FBtn_Count_a.Caption := "计数"; @@ -5423,7 +5450,6 @@ type TFindWnd=class(TPage) FCheck_case := new TFindCheck(self); FCheck_cycle := new TFindCheck(self); FCheck_reg := new TFindCheck(self); - FCheck_subdir := new TFindCheck(self); FCheck_gt := new TFindCheck(self); FCheck_subdir.checked := true; FCheck_subdir.Left := 425; @@ -5457,10 +5483,23 @@ type TFindWnd=class(TPage) FCheck_subdir.parent := self; FStatus := new TStatusBar(self); //FStatus.Align := alNone; - FStatus.Items := array(("text":"","width":700)); + FStatus.Items := array(("text":"","width":1000)); FStatus.Parent := self; OnSelChanged := thisfunction(DoSelChanged); ItemIndex := 0; + + ft := font; + fh := ft.Height; + fw := ft.Width; + h := 14*(fh+10); + fbtnheight := fh+10; + ffontwidth := fw; + fbtnwidth := fw*11+20; + feditwidth := 300; + Width := fbtnwidth*2+80+300; + fsatusok := true; + Height := h; + onfontchanged := thisfunction(ftchanged); //SetStatusText("查找"); end function FindBtnClick(o,e); @@ -5539,7 +5578,6 @@ type TFindWnd=class(TPage) begin v.PushItem(v.Editer.Text); end - //if e then e.PushItem(e.Editer.Text); end function DoSelChanged(o,e); begin @@ -5593,16 +5631,76 @@ type TFindWnd=class(TPage) end end end - function DoControlAlign();override; + function docontrolalign();override; begin inherited; - if not FStatus then return; + if not fsatusok then return ; + lf := 0; + tp := fbtnheight; + bw := fbtnwidth; + lh := fbtnheight-4; + fw := ffontwidth; + intv := 20; + lintv := 10; + lrec := array(lf,tp,lf+bw,tp+lh); + for i,v in flabels do + begin + if not v then return ; + v.setboundsrect(lrec); + lrec[1]+=lh+lintv; + lrec[3]+=lh+lintv; + end + lrec[0]+=intv; + lrec[2]+=intv; + for i,v in array(FCheck_revers,FCheck_wrap,FCheck_case,FCheck_cycle,FCheck_reg) do + begin + if not v then return ; + v.setboundsrect(lrec); + lrec[1]+=lh+lintv; + lrec[3]+=lh+lintv; + end + lrec := array(lf+bw+intv,tp,lf+bw+feditwidth+intv,tp+lh); + for i,v in array(FEdit_Target,FEdit_repace) do + begin + if not v then return ; + v.setboundsrect(lrec); + lrec[1]+=lh+lintv; + lrec[3]+=lh+lintv; + end + FEdit_Type.setboundsrect(lrec); + lrec[1]+=lh+lintv; + lrec[3]+=lh+lintv; + FEdit_dir.setboundsrect(lrec); + r := lrec; + r[2]-=fw*3; + lrec[0] := r[2]+1; + FEdit_dir_btn.setboundsrect(lrec); + lrec := array(lrec[2]+intv,tp,lrec[2]+bw+intv,tp+lh); + for i,v in array(FBtn_Find,array(FBtn_Count_a,FBtn_replace),FBtn_replaceall,array(FCheck_subdir,FBtn_Count)) do + begin + if ifarray(v) then + begin + for j,vj in v do + begin + if not vj then return ; + vj.setboundsrect(lrec); + end + end else + begin + if not v then return ; + v.setboundsrect(lrec); + end + lrec[1]+=lh+lintv; + lrec[3]+=lh+lintv; + end + if not FStatus then return; rc := ClientRect; - rc[1]:= rc[3]-30; - FStatus.SetBoundsRect(rc); - end + rc[1]:= rc[3]-ffontwidth*2-5; + FStatus.SetBoundsRect(rc); + end function recycling();override; begin + fsatusok := false; inherited; FStatus := nil; end @@ -5619,27 +5717,35 @@ type TFindWnd=class(TPage) begin if not ifarray(d)then return; fds := d["finds"]; - if ifarray(fds)then + if ifarray(fds) and fds then begin FEdit_Target.Items := fds; + FEdit_Target.ItemIndex := -1; end rps := d["repalces"]; - if ifarray(rps)then + if ifarray(rps) and rps then begin FEdit_repace.Items := rps; end dirs := d["dirs"]; - if ifarray(dirs)then + if ifarray(dirs) and dirs then begin - FEdit_dir.items := dirs; + FEdit_dir.items := dirs; + FEdit_dir.ItemIndex := 0; end dirs := d["findfiletyps"]; - if ifarray(dirs)then + if ifarray(dirs) and dirs then begin FEdit_Type.items := dirs; + FEdit_Type.ItemIndex := 0; end end private + fsatusok; + fbtnheight; + fbtnwidth; + feditwidth; + ffontwidth; weakref FStatus; FDirChooser; @@ -5669,8 +5775,8 @@ type TGoToLineWnd=class(TVCForm) // function Create(AOwner);override; begin inherited; - ParentFont := false; - font := array("width":10,"height":20); + //ParentFont := false; + //font := array("width":10,"height":20); wssizebox := false; minmaxbox := false; WsDlgModalFrame := true; @@ -5786,9 +5892,100 @@ type TMouseMoveList=class(TListBox) private FCurrentIndex; end - - - +type tsyssizemgr = class(TVCForm) + uses tslvcl; + function create(AOwner); + begin + inherited; + Caption := "字体图标大小"; + Visible := false; + WSSizebox := false; + minmaxbox := false; + WsCaption := "sys size"; + lb1 := new TLabel(self); + lb1.Caption := "系统字体大小:"; + lb1.autosize := true; + lb2 := new TLabel(self); + lb2.Caption := "系统图标大小:"; + lb2.autosize := true; + fsysimg := new TCombobox(self); + fsysimg.autosize := true; + fsysimg.Items := inttostr(array(24,8)->64); + fsysimg.ItemIndex := 0; + fsysfont := new TCombobox(self); + fsysfont.autosize := true; + fsysfont.Items := inttostr(array(8,2)->36); + fsysfont.ItemIndex := 0; + lb3 := new TLabel(self); + lb3.Caption := ""; + pal := new tcustomcontrol(self); + pal.autosize := true; + fok := new tbtn(self); + fok.caption := "确定"; + fok.autosize := true; + fcancel := new tbtn(self); + fcancel.caption := "取消"; + fcancel.autosize := true; + fcancel.Parent := pal; + fok.Parent := pal; + fcancel.Parent := pal; + lb1.Parent := self; + fsysfont.Parent := self; + lb2.Parent := self; + fsysimg.Parent := self; + lb3.Parent := self; + pal.Parent := self; + childsizing := array("layout":1,"controlsperline":2); + pal.childsizing := array("layout":1,"controlsperline":2,"topbottomspacing":3); + autosize := true; + fok.onclick := thisfunction(okclk); + fcancel.onclick := thisfunction(cancelclk); + fsysimg.ongetpreferredsize := thisfunction(egetpsize); + fsysfont.ongetpreferredsize := thisfunction(egetpsize); + end + function egetpsize(o,e); + begin + ft := font; + e.Height := ft.Height+5; + e.Width := ft.Width*7; + end + function okclk(o,e); + begin + EndModal(1); + end + function cancelclk(o,e); + begin + EndModal(0); + end + function setinfo(r); //设置数据 + begin + isz := r["imgsize"]; + if isz>0 then fsysimg.Text := inttostr(isz); + fsz := r["fontsize"]; + if fsz>0 then fsysfont.Text := inttostr(fsz); + end + function getinfo(); + begin + r := array(); + r["imgsize"] := StrToIntDef(fsysimg.Text,24); + r["fontsize"] := StrToIntDef(fsysfont.Text,10); + return r; + end + function DoWMCLOSE(o,e);override; + begin + e.skip := true; + EndModal(0); + end + function show_syssize(); + begin + global editorglobalinfo; + setinfo(editorglobalinfo?:array()); + center_popup_wnd(self); + return ShowModal(); + end + fsysimg; + fsysfont; +end function GetEditIcons(); begin r := array(); diff --git a/designer/utslvcldebuger.tsf b/designer/utslvcldebuger.tsf index 591456e..79ccad3 100644 --- a/designer/utslvcldebuger.tsf +++ b/designer/utslvcldebuger.tsf @@ -686,7 +686,7 @@ type TTslDebuga=class(TCustomControl) function Create(AOwner); begin inherited; - init_item_height := 30; + //init_item_height := 30; fscriptbrks := array(); //Frundirect := false; FCmdHistory := array(); @@ -698,14 +698,15 @@ type TTslDebuga=class(TCustomControl) dbwnd.Align := alClient; dbwnd.Parent := self; FStackList := new TListView(self); // new TListBox(self); //new tmemo(self);// - FStackList.ItemHeight := init_item_height; + + //FStackList.ItemHeight := init_item_height; FStackList.Columns := array(("text":"line","width":80), ("text":"function","width":250) //,("text":"type","width":70) ); FStackList.Border := true; FVaraiblesList := new TGroupGridA(self); FVaraiblesList.Border := false; - FVaraiblesList.ItemHeight := init_item_height; + //FVaraiblesList.ItemHeight := init_item_height; FVaraiblesList.Columns := array(("text":"name","width":105), ("text":"value","width":135), ("text":"type","width":80) @@ -713,7 +714,7 @@ type TTslDebuga=class(TCustomControl) FCommandtext := new TEdit(self); FCommandtext.autosize := true; FCommandtext.placeholder := "命令输入框"; - FCommandtext.Height := init_item_height; + //FCommandtext.Height := init_item_height; FCommandtext.onkeyup := thisfunction(cmdkeyup); FShowText := new tmemo(self); FShowText.ReadOnly := true; @@ -754,20 +755,18 @@ type TTslDebuga=class(TCustomControl) begin return 1; end - onnotification := function(o,e)begin - if not (FStackList and FVaraiblesList) then return ; - ms := e.message; - if ifarray(ms) and ms[0] ="font" then - begin - ft := ms[1]; - FStackList.font := ft; - FStackList.ItemHeight := ft["height"]+6; - FVaraiblesList.font := ft; - FVaraiblesList.ItemHeight := ft["height"]+6; - //font := ms[1]; - end - end - + self.onfontchanged := function(o,e)begin + if (FVaraiblesList and FStackList) then + begin + ft := o.font; + if ft then + begin + ht := ft.Height; + FVaraiblesList.ItemHeight := ht+6; + FStackList.ItemHeight := ht+6; + end + end + end end function addbreak(item,idx,n); //添加断点 begin @@ -1944,38 +1943,43 @@ type ttempclass = class() end type tdbgselwnd=class(tdcreateform) uses tslvcl; + fdiag:tfolderchooseadlg; + flist:tlistview; + cancel_clk; + save_clk; + dbg_clk; + fhistorydir; + panel3:tpanel; label1:tlabel; + portpal:tpanel; furl:tedit; label2:tlabel; fport:tedit; label3:tlabel; fusr:tedit; label4:tlabel; - label5:tlabel; fpwd:tpassword; - fdir:tedit; - fdiag:tfolderchooseadlg; - flist:tlistview; - fcbtn:tbtn; + label6:tlabel; + panel2:tpanel; flogout:tbtn; flogin:tbtn; + label5:tlabel; + panel1:tpanel; + fdir:tedit; + fcbtn:tbtn; + panel4:tpanel; fdbg:tbtn; - cancel_clk; - save_clk; - dbg_clk; - fhistorydir; function Create(AOwner);override; //构造 begin inherited; Visible := false; - ParentFont := false; + //ParentFont := false; Loader.LoadFromTfmScript(self,getinfo()); - flist.Columns := array( - ("text":"ID号","width":150), - ("text":"信息","width":300), - ("text":"创建时间","width":100) + flist.Columns := array(("text":"ID号","width":150) + ,("text":"信息","width":300) + ,("text":"创建时间","width":100) ); - flogout.top := 140; + //flogout.top := 140; flogout.OnClick := function(o,e) begin calldatafunction(cancel_clk,self,e); @@ -1995,15 +1999,56 @@ type tdbgselwnd=class(tdcreateform) calldatafunction(dbg_clk,self,e); end setlist(); + onfontchanged := thisfunction(ftchanged); + end + function ftchanged(o,e); + begin + ft := font; + if flist and ft then + begin + flist.ItemHeight := ft.Height+6; + end + end + function panel1_gprefsize(o;e);virtual; + begin + ft := font; + if not ft then return; + fh := ft.Height; + fw := ft.Width; + e.width := 400; //宽度 + e.height := fh+10; //高度 + end + function flist_gprefsize(o;e); + begin + {** + @explan(说明) 获取最佳的尺寸 %% + @param(o)(tcontrol)控件 %% + @param(e)(tmmeasuresize) 消息对象 %% + **} + e.width := 600; //宽度 + e.height := 400; //高度 + end + function fusr_gprefsize(o;e); + begin + ft := font; + if not ft then return; + fh := ft.Height; + fw := ft.Width; + e.width := 400; //宽度 + e.height := fh+5; //高度 end function setattachwait(flg); //设置登陆样式 begin if flg then begin - Height := 210; + //Height := 210; + flist.Visible := false; + panel4.Visible := false; end else begin - Height := 550; + //Height := 550; + flist.Visible := true; + panel4.Visible := true; end end function loaddata(); //导入数据 @@ -2088,132 +2133,243 @@ type tdbgselwnd=class(tdcreateform) begin return %% object tserlogersimplewnd1:tserlogersimplewnd - caption="远程调试" - color=0xFFFFFF - top=100 - height=550 - minmaxbox=false - onclose=tserlogersimplewnd1_close - width=580 - wsdlgmodalframe=true - wssizebox=false - object label1:tlabel - left=4 - top=3 - width=80 - height=25 - caption="服务器地址" - end - object furl:tedit - height=25 - left=88 - tabstop=true - top=3 - width=204 - end - object label2:tlabel - left=296 - top=3 - width=34 - height=25 - caption="端口" - end - object fport:tedit - height=25 - left=333 - tabstop=true - top=3 - width=62 - end - object label3:tlabel - left=2 - top=38 - width=80 - height=25 - caption=" 用户名" - end - object fusr:tedit - height=25 - left=88 - tabstop=true - top=38 - width=300 - end - object label4:tlabel - left=2 - top=72 - width=80 - height=25 - caption=" 密 码" - end - object label5:tlabel - left=2 - top=100 - width=80 - height=25 - caption=" 脚本目录" - end - - object fpwd:tpassword - height=25 - left=88 - tabstop=true - top=72 - width=300 - end - object fdir:tedit - height=25 - left=88 - tabstop=true - top=100 - width=300 - end - object fcbtn:tbtn - caption="..." - height=25 - left=390 - tabstop=true - top=100 - width=22 - onclick=getdir - end - object flogout:tbtn - an1chors=[akright akbottom] - caption="取消" - height=23ff - left=375 - tabstop=true - top=480 - width=74 - end - object fdbg:tbtn - an1chors=[akright akbottom] - caption="调试" - height=23 - left=470 - tabstop=true - top=480 - width=74 - end - object flogin:tbtn - caption="连接" - height=23 - left=470 - tabstop=true - top=140 - width=74 - end - object flist:tlistview - anch1ors=[akTop akright akLeft akBottom] - height=290 - left=2 - top=180 - width=560 - end - object fdiag:tfolderchooseadlg - caption="执行目录" - end + autosize=true + caption="远程调试" + childsizing=< + layout=2 + controlsperline=4 + horizontalspacing=10 + verticalspacing=10 + leftrightspacing=10 + topbottomspacing=10 + > + color=0xFFFFFF + height=636 + left=700 + minmaxbox=false + onclose=tserlogersimplewnd1_close + top=271 + width=452 + wsdlgmodalframe=true + wssizebox=false + object fdiag:tfolderchooseadlg + left=501 + top=34 + height=30 + width=30 + caption="执行目录" + end + object panel3:tpanel + autosize=true + caption="panel3" + childsizing=< + layout=1 + controlsperline=2 + horizontalspacing=5 + verticalspacing=5 + leftrightspacing=5 + topbottomspacing=5 + > + height=136 + left=10 + top=10 + width=416 + wsdlgmodalframe=false + object label1:tlabel + left=5 + top=5 + width=58 + height=22 + autosize=true + caption="服务地址" + textalign=al9_centerright + end + object portpal:tpanel + autosize=true + caption="panel1" + childsizing=< + layout=1 + controlsperline=3 + horizontalspacing=0 + verticalspacing=1 + leftrightspacing=0 + topbottomspacing=1 + > + height=22 + left=68 + top=5 + width=343 + wsdlgmodalframe=false + object furl:tedit + caption="edit1" + height=20 + left=0 + tabstop=true + top=1 + width=204 + end + object label2:tlabel + left=205 + top=1 + width=30 + height=20 + autosize=true + caption="端口" + end + object fport:tedit + caption="edit1" + height=20 + left=236 + tabstop=true + top=1 + width=62 + end + end + object label3:tlabel + left=5 + top=32 + width=58 + height=20 + autosize=true + caption="用户名" + textalign=al9_centerright + end + object fusr:tedit + caption="edit1" + height=20 + left=68 + ongetpreferredsize=fusr_gprefsize + tabstop=true + top=32 + width=343 + end + object label4:tlabel + left=5 + top=57 + width=58 + height=20 + autosize=true + caption="密码" + textalign=al9_centerright + end + object fpwd:tpassword + caption="password1" + height=20 + left=68 + ongetpreferredsize=fusr_gprefsize + tabstop=true + top=57 + width=343 + end + object label5:tlabel + left=5 + top=82 + width=58 + height=21 + autosize=true + caption="脚本目录" + textalign=al9_centerright + end + object panel1:tpanel + autosize=true + caption="panel1" + childsizing=< + layout=1 + controlsperline=2 + horizontalspacing=0 + verticalspacing=3 + leftrightspacing=1 + topbottomspacing=0 + > + height=21 + left=68 + ongetpreferredsize=panel1_gprefsize + top=82 + width=343 + wsdlgmodalframe=false + object fdir:tedit + caption="edit1" + height=21 + left=1 + tabstop=true + top=0 + width=300 + end + object fcbtn:tbtn + caption="..." + height=21 + left=304 + onclick=getdir + tabstop=true + top=0 + width=35 + end + end + object label6:tlabel + left=5 + top=108 + width=58 + height=23 + autosize=true + caption="" + end + object panel2:tpanel + autosize=true + caption="panel2" + height=23 + left=68 + top=108 + width=343 + wsdlgmodalframe=false + object flogout:tbtn + autosize=true + caption="取消" + height=21 + left=147 + tabstop=true + top=0 + width=42 + end + object flogin:tbtn + autosize=true + caption="连接" + height=21 + left=300 + tabstop=true + top=0 + width=42 + end + end + end + object flist:tlistview + height=400 + left=10 + ongetpreferredsize=flist_gprefsize + top=156 + width=416 + end + object panel4:tpanel + autosize=true + caption="panel4" + height=21 + left=10 + top=566 + width=416 + wsdlgmodalframe=false + object fdbg:tbtn + align=alright + anchors=[aktop akleft] + autosize=true + caption="调试" + height=21 + left=374 + tabstop=true + top=0 + width=42 + end + end end + %%; end private diff --git a/designer/utslvcldesigner.tsf b/designer/utslvcldesigner.tsf index ed92d6c..e474b91 100644 --- a/designer/utslvcldesigner.tsf +++ b/designer/utslvcldesigner.tsf @@ -513,6 +513,10 @@ type TVclDesigner = class(tvcform) begin FProjectManager.ShowCurrentFormCode();//ShowEditor(); end + function opensysfontmgr(); + begin + FProjectManager.opensysfontmgr(); + end function opentfm(); //打开资源文件 begin FProjectManager.ShowCurrenttfm(); @@ -574,9 +578,11 @@ type TVclDesigner = class(tvcform) )), ("type":"menu","caption":"工具","items":( + ("type":"menu","caption":"设计器目录","checked":0,"onclick":thisfunction(open_tsl_dir)), ("type":"menu","caption":"控件管理","checked":0,"onclick":thisfunction(mgr_control)), ("type":"menu","caption":"打开图片","checked":0,"onclick":thisfunction(ViewBitmap)), - ("type":"menu","caption":"编辑器颜色","checked":0,"onclick":thisfunction(showhltcolor)) + ("type":"menu","caption":"编辑器颜色","checked":0,"onclick":thisfunction(showhltcolor)), + ("type":"menu","caption":"字体图标大小","onclick":thisfunction(opensysfontmgr)) )), ("type":"menu","caption":"帮助","items":( ("type":"menu","caption":"关于","onclick":thisfunction(openabout)), @@ -1498,8 +1504,8 @@ type TVclDesigner = class(tvcform) function create(AOwner); begin inherited; - ParentFont := false; - Font := array("width":10,"height":20); + //ParentFont := false; + //Font := array("width":10,"height":20); top := 10; left := 10; rect := _wapi.GetScreenRect(); @@ -1564,12 +1570,17 @@ type TVclDesigner = class(tvcform) FPropGrid.align := alclient; FEventGrid.align := alclient; FPropGrid.parent := FProp; - FEventGrid.parent := FEvent; - + FEventGrid.parent := FEvent; Mobjinspect(); onactivate := thisfunction(OnDesignerActivate); + fdimagelist := new TDesigImageList(self); + global editorglobalinfo ; + if ifarray(editorglobalinfo) and editorglobalinfo then + begin + fdimagelist.imgsize := editorglobalinfo["imgsize"]; + end //FTree.Imagelist := fdimagelist; fwindowinfos := new tfilesinfo(self,thisfunction(ClickTreeNode),fdimagelist,tparent); //******************toolbar *************** @@ -1608,9 +1619,6 @@ type TVclDesigner = class(tvcform) FToolBars := new TDesignertoolbars(self); FToolBars.Imagelist := fdimagelist; - FToolBars.Font.width := 10; - FToolBars.Font.height := 20; - FToolBars.linkimagelist := FProjectManager.FTslEditer.gettoolbarimglist(); addtoolbuttons(); FToolBars.Align := alClient; FToolBars.parent := self; @@ -1631,6 +1639,13 @@ type TVclDesigner = class(tvcform) FProjectManager.FTslEditer.setdbugruncall(thisfunction(debugproject)); //设置调试回调 FProjectManager.newmenu.parent := ffilemenu;// FProjectManager.goformmenu.parent := fviewmenu;// + FToolBars.onnotification := function(o,e)begin + d := e.msg; + if ifarray(d) and d["imgsize"]>0 then + begin + fdimagelist.imgsize := d["imgsize"]; + end + end ; //OnChange //fnewmenu end @@ -1640,6 +1655,10 @@ type TVclDesigner = class(tvcform) begin FProjectManager.showhltcolor(); end + function open_tsl_dir(); + begin + _Wapi.openresourcemanager(sysexecname()); + end function mgr_control(); begin if not fmgr_ctl then @@ -2096,19 +2115,10 @@ type TDesignertoolbars = class(TPageControl) // [weakref]ftoolbars; FLabels ; [weakref]fimg; - [weakref]flinkimagelist; function SetImageList(im); begin fimg := im; end - function SetlinkeImageList(img); - begin - flinkimagelist := img; - if flinkimagelist then - begin - flinkimagelist.onchange := thisfunction(changedimg); - end - end public function changedimg(o,e); begin @@ -2120,7 +2130,7 @@ type TDesignertoolbars = class(TPageControl) // FToolsheets := array(); ftoolbars := array(); inherited; - ParentFont := false; + //ParentFont := false; align := alClient; @@ -2176,7 +2186,6 @@ type TDesignertoolbars = class(TPageControl) // end end property ImageList write SetImageList; - property linkimagelist write SetlinkeImageList; private [weakref]ftbs; diff --git a/designer/utslvcldpropertytypes.tsf b/designer/utslvcldpropertytypes.tsf index e5d870a..5caa4cd 100644 --- a/designer/utslvcldpropertytypes.tsf +++ b/designer/utslvcldpropertytypes.tsf @@ -855,6 +855,12 @@ type TPropGrid = class(TTSLDataGrid) OnMouseWheel := function(o,e)begin currentLeave(); end + onfontchanged := function(o,e)begin + ft := font; + if not ft then return ; + fh := ft.height; + itemheight := fh+6; + end end function Recycling();override; begin @@ -1032,12 +1038,12 @@ type TTSLDataGrid=class(TDrawGrid) if ifstring(v)then begin wd := max(wd,length(v) * ftwidth+3); - if wd>200 then break; + if wd>500 then break; end end if RowHeader then begin - fcs[0]:= array("text":" ","width":min(200,wd)); + fcs[0]:= array("text":" ","width":min(500,wd)); end if FCL and allFCL and FShowTwo then begin diff --git a/editor-install.exe b/editor-install.exe index fd61cea..9b89cae 100644 Binary files a/editor-install.exe and b/editor-install.exe differ diff --git a/funcext/tvclib/tcontrol.tsf b/funcext/tvclib/tcontrol.tsf index 44af6c8..4734475 100644 --- a/funcext/tvclib/tcontrol.tsf +++ b/funcext/tvclib/tcontrol.tsf @@ -1524,7 +1524,7 @@ type tcontrol = class(tcomponent) info := fonGetPreferredSize.functioninfo(); fn := info["functionname"]; if ifstring(info["classname"]) then fn := info["classname"] $ "." $ fn; - fn := "onGetPreferredSize call: "$fn $" err!"; + fn := "onGetPreferredSize call: "$fn $" err!" $ exceptobject.errinfo; except fn := "onGetPreferredSize is not function"; end ; diff --git a/funcext/tvclib/tgraphiccontrol.tsf b/funcext/tvclib/tgraphiccontrol.tsf index 5009634..089bc74 100644 --- a/funcext/tvclib/tgraphiccontrol.tsf +++ b/funcext/tvclib/tgraphiccontrol.tsf @@ -74,6 +74,7 @@ type tgraphiccontrol = class(TControl) p := Parent; if(p is class(TWinControl))and p.HandleAllocated()then begin + if p.autosize and (p.childsizing.layout<>0) then return p.AdjustSize(); if Align <> alNone then return p.DoControlAlign(); end ////////////////// @@ -182,6 +183,7 @@ type tgraphiccontrol = class(TControl) inherited; if NewParent is class(TWinControl)then begin + if NewParent.autosize or (NewParent.childsizing.layout<>0) then NewParent.AdjustSize(); InvalidateRect(); end end diff --git a/funcext/tvclib/tslvcl.tsf b/funcext/tvclib/tslvcl.tsf index 0793b6e..782c27f 100644 --- a/funcext/tvclib/tslvcl.tsf +++ b/funcext/tvclib/tslvcl.tsf @@ -1492,6 +1492,12 @@ type tmemo = class(TSynMemoNorm) // if Fonchange then calldatafunction(Fonchange,self(true),new tuieventbase(0,0,0,0)); end + function GetPreferredSize(w,h);override; + begin + if onGetPreferredSize then return inherited; + w := Width; + h := Height; + end function MouseUp(o,e);override; begin if csDesigning in ComponentState then return ; @@ -1594,11 +1600,17 @@ type twrapmemo = class(TScrollingWinControl) end end end + function GetPreferredSize(w,h);override; + begin + if onGetPreferredSize then return inherited; + w := Width; + h := Height; + end function FontChanged(o);override; begin if HandleAllocated() then doControlALign(); end - protected + protected function GetXScrollDelta();override; //x间隔 begin return FCharwidth; @@ -5784,7 +5796,11 @@ type Ttfm2Component = class(TTmfParser) end function hastfmresource(o,cn); begin - data := get_resource_by_name(cn+".tfm"); + ////////////根据新特性处理///////// + ci := o.classinfo(); + data := ci["tfm"]; + /////////////////////////////////////// + if not data then data := get_resource_by_name(cn+".tfm"); if data then begin LoadFromTfmScript(o,data); @@ -5844,20 +5860,22 @@ type Ttfm2Component = class(TTmfParser) function GetReSourcetfmdir(p,rp); begin if not ifarray(rp) then rp := array(); + rp[length(rp)] := p; iofp := ioFileseparator(); for ii,vv in filelist("",p+"*") do begin fn := vv["FileName"]; if fn="." or fn=".." then continue; if Pos("D",vv["Attr"]) then - begin - if lowercase(fn)="resource.tfm" then + begin + GetReSourcetfmdir(p+fn+iofp,rp); + {if lowercase(fn)="resource.tfm" then begin rp[length(rp)] := p+"resource.tfm"+iofp; end else begin GetReSourcetfmdir(p+fn+iofp,rp); - end + end } end end end diff --git a/funcext/tvclib/twincontrol.tsf b/funcext/tvclib/twincontrol.tsf index 80b3e4b..cd38907 100644 --- a/funcext/tvclib/twincontrol.tsf +++ b/funcext/tvclib/twincontrol.tsf @@ -590,9 +590,14 @@ type TWinControl = class(tcontrol) if v=SW_SHOWNOACTIVATE then return ; } _wapi.ShowWindow(FHandle,v?SW_SHOW:SW_HIDE); - if(Parent is class(TWinControl))and parent.HandleAllocated()then + p := parent; + if(p is class(TWinControl))and p.HandleAllocated()then begin - if Align <> alNone then Parent.DoControlAlign(); + if (p.autosize or (p.childsizing.layout<>0) ) then + begin + p.AdjustSize(); + end else + if Align <> alNone then p.DoControlAlign(); end {if V then begin @@ -1787,6 +1792,7 @@ type TWinControl = class(tcontrol) hParentWnd := hParentWndt; end end + Visible := false; //20250508 添加处理关闭按钮 return EndModalCode; end function UpdateWindow(); diff --git a/funcext/tvclib/utslmemo.tsf b/funcext/tvclib/utslmemo.tsf index d0bc7c0..0363788 100644 --- a/funcext/tvclib/utslmemo.tsf +++ b/funcext/tvclib/utslmemo.tsf @@ -729,8 +729,8 @@ type TCustomMemo = class(TCustomScrollControl,TCustomMemoCmd) // begin if bytetype(dtx,i)<> 0 then begin - bn := ft.charset; - ft.charset := 134; + //bn := ft.charset; + //ft.charset := 134; break; end end @@ -747,8 +747,8 @@ type TCustomMemo = class(TCustomScrollControl,TCustomMemoCmd) // begin if bytetype(dtx,i)<> 0 then begin - bn := ft.charset; - ft.charset := 134; + //bn := ft.charset; + //ft.charset := 134; break; end end @@ -757,10 +757,10 @@ type TCustomMemo = class(TCustomScrollControl,TCustomMemoCmd) // r[2]:= r[0]+ct * FCharWidth; cvs.DrawText(dtx2,r,DT_NOPREFIX); end - if bn <> 100000 then + {if bn <> 100000 then begin ft.charset := bn; - end + end} end function paintlinestext(RC,FirstLine,LastLine,FirstCol,LastCol);virtual; @@ -4216,23 +4216,23 @@ type TSynMemoNorm = class(TsynCustomMemo) // begin if fw>7 then begin - if fw=18 then + {if fw=18 then begin fw := 17; hw := 34; - end + end } flg := true; font := array("width":fw-1,"height":hw-2); end end else begin - if fw<18 then + if fw<44 then begin - if fw=16 then + {if fw=16 then begin fw := 17; hw := 34; - end + end } flg := true; font := array("width":fw+1,"height":hw+2); end diff --git a/funcext/tvclib/utslvclgdi.tsf b/funcext/tvclib/utslvclgdi.tsf index 2a6f27d..b2b7304 100644 --- a/funcext/tvclib/utslvclgdi.tsf +++ b/funcext/tvclib/utslvclgdi.tsf @@ -256,11 +256,11 @@ type Tcustomfont = class(tgdi) end function Setcharset(v) begin - if ifnumber(v)and v <> Fcharset then + {if ifnumber(v) and v <> Fcharset then begin Fcharset := v; onchange(); - end + end} end function Setoutprecision(v) begin @@ -329,7 +329,7 @@ type Tcustomfont = class(tgdi) begin s += invoke(self,"f"+v0); end else - vvi := invoke(self,"f"+v0); + vvi := invoke(self,"f"+v0); if ifnumber(vvi)then s += inttostr(vvi); else s += "0"; s += ";"; @@ -427,12 +427,10 @@ type Tcustomfont = class(tgdi) continue; end {$endif} + if v0="charset" then continue; if not ifnil(vsv)then begin ovi := invoke(self,"f"+v0); - {$ifdef linux}{$else} - if (vsv=17 and v0="width") or (vsv=34 and v0="height") then continue; - {$endif} if (ovi <> vsv) then begin invoke(self,"f"+v0,1,vsv); @@ -456,6 +454,7 @@ type Tcustomfont = class(tgdi) if FWidth>0 then return FWidth; return abs(FHeight)/2; end + //property constmembers read fconstmembers write setconstmembers property height read Fheight write Setheight; property width read Fwidth write Setwidth; property escapement read Fescapement write Setescapement; diff --git a/funcext/tvclib/utslvclgrid.tsf b/funcext/tvclib/utslvclgrid.tsf index 000aeb3..74a65d5 100644 --- a/funcext/tvclib/utslvclgrid.tsf +++ b/funcext/tvclib/utslvclgrid.tsf @@ -67,6 +67,12 @@ type TcustomGridCtl = class(tcustomscrollcontrol) // // begin // DoControlAlign(); // end + function GetPreferredSize(w,h);override; + begin + if ongetpreferredsize then return inherited; + w := Width; + h := Height; + end function DoControlAlign();override; begin if(IsUpDating())then diff --git a/funcext/tvclib/utslvclstdctl.tsf b/funcext/tvclib/utslvclstdctl.tsf index 32a3bf6..15a9875 100644 --- a/funcext/tvclib/utslvclstdctl.tsf +++ b/funcext/tvclib/utslvclstdctl.tsf @@ -3590,7 +3590,11 @@ type TcustomListBox=class(TCustomListBoxbase) end 2: begin - selchange := 1; + if FMultisel3Data[-1] then //修正选中改变的问题20250430 + begin + Reindex(FMultisel3Data,array(-1:nil)); + end else + selchange := 1; end end; if selchange then calllistselchengd(); @@ -3768,7 +3772,12 @@ type TcustomListBox=class(TCustomListBoxbase) FSelEnd := n2; flg := true; end - end + end else + if (FSelBegin>=0) and (n=-1) then + begin + FSelBegin := FSelEnd := -1; + flg := true; + end if flg then begin InvalidateRect(nil,false); @@ -3801,7 +3810,7 @@ type TcustomListBox=class(TCustomListBoxbase) end return; end - if not(isValidIndex2(n)) or n=FSelBegin then return; + if not(isValidIndex2(n) or n=-1) or n=FSelBegin then return; SelRange(false); FSelBegin := FSelEnd := n; SelRange(true); diff --git a/funcext/tvclib/utvclgraphics.tsf b/funcext/tvclib/utvclgraphics.tsf index 7f16d2d..d7cecd9 100644 --- a/funcext/tvclib/utvclgraphics.tsf +++ b/funcext/tvclib/utvclgraphics.tsf @@ -1066,7 +1066,7 @@ type tg_axes = class(tg_base) // f_changed .|= c_g_data_zoombox; end end - cmd_node_add_in: + cmd_node_add_in,cmd_node_del_from: begin if pm is class(tg_graph_base) then begin @@ -1217,7 +1217,7 @@ type tg_axes = class(tg_base) // if (f_changed .& c_g_data_changed)=c_g_data_changed then begin tbds := fdata_bounds; - for i,v in get_node_data_bounds(self(true)) do + for i,v in get_node_data_bounds_format(self(true)) do begin if not fdata_bounds_locked[i] then begin @@ -4395,11 +4395,17 @@ type tg_base = class(TNode,tg_evet_conainter) // function paint_pre(cvs);virtual; begin paint(cvs); + lgns := array(); for i := 0 to NodeCount-1 do begin vi := GetNodeByIndex(i); - vi.paint_pre(cvs); - end + if vi is class(tg_legend) then //处理次序问题 + begin + lgns[length(lgns)] := vi; + end else + vi.paint_pre(cvs); + end + for i,vi in lgns do vi.paint_pre(cvs); end function hit_at(info):bool; //命中处理,鼠标信息 begin @@ -4522,14 +4528,20 @@ type tg_base = class(TNode,tg_evet_conainter) // function SetParent(V);virtual; begin if not check_parent(v) then return ; - if v then ct := v.NodeCount; - r := inherited; - if v then ct2 := v.NodeCount; - if ct2>ct then + p := parent; + r := inherited; + p2 := parent; + if p=p2 then return ; + if p2 then //添加 + begin + ax := p2.axes; + if ax then ax.executecommand(cmd_node_add_in,self(true)); + end + if p then //移除 begin - ax := axes; - if ax then ax.executecommand(cmd_node_add_in,self(true)); - end + ax := p.axes; + if ax then ax.executecommand(cmd_node_del_from,self(true)); + end return r; end protected @@ -4699,6 +4711,7 @@ type tg_const = class() static const cmd_figure_changed = "figure_changed"; static const cmd_data_changed = "data_changed"; static const cmd_node_add_in = "node_add_in"; + static const cmd_node_del_from = "node_del_from"; ///////////////////////////////////////////////////////// static const tgc_complementary_color = "complementary_color"; //采用补色 //////////////////////////////// @@ -5239,7 +5252,7 @@ begin n++; return new_bound_factor(a/10,n); end else - if a<=1 then + if a<1 then begin n--; return new_bound_factor(a*10,n); @@ -5250,6 +5263,7 @@ begin a_ := a; b_ := b; if not(par>=1) then par:=20;//20; + if a=b then return ; r := new_bound_factor((b-a)/par,n); if r<>0 then begin @@ -5272,10 +5286,23 @@ begin d := bds; end else mg_bds(bds,d); + end else + if v is class(tg_axis) then + begin + echo "\r\n axis"; end end return d; end +function get_node_data_bounds_format(nd); +begin + d := get_node_data_bounds(nd); + for i:= 0 to 2 do + begin + if d[i,0]>=d[i,1] then d[i,1] := d[i,0]+1; + end + return d; +end function modify_text_pos(x_,y_,txtw,txth,al);//修正对齐位置 begin case al of diff --git a/funcext/tvclib/uvcpropertytypespersistence.tsf b/funcext/tvclib/uvcpropertytypespersistence.tsf index db9946b..ff4b17a 100644 --- a/funcext/tvclib/uvcpropertytypespersistence.tsf +++ b/funcext/tvclib/uvcpropertytypespersistence.tsf @@ -2299,12 +2299,19 @@ type ttfmnode = class() s := finheritedname; if s and ifstring(s) then begin - data := get_resource_by_name( s+".tfm"); + //////////根据新特性添加////////////////////////////////////// + o :=findclass(s); + if o then + begin + ci := o.classinfo(); + data := ci["tfm"]; + end + ////////////////////////////////////////////// + if not data then data := get_resource_by_name( s+".tfm"); if data then begin return get_inherited(data); - end - + end for i,v in finheritedpaths do begin fv := v+s+".tfm"; diff --git a/plugin/TSJSONParser.dll b/plugin/TSJSONParser.dll index 5e9b23c..1f37127 100644 Binary files a/plugin/TSJSONParser.dll and b/plugin/TSJSONParser.dll differ diff --git a/plugin/TSLCPLUGIN.DLL b/plugin/TSLCPLUGIN.DLL index 611d00f..a625ed5 100644 Binary files a/plugin/TSLCPLUGIN.DLL and b/plugin/TSLCPLUGIN.DLL differ diff --git a/tsleditor.exe b/tsleditor.exe index bbc09d4..32acc4e 100644 Binary files a/tsleditor.exe and b/tsleditor.exe differ diff --git a/tslkrnl.dll b/tslkrnl.dll index 6bca9e1..34e40b1 100644 Binary files a/tslkrnl.dll and b/tslkrnl.dll differ diff --git a/tslvcltool.exe b/tslvcltool.exe index 7639cae..6d88a78 100644 Binary files a/tslvcltool.exe and b/tslvcltool.exe differ diff --git a/whatsnew.txt b/whatsnew.txt index e6d10db..6e947f2 100644 --- a/whatsnew.txt +++ b/whatsnew.txt @@ -1,3 +1,14 @@ +更新日志--------2025-5-7 + 升级:新增ExportJSONStringMBCS函数提供对中文原码保留。 + +更新日志--------2025-5-6 + 修正:profiler等窗口被打开时直接退出关闭会导致报告异常。 + 升级:支持编译错误行号跳转以及包含文件编译错误的跳转。 + 修正:板块管理中新建板块导致生成多个用户板块节点的问题。 + +更新日志--------2025-4-29 + 升级:为namespace下的调试提供支持。 + 更新日志--------2025-4-28 修正:客户机检查语法生成代码跳转依赖时,某些错误发生会导致异常的问题。 修正:某些情况下函数编辑器内无法点击断点的问题。