From 6550cecc2e56bd45422a67ef66ff61d7551fb013 Mon Sep 17 00:00:00 2001 From: Mikhalkovich Stanislav Date: Sun, 17 Mar 2019 21:58:24 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=BE=D0=B2=D0=B0=D1=8F=20=D0=B8=D0=BA?= =?UTF-8?q?=D0=BE=D0=BD=D0=BA=D0=B0=20=D0=BF=D1=80=D0=B8=D0=BB=D0=BE=D0=B6?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Configuration/GlobalAssemblyInfo.cs | 2 +- Configuration/Version.defs | 4 +- ReleaseGenerators/PascalABCNET_version.nsh | 2 +- VisualPascalABCNET/_ABC13.ico | Bin 0 -> 42599 bytes _NewAppIcons/_ABC13.ico | Bin 41322 -> 41199 bytes bin/Lib/Controls.pas | 46 ++++++++++++++------- bin/Lib/GraphWPF.pas | 23 ++++++++++- 7 files changed, 57 insertions(+), 20 deletions(-) create mode 100644 VisualPascalABCNET/_ABC13.ico diff --git a/Configuration/GlobalAssemblyInfo.cs b/Configuration/GlobalAssemblyInfo.cs index f7309eed0..178a97939 100644 --- a/Configuration/GlobalAssemblyInfo.cs +++ b/Configuration/GlobalAssemblyInfo.cs @@ -15,7 +15,7 @@ internal static class RevisionClass public const string Major = "3"; public const string Minor = "4"; public const string Build = "2"; - public const string Revision = "2000"; + public const string Revision = "2001"; public const string MainVersion = Major + "." + Minor; public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision; diff --git a/Configuration/Version.defs b/Configuration/Version.defs index 55cb206c7..833a5fc8a 100644 --- a/Configuration/Version.defs +++ b/Configuration/Version.defs @@ -1,4 +1,4 @@ -%MINOR%=4 -%REVISION%=2000 %COREVERSION%=2 +%REVISION%=2001 +%MINOR%=4 %MAJOR%=3 diff --git a/ReleaseGenerators/PascalABCNET_version.nsh b/ReleaseGenerators/PascalABCNET_version.nsh index 68ba7c89f..1685ea509 100644 --- a/ReleaseGenerators/PascalABCNET_version.nsh +++ b/ReleaseGenerators/PascalABCNET_version.nsh @@ -1 +1 @@ -!define VERSION '3.4.2.2000' +!define VERSION '3.4.2.2001' diff --git a/VisualPascalABCNET/_ABC13.ico b/VisualPascalABCNET/_ABC13.ico new file mode 100644 index 0000000000000000000000000000000000000000..d78e429624419cc5d549a039b5b74b104f4e0b74 GIT binary patch literal 42599 zcmeG_2|$fa*K=>(c3PxG(jsK7>|1rSRQBxq@>;Sh`x12{giu*3TP0DJ6w2Cykk^u> zlu#k0qSC76&VSC6C$}q<*ZaNS_kZ6o_j#U~IcLt9^~}sU6CoTTMRauuJY`6b3?a6J z5GAFm?>Rg|8p=WdI1bSzt91xj(U1^6zv|nt4@v5RjOd7(yu}%BGZ9;Q$x9zjVHBSPBS5MmC540k7FMko*+Pl#(CQT7J-qX2&v;I9IFJixyI_-qmQ zb^t#J;O7ARCV&qF`0D`w65w+IJ|Ex<0KN#|O91{ez?X}_8|e{Z(~S`O!GyTaAS84( zA@Ms2$vaAv={aITqsVX?M;6n^#DhL3Ve}1oNb|nZZv+KwqXF>x0N)Pay8=8P;0FTy zM1Wrm@S6etAi$pi_}c)VRt?Vu@+E& z0QQ4{{p*C#N6LgIn-Kb9IH4Jf3C;2#G%t+M;)m7r8>s?36rH^>z?%X55P%07n;2}?s=K%i(;J>z?cEpGb z0t|Bj!)Cw`2pD1k!%M)Br%cHw6G{q)Q&PN`k`fO}K8I0K{_t!2)dKkT0B;WPBLIE| zz^?#!SAh3XrsSvzCFh1ya&0js@g9^s52Gae;a7MWfX5PO4Deb2uLtlg0lpo;n<-N= z&IJ0-a7x@311=9rqQfXjc~}K6`7;lAA%6fm$Ym16p_Lx zh-cC=@tB&8$7hxM@&@qezQiL^bYDW?Q6pXo+7aNdH6DqSkf_R9LL44Y0%{2f35IM2 z#g}Zp;0FL{X#i)Q%uh}FFi5Ii@n0~B;I9e)Z9L?UgoFF?z*iCYY693~;_+V+RHOMO z9uoi)Qs2Rk>BSx9&*5;Gf`KQ81LeT2a!eRQUsbfUG_NWlB&bRS$e4I3fC4AQ;qaIz z#v>ZQP{kjE8Gjg@41A4v1_29>F=Fsi2>2y;1~ZGEEk7QoI(H@tIrvIH1aYLQ!K?6B zk;lR#@+#u1a)w_n7n!M|9}#>Z{yXs^;I-mM3IG%xVa*CpI4X3CK@}4?Jr4g5_uFc`9D=TYj6K&FzsHmvJi#GGEP82vz zRT_NxR##D#S7@rDs;xp)n0RgN1`V{)sZ^!c)^4Z(Us@Q1@Y>o<71Xp9l)ipzH&s$< z@+DqFvZ=O)q@;FZX*n5LOwW^&;z?*~H<5<_P2jr;Pn*Zn#_z^5O%WeY9irh|PNp$~ zUsD32FI94X;!CrIS;Va*t zysRg;=vkMWuI4=hN^jkq`D}QFgjdes)*kH)J2kTDY_iO9ar-UvXRC(JG&wkM#-%R) zBPHi@eAY$JemgX6b$L{-X-R6q0f+mhX~UL0*6Ea6p6ZZRzBYd8p?5vvgNsfG$M=`n z;@N~Ja9`z5lvGSqNgw@9T)uUz4UyTRAxHF-9}g!h?tg4oULm8$(+p~Gu2K^cZ|%#` zHJENlT>2@%m+N;x`*I9pGBQlUXWjAM=hGuRldk-bHG1OtsLMHzn;SHi;}2DN?R&`a zrJHa2sg65(I#v{)8TPR4Jc;l#!}J>6@oG2rgxBdQ-N&?_7QH+nF=RD$&K6>(0@rh>0;u{P=?ID!W|BRU6rulPM|5>GR<1 zajS(tnJ%PPi&7KEih_Z$bFmqY3js;(!vY- zdh{4s9K2gja#~WC%gdg}NFP=s7Ya3AHhLZ3>CaE9J@9wxP(C7(qaQkZ-p(e6 znsz83HE>q>rVkTj{%kpqGcMZk^w4($I(0lVU}0*-`B_s##tv?Fa8!2g6r(cDQq?EJ-2&s~>53b1_nP;#w2@LJ(p;iTl(=U!Vx=q2P8ZDmGriG<3A#r# zQ#v1sSYg+g9GS+u+OPTu-V3tZStM`; z*5>>?JKMKM_IYhb;eb<9B2VVrDVB3P*H*Z2W1Pb?6@kl(@|E-T+_@&s z66c#e;Pnr2oj@iyFCe`owzv_lvy6=A4L&hgzc_+NtZ%hX=fpI!=kfe_y;its?J0lj zJSE1*#end8Zg|$Xf$-bcvoWZqG-IYL{dSBa$| zX&;lRXvCLW!`UV~oCs!0T_4SN=RV-h<@l+GdfV{$9R*u<>yFs)$c9XKkW@0`;R52P zZokilM+&zWZQ0$Wd2{;;`CB*QeYp?TZ`aZpXRSQY!YIA7p1fdYI|6I{-MTzK*(3DQ zC1GEK2FWseiG!wRR#<1M<9W#q&ncxv zRh~Ix6gjGoItlJB*mj&R$A5iKqjc7b_SEi}?*JnK_d!EBLElL{IzidtS?B{Ef8IL6 zi_x1KVE$;u9WNv0@y(Skt1De1)~6cyk?z-K77iP+qV1UHEtWJiap3sN3wBGVA8z8# z^?PJRZ_c_hqAhPmF&8o$#XYS5plgRFn=OrqMp4q~=<_q=?U#MBu=33)dCyC3v5ezB zPxaOG@%DvW_lUytqZ=s(hjYUsloThEBV%}HRFgS#*KxG0sN?`6-J5E!{N?#c)4Ylt zojYt5@DsT1V~U>zA3VQXU1^4VzB`ZKMk4)qTN?4YHRvDESa9y4PC>qew9vxp-7~%LMY<7?g&euB`7!##(v=sj z_~*FpUCZ{LOz4|KOeAHe&(lyjPORH;mvku^<~o8rvUGAQbG^B;No6A&{>&NbFKwsK z(`$B^_?1dOblU&!!=oZ5)ufVk*@Z27$=rIyb7@IjO9MW|+h*uk?)32OB_X@(ZNzNN z%0@@72*#ys+Gs$!57UUgcdzds72YLYVHR_iaozVu-FY0ic?#d8k229PeeSrwx%qQP zjp%F-bG-nX_j||g^6jZpt_F{?EgZQ_ruVwyG(V>L9pe004j2mf?XKAEsZYEFG zuQOiztb_TQO1;E)9n+Jx&XJ5c@?z|XGgC(nR%`qwFl&myj!S0fIM@zODtXp*ty|f+ zmt)@srCE38y3e|OI$?H3U{?FsKuI!rdD6k?kk`5COBXjaTRcvySHoxTJT=TLD?hGW zHZl6Xem_0ZvVr+lH{o{Q=Hb>sekauaMT9IkW9=&%UU3(4c$fyi?J#dm5Ad zgB%MyTk=;2?^Cz2)l?Z$tFXs*o#uRwgef4h-fNA}UiL3TpA!%(m zoa3Zb!(o|Si07g8+fwPlpd-ZFO&HQ9`-qzC=-`bPc5)xc#7@iGVqp?5xZ~V@SJ$%3 zCr^1zG8nZ-?NyXKpX);8H!L_$h8bSh3OYby^7P0-`xnc{{wW_cP(I&AQrBW$D_uc? zURTNG;R8dLKr?Y{8<2G9h`P;2Xv4CEpRRP!+2Fnwjts-CY+7@S2Sh#{SGcS3?Z9iJ z=QL|_n2;^00@;v$ej}h8t)F-_%({JJDgSN?vZD!c)9EEKAkoBnrEG{B@$Ot<*lAA7 zi`IsPoAmVL34aASB#_K(PKNQf{wc$saM?(QYdiPdI2ZRw0TjLU0u@ieUD8ofWmF%m zNgcV_nY?pH<+y@^Tch}G`WuFiUe!WUccEkZi6BgtRWgeb%nwL?k)N3cIh__B6J}PN_U1K%uK*AenjNt(oLi zS$;}pZr^)OV~#wLae2kFA!nR#Sd256xgi}2qEK;G!u)hyz8Y1?CSc%uf8Bl6Dt-4-$Drj2)PY=18{ z3&RZdZ?K*;)|l&V+f?sKOt*sb+W5PwAtnJtE~que|sb8 zlHjJXXY#p zJMSjC>6=}nM?E`jX`D5q&?`mfK`#zpvgu8`l=n%;JnpKEmkc$WE1r6u*%(c6@8IoOC@m#{|!~H*#J5HW@B5%cn{yg$-^FzlRACnJR zmo@SmP0}#Wvn0l8x2~Am?R4rLv&y}%)e?z^LocXt)R)e=dl1If`zGE4MAmbAAtVdmjb4mL>iQuZP)>Hjuo&K08-mpr&HHO0xXO z3htu*bGZU($7O|1iRtMa<(2A>*B?5xXU(XBXI zIrHRYtG22FPd^eXKWSaN>_`wL0yQ1EJU;_NvX~QK)x&OjVF&KomNsPIdaljnY0tgy zT#uX@zF?2=Y>r2icAzXdEOcFSnVh<|7CH~@xx9OaT^IR&FD`9uBS$QkY4lWZeA?rV znq_eY?c-P2Sy%5!@1HLmbhr8VSnToKcS@%$wGSBZr=QS} zqT;>liVd2p3cQ203Ue}!93L_`=xKg_4+-CPsgeN^tIw)!db&LOZ9o5K@g2wY;kY)` zxYV`u;c(MO^8;3ret$$9n?1DYTT`ikf)|lm3q9|zjUHd3vqc$i0J&8d?~V6@J8JYeJCXjI?tD z5+fFUSdb?*t<4!FmvagXZYAfdNmlDlEM2D|j99pI^%~AHGbj58`;PVDgi7#qJ7+B_ z&e_|(c#@;rr(P>3Xyy+IZ6V2I-iLcLdU1fMSM=qHiJLYJY@N7p?91753`(2O1r^~R zo)yLAPEW{PHAH6G+n}+2B-xp(#8tT&J%8-evCH>eYUO9TzFiWZ6UybqtUSJ`LN;zr zVafif(!3ZsRpNVf$%~@w5B=}2>mpozCYHx=QM&cRC>^e2dGVfJ@4Cf|lB^0GxMTI= zi8hJSuN4DLq+N^xSGi&d3N~kM)_J&iP=fLKRLv(Pfyd0W&qy$IuazhehIDYa=y>w1 zxqXa75>*I|ASM0{sv@t)RNjky@LvOujahXofQN^>~9P6v* z!en8T{)bgm+H`earFX)6p{;}3slsGELCZ z4l%!H!w|4T`4lH;WG~0wS0)Rr=h~2_ut#8K!Li>ys*(F@Lt-GWN|J1dtCbCz1ToDZ zrU6f|3Oa^~0{7;PyLa989Xd3ndqlw04UnX1^C{Ah+0e5dI%aFfRc4Ki9^q8>*f+tW zxmCg-qsVi4m(L#hFmEu&-Ysq@zkv;TZfxWGXJz3r^T{(a?AAQqUl>0v<8)NnygNz5 ziN4hpRc~&(OTqnK!zw?=JKeA7DaX(8(@Edjc)DHuh-uwy;2i&=&#A=N)ctpyU+_78 zBx6$pi))*?d`{fX2Zu-#IYA>sqAIAcR+IRU(&cNLZsXmqEv;twWG+$7swlmcb*-|z@xT@Kg(+nZ${ez% z>&DNCQoo%x>_B&ar>J>}ZNk??IdYsrim&WNY~3Y#KiIHgLzb{S*E~R~BIj)UlUq}1 z+1R3+-J*s^7H6HvI$4%Bb?&OlURk%oi(Y4yg@wngF12ak>R@7K7Se2Oo<&jejGe&& zRy#XfQV*Xnam|_pySE=YlaPMBXun#zeQ!Vz+4j%se?2?Zc->LN+CNt+%kHT-_m;rKgvC ze38|5>gTO%KELrQid(e*Y}T#pc|&D{rg!AEk8$z=;#EX#N8SRgft$8B_7r%97X zmWtg{Tj*3~S|v_i`C`@(8AGzopWJ=C>g>ypX=@Aat?=<6hqDHGY?onRXCJSwdT3?QLtBX%pWtzOY z`X*QM?VNW9mhNzj8+Nc~cphE#AV22a!DtJ~`=@n=9lv`%5L3>W~YoUW$IV9(x-8*x}7{{4tQWK5xvcU=WNX55j! zV72{OD=VwSTjs+2h?{Ap?oL@FeIF^VT)FbRW6a{gLx&y@4sN}WuV`B6UUpqa=$<`E zNu9qpJ?vb$zKyc${0kp1WhaEqxaDS9*)96>y`I;0lJ`f4>@Tb|=1fsrzs0rn%$JV_ z8I3kCe;WVx(a9cuq+LrHPF$bVgnLoz$_v+?O>~v?D$cmQtL)v%)YZqDJssSPzp9Z& z*e5v-Y!5v)8h1#FPt5bT44bp_ra`)_V&GsoR6+t`1;`~pQ7xf6UThl42<;D^OiA6 zpWdZg<4o7UJC#6*&Rx?ct@x`VW=`tnypQ7=VW28- zl_Z?wZzn~Z+T64twZm@SyY!@@fL%Gss7Fahw|j!1{|L52o7IWXQQEp#{!QM&eZYdkMw0$N0I}NTbX|z zP?Q<4({^A%QAx@C({Wwbty`Cs>X6&TOnv6`)X(=oROHQc0OXPnyWBeHW4Sc7K`|S4pG4 zq^|6uO6cV3J-WHs=dR0j=ybZZ^$_WnGso%V-7s<-zOG<@+TFDsq_gyQb<>*89V30X zqG$Fiec6XcNxznaKd(?)WBJQIvnN{@*i;%fT&j75=dp+1!E{jLX8hxY!N(4%Tjrn7T;qYwn>%0H)GomMF!lX>clOCy z{Zl-SwbXt2z`yU9v5F&zz6wzK}Cm9kKDHpv+ zDO@VxM$_{7Q_ClWEU%21oHIssfY7l6+Q1*h>4rXoX|Q|oFb)uc(ejk$N+hU|4k&4wN z8kM=H5)-lynfgWWTc)3wT6sKtR7h^TXKNV$rYi}uvu`Obz0$D7qwaQT7MD*euFLHE zWQ22+`JkgVL?Lf7vCS?>dFobKu4lFRdRbeupQn4iAh z!SdjRP{*dXSEs6yrG})%t8%X~{fJu7wwMJwKK98C(HZux`|QD-MbVWjTJ7;Pds&4+ z;3r824{g(>yZ77)f-$dmLYjmDev`{=uBLAAXVbvaSZ{-pF3<83Ihko#azqXvGYVq ztjj)a?SlnMZ#BKm&#c#okv7ZYq>D*aygDiQ$mt1WlFnS z&bX!9uKY&Wq8B|QN!*II-PpR(C&}B@wd^x2*0k-==)r>wt+Z0hJ5REdIQxSKeofQ= zD93D+#PmVMD=xQxW@e5N2js}4bMHTQR-M#w;yum5`IUp(P9!l7sRhl7GIkBKT{BE) zg!9}=g@w7})1jQVULey(X*O+|F!jOAzA3FaA)32=oVCm){jA@;==hrGRHREM3MQk6gJ8tw)61?)3b^!gZ;wcX*TZnI@it&j2ulPdKUi zIV5yr@2-pHO5Gb8a{1$>NxjBwgZ1L=>zYYH%{vG#?%S<3fMYD3mX;dn5cy0eR8u2% zWmLhzy&g_(?o)-Iy!x--<-KH@@3oVv7tNIpZje@txboyms+TKK^|4ABn$#KUOS*Y> zpx2b+JDQs0s-&mL&*`S$a+(pzku?lEsAX0%F|BOOTT|6fLzh2Ze_-`%BYm!W@r`BN zsZa7>-&z{kwSgSJ>!-my!M5GHSMEGpba{w_;jy6yd%k`*?&#WE+ACcTS{<6aTi4yU zGG}(DlA!{P>lecQm|u{&v*b!~%KW7lDZd}_w4OCZm#7>c!il?IT6!UMZ?CqV(3*{9 za>6?~-raKgQdXOyyz7eF7QNkf%$6IUo{%u==))$(g#kL1K_AWzpBXJ-1pD0w`*Gr| zQcWcm&gL11#~z3pxrtjKgkkekwIP^5?lA)wNKVn;keey^Y8OUEi07P z=L(c1np;gdBSS7lmi6h?x3j6$g;T2~{W3rMxUZbB`Q-hGh0o;P9M5mJef#!chmRMn zX!#BGsS7?kSbu)m?3(T*Ri8ISJK)?U&vT!|dgC=sSJ}C?a;y0K&e!g9vpF}p@iCWs zlHP`wmlg&}jGsZaEPlDIo8AfMs|OdTXAUsyv^st$S74-Kb*y0C-E3RE4=IoD$E&)< zSa;JlU6WASMI+yM<&6yuO)}rVAFys(BMHHYiVZpy{A17ZLZd4_-B~zwmj+!|^5Wf0 zom-L#gL{`{2Ka1nwsUy)OijT7W~?O2$(2el))pJ+gix?&-6`zbP|1ID@{9?aB<^g)x1F+myjQ#Nhogi=r@f*SG!3TMEjb++vika_24l`@9iGoQ zGnn^DBid|$qNMKCu^j7O=2{n&xEksoXH73v*>1K~&|2Z6#S^*Y&i0WPihJc=d0f_I z+i58m2bV;_hedMh`?{*UyQf(`eUh#%$D04A{q*U5)|FgNOS~FAVaL$x+taV!>MRkE zHp^@BQL~bZ@$Xw79=0hhtC{Zn;r(Phvp3}jq`!YM(XO%2tM1v-WO?j%ivsHk?R#2z z{a+nkE9^MHF`YA=2uylc7Cz2O4x7>5NwJ{xtz0)rS)=HRB?r62I6LddzLPwpd`460 z#+Vk5?j`M5a4RKzeo=V96#j&q!&x%@DoDPb0(bkpKRnH~cD7kRe`tugfBu@uimuNI)qB95-hC@nm9t`4ht!u*zU+>?XnmX*s}!;v}}(0^#ZkUrDa8^SvuyZ}6h z=)y0!K2;CVUjY$Z2cPy|>KWd*sBEGB7XI{bzr+6(9(hHc**eGXqU<7CR#f(H;XfCC zrlkd?6raCB)8~R8!y~WAGs{2LJLXeSQ9&O(ct8UJ0_g4Aw`qBKIoKjlDijLo^XJcL zY;5dzJ;IfhmC^L{^zWuYcs3n_SmdXusEFRXcaM5|ds7Do2fAd*61sNnT85USq$CEn zNb+x9D=RA*8V?;hL}3w37cX8+U0q%2)vH%2;udwtEAlMPKPVznLqkK#w1@eLJd;CX5MKN`Nd|{oPIB|l_qWX#LTVG$l zn*Y_SS6Ab$P6RKvZrx()4sl_7I(+!BXf*R4A0JO!wQ9xSl9H059v&XmeNHs-n>TN$ zjg1Y%$I+ulzsV2V54ICFFMogkYVd~-A2RJ{z<>et)2B~N`1kn#{P{Bt3kzfVPf$=0 zEiNvu#>2k+F8*<>m^W`8#kPucV;jIR=6mk?_3Kn!U7d~?G2)y43=0sZts@>##%9_S ziwE<;dc^*L{Gt0E|11o)%kR0r%0HsU?jITX5_oQ1-HvcvC@d`eUbYO+2M->k=gyt0 z=7UXq@#00Mzt_e;n@05cGyX->iogFV|9*alp?)ddx|P!2y@fC?-GaKWYO_f9gb5RV zI>w9B!hZjg{I6KC;+y`6bcyzVNl6|ZIr1=!&q5eqg;3|{W5748u77K5YZ?&|L6Mgq zc^sqi^72^Lndd*r|LobbYaO#h`6q-2b$$2?-$EGcvHs(suc}w`kK-Sx8rSM^PQ>{P zJK@r8yT6S zDhqrvCV_U(lr*NIX>X+lB*QwGRC&hP8juV-X-FbtxIt8?ehjBMDXNfSoSWY;7p zo9x-MhoNco=+V`3E6SR~hYx4MkzVwB_wJ=7B_-7v*Oz~k(Q!?JZB*Rj8Y40?l94k} zE^g4E0o0`o@GA`-$G1t~pMn?CY15$W%c{w!etG-$EzFBsDHvKY>jcDu{9-w4YHBhv z53WT}mSG*v0V79_WaznS05SLr@0CfgZ5vB49xdyyLjHWlJ>)-@IU-!M=`i-tptdnY9A8V_Ywa(#`_1 z>5(2>ugb_^nG>cT?ccw@2A!Finao;)g{^P>vv75NLf5Af66`!*_2lt{KxbVs)Gyt? za{T`pWjMC2S_L;4K%I+vX=x#>Eq(_5YwA2M4@rH{}$~3()?E+%0V0enXTsdhw}l5EB_Ym@2-CkYpJnuP5yBV z08tF);eWme{%-zp4p_5>GBS_o95`r@5cYWL$3NowvJGE9z#pXkyZOhgA3dV9MT?qk zplMSfg)PrII}~?4Jt-9kgdo4y8SJMC{}udWy}@=a?B{7}BMlk| zsh*w?_Ctis8Vbv#M-L$#H%!q|37}Du&$@DPNUS4E~hWnJF10djhn)8%yy|I;UzP`E6e%p<0bl<&w^z75KG~s;$ z{Z#si!fx$%Df}7#AEBcjhCTP~urKQd`)TO6!@i;q?7!XvfduzMf8;*FCg&+QZ}oul zcNSj!xdZlwqZTcqm14r()%2^h&7L+?a=j$wICE-vt~2ZtZ;-0?Y#I#5ciD}yRBO8y zwF@WVP&P32Nuf;HN1(})E z;2p~W$AwbZGyj>ZFaOwYW}lt?4gc6LTw_7N5^?q6zXBF3mq2%CC!8zY20`s(N=ltP z*1bENNr~6}(^_IDlLvZ8-?Mbqmwy}wr-x1drv0n9s?eykC>AaAtS|ovlny#ZyFtgw zA9U<;K}f}Uur~h*_TG>7?D-Ad8raC)yYVePBKP6-eE%^NP><{z* z75+bi?pP?CtGdHE8#5Pvryi4ogQ*ATYlzlAjvbFs$o~#ZZDmqd{&C#9`}Qui@UviK zC3e0;SBT?=o^aij_(0*u3M0i@eLh6 z3aE{LbvJcpE_<2xl0M0PLN7kQNLO55LG?ZKt9j?G2i;Y7T_*fhe(mQ#zsi3J%v&cx z4#fI>3TL$9E*12b#K*lIaITMQ31K}qerw|&>lE8K%6lm1Dr{1y=39G*Hk}qajl$)k z^hwqe`njS?*H4^A{Qgz`vHd2&AqMh)ddLv^SyZPMHg?aB8B--ML!Gm2z#rBT`7dAA zM#c}rYU3Yee-j@QMmFxczbjJ~7=~>g+s62lf+ z%gCa2k88XeptJrfb&o|+SN<_A_VqdE=G0g(U>OWPI+*5{!serx`>Xup`t}}d(&D^! z0rb%>&zbYhI(I+l3gv)q)33Vv@Q-=mdLPF}whiDD`^$q&*k}`Tf0chkm!FnK{o1#u zxSsO_U!(3}-vrl-;(HrnWc={6zWn2!0B-~6+X3IKSKO>fuf4qXO+LSae{9z=aG1mF z>%dqi%D+#uW;6>oIRApH5C6Dd;Bw978`)oNn;MOO_w9k(@8BOcf9Veg^G%5Oirp>K@;FAL`A_6XG=dRsK=#e-6q_p~HsJ?YKWEQvcqd zw}*RYf5qYWvg*pJ8si!ABRc+LotKuEGJ9pX$Afa8DF4{@{T}$iboK3CArhEo0WRYa-Xsu_wk- zJrBJa?H>0`Q5M{BYX>bZ`__I1>H4euqbyqphZ65V-x1{-+#AAnkMa-7L4UzCz{};zP^wJxo897+fO_QQbxb)&uifh5L%CEYj;`IDg{zdU&S!97e z{)IpOpf?;H>$E>C3NQYSYnvmFj?lvo!4~x=9@CwAa*C1laQ`p6D4SMP)-Lmj=JPxG zXYt}*>0g=eSUmrVr#S!rZuYN8-{0xQ?O*@P?Vtav?cYIX{D1DhxCHQ?2>APHWEyz( zo(Mq;_z-hoD}LQs!Z~fdkB>e6kMc+}Tkc3Z+Tx(ybaZrdwOt6> zHKW}*+V6{cOoz53X|Prm4QJm|Q&Vfm$7o-ZoSe+q3!`lj{J|o6`SNAZLCLC-j-8`X zw$6ZkU9@>YyLDe*U(kDeRKp$;X=d9DzN3yl+Vi7rkGs1&gBQclj;eL*){G4U-WAZI zMGI;U`)p|c;s|n;v9U2@3xsiaKY)pe33ERJmIpetB|}?O#ErHPX!njb-w22H@K|2r zcFkyKk9PBDJA*jU1`%lpggs6+tvLN?pNO{jXlG<^Z_lJdTP*kkPK?bC;zD~ixS^6_ z`J&y`dpP&NGROM~pj$C{J_aK|497CWdkw~p9n08o^@H;xqziGP$NHEChEvEdhO-Xg z@Qwk@3vCdQF0^~VGU(W`BYpX0&sCg$v{%AA8s>viUSeX+vvk&u263YOo~T3nr!HN( zF!aN{i`6#hNC&1xyF29ldv^w)9UI!kVS03E$2I}>53xM3u34K6wBy(UN@8dehEAM* z48yu%>m9#YS0DNd3W_MG`Oxt2BHFdO{-GXHP4*hoXql4^>dehPG(J(1CY$U|&Kzvf4b}&%w59 zEdTG(FPiVK(2sosZCgd1DE-pXR-o@!2s8^pFEkf?l^rm)A++`F3VW-p$99AL8T;nM zi4&{GyuXuvtkbDer`E7H6s4aKE17mO-ofy9)87pC;Lrw}ZHw4Gaco062pI!oO)1!#!d?I@lhJ+*ZEMk9*Aw)+*fxUo zhc?;RuW`%^hO|iL!M=)fml>Qp<2^7qR^wcV<$-qy;CzMSB$fx-o8s7na~|f0 z_wBH*F6|%f@zE9)?Vxeq!6({qq8%oV=k40H1Kn1A$g3Opo!~!#jV|n8iEI-g4_IGl zUyQcI*#6NT7ROqgSK0e(ux@t3-aF=l;}z16_XFS@hxrbHb2;|j9^|1e^dnBZy9Vbf z*5mk!WrcRFPoKU79qi|jR}T0J@IuDM>&sBi78UbE83N}uocnN0XUkkP5vIX#EHk7Z z>kRKc5zU)TUl;n>wBLK;Q8nsXi`t@~&h=k$SUz@kcFcV_C}W@;RGa%9^rMtP4_+pXo_ z&eHFoABGmVf2t<^c6LG-=YKo7-yr-Q^dnMKw~&?n%EOQ$LXeNY$?mrY{4V-Y^~v1) zEB*TVLdG8AM+D;$(&58G##Z1*>3$UVyXeQZj`qvy>Qy}8JwC8319_(Q+_7z8`X){O zn%)2Jq93V5SqH^xw86r;0H0`+Dx${1^lAJ?6FMe&hkm8&ya^yRxh@psCrYPG5yJf<2=#03cbC5?703sULAX>!yB$<@L0cUR!#H%<=0H^VWmhZx zfE>?Q6G6@u^&dp!R`Cqq!~T$HTG97(kdsBvZtyJWXJ=1ne{ekUICJ*&?87r!QeJoY z0p-evuuek#8Pt2-BSk_OD9AVl8 z+KHg@f)vgq@O;2 zs!=R;q8}iz+_9ZROqoKFX4avO3G&6ZdwhQj>(!q*ar$LkWEdTJ)QLyk8q^QMFmqpX zDu@ve~(r8upF8ZGGrRx<0~r&mp)I`5f#OAAmc7S=t$W zbGRF|uI^{_BOa97L~UkJUlwIQQCDC3D?!+efeWC}zPGyF!yX^n&U~)NB_4I5AM2y( zj;7V)r|MSKZ`x3O=||qthG!?(ZLnqU3H$n}?^qxAGx|}+L!D(DgV^!k$jgYn{Zw`C z#pYFC`cWS}1auQc+dX4*iJMsUa8apIjJ_dD8|v4gT=1dz15N!1fAtw?N4py~9(5CU z|GAqYU!tzQ^yAnW1^cQfQ)3%K`{87`2eUrz`pfH#?yIORAjP8p9rY(*?7r}NE?*pihL!E8MXvgn*r)Vd-C3Xw-ec(%x z*Q}!2&*w4EU!k9+73ToaxtI;F%M-`PAN{Kf4ot(+k2(edNC#br|0s_% zBkgcb^FQ|wmH_H$>4N8juh!F2f)6nVx=#3aJ^oQ&*S`I`)3JObUMLpEi@uA7;ho*= zH$Kschq2*I`6E0!77u=+XUl-a z^)-!X$XB?Up;ces%l~U$q&lCfu&TVjkR%pYm6pv%6o=?L8;{TL^j(y9(eNL= zvw7E+rat+9t@o<3uMJ;qVgGdgwb8_e{VVuq^Q!GxpZpP?t$()t)rRv&apLLgoBz++ z085{EKHvMUZ~lnqdo-|l|DF7^e2CJ(=8Iu$IGgTg&tKvHXE^HO#VQJxD(AwG)^=e-&t2%{usyd_oJsM9u}WyK5Q61MZ-nmzL!6y5ibKa?0dY6 z=kq)AuR-e%>YdFC)3a@^wlGnA82>%~nYb_c;d@^3ImG=uv zaYuW^cXa1L*PXPfvt4;>1^XuF>BC}p(WEG^41i^oV+R^Sk6=8ZnF#2^xG_MGrRNH` z-?<>Uvr8|C=E*%&zQ;oahsRPxk0Ad)MiUaHOiajC*tI7nC!MXBKJffKd)=(6p?1DU zScC(E*JJ&ep634}B3;VL|A~_S?s}>IX9*{oic)<+w)O-`qk@DY%QJ>jX4y5PpI`eJ zZN&RI8D@Y9>j%5l@xq9(re=RPqXSL>a?t4u4uGQ|?p+E+rVm*dK8W3}U4=QXaX`~3 z6r|BzmapU5;8n)SIGO>tL6g9d-HOw@dYS$wS7AN2AfP}aM=ALo?m7|(g?gSY(`WNX<>7JA?)pZ@&t+KN!G`hr}YB0BGDYMPFyuFCV(P03_1)ba?&2yk1#+e9y@q(UbeF;^`vYH!mR8pq{%zqmt&8PYmjD0bCT-4Fo~dsUvjsf%tDeA z&%B_jk9DU`Gh|=)wPpRQ`Sx{8M7hMi>%%tRAy!iG@Q$amU=%DDKvTuvjXqx(Y6?sP zT);V+um}JL(9_4f#{-eTTa{=)Xq6g+C~O{RG#RaYKZ5Vs&SZckB`H`0;FW@Y$cqvn z2T1&2d)r^=&xl!7;dQD{An|@-mMqBtd>BB#1R<42S(P`mMS&D$npp;q@qr#QTmd9o z+NSIHD7YJTgveaQi9|GBo)i{`yBhR`2u!>CH*S1(0c0+ZWFi`@My`d$oe~!I*kx>e z-<1w`2S)M<7!z17sLPBg2r`mvCBZE)6Nf{S8L|#)YW5LLkwXLY@t91dC`h8*A)W)=^K z@6jig8bDUUUJtBPmjX_(NCr^AnV<&_mt#j8_DV}->J2owK;9YB<9s{@|FeU8({5Pm zz#Yj+*Oei`-G?zGO>^{tDU0t=aW@+8M>>d)^T+3aS*zh`KQZ% zLO}azbhhSTL!15$_N7eWFHJktNH8+_D#u;^@ls4C|Ss`Q9-HIwM(2Fzp`g7N$xPXA>eC& zsefbW^n-|P;~z$oxuXOHILhurQSZ%(>{+SiY!tA#*Pq&0_;YdW&aES=w~YCe4-ZYn zaI0$XEqLBFYwQ%#5(LK&sf9=EN2Uu`5OP2MokVuAo)4WLEnVPr*WR^%fhCnkf3u%? zjr0m-h$}MX#Q+iQM#qlhi`qMe2A1HGHj;AD<5)c@|6gaoews7s%RHot%5=~A^VcR9 zB^$H3q9VJ|;8$%1kH1DXnj#`EBbR?cnxoL>uLlD>knL&>pxh80!Dpj!Qi|@S6N)ld zFFq`oMjNPu!2mDtl5Vr76~S9m$*+eKY;7%W=Xvzi0WrworpJey)tsp!XQrKAH!?iq z04W#!S7MIiz4MZ}i1vcm+3ncxYEBSw>qJS9`$>nbdTKey_C-^HeAI0VRrh&4s{^Cr z5R?y29M+#c1!B?yACDZQ=4OG!i2XwGxhzhG>v<2~JcYXv`ey5;Fm<^uQhR_@?CI^= zSFaPyMGT&CjyEvk;b6cRleXx&uG& z3jmO?5fVe87WpbQngY#UmJp;kXfqU<7_I{lA)rj7+b2ixWGIXPi3+=-CmoJg6GT@Z z2?{a-{C$u{LQM+;eSG*wdc0|^i~wx!IAt6hRZpU7pWwn8L;3{dQLF|Ue~l@CxjBt4 ze~E!fE3F22@$;e;*S(IRaIXG{RQ2=;394Pxb1m^4C_r{9c7LTmQJ-DO#7K1mUjI!6 zC8|-^XOzl_91!Kym}yqj5*)|{K1};K1P`7o7l*;$oF4@W=T#FEhz+tsI$*m{yU z1Niu`#5W2>pnJzyoW#jw3eIe&>xNq5pP}$RynvZvuNGj9pz)s1h_hUKVO3&)m(5KbazGwG_A|voJB|j|ae>%ljjFX(-h_+yCg1nhkn-tCclQPCC>{r{r_sw)s}1^X z%??hUznu~L)ESkJ1Jc?^Sf#ZkBk9BR(-0o!d(WbnXtxuksMX8^S&;SrFfL$S21MUF zL$Z#WKj!KxMPmw%`aMnxmIPYx8Y?nDYe-Ym&03)AW4m&9=y0?T-VQ=n#r%CwT z`Efwr!m42DzUg^1mwa}=*AO`Y2`pY`5w zLR@zoKBZFAZ0EE&>rd4O~`J}CeiudT}ArF#vm3?uAacOv}ZmBEBB(Y3y>3X z@b~rTQ&o!9dBfE=er)^ zG>uev^W6*LeOyYiyB7WPrC)!XkYFdpkU=w}xu4`*J@ssn&EpTF$s(fQ7L=)T*4<`R z8h&t`2rdM|L<{ThiS14GRuwMKl=jQ!qZ^K9Gk_QSp+2?X^}7eu7&=h8cSbt48c!as z2^Yrz?YrDcO#a`_wsUH)PaJ5FR~2xAS?6MzF-H+z~S;n|enkRcJF;hU@uUV>%x+nr!eP zhAbEa&qQgXqnnBtc}H)RSmQ}XX9R_iABvxy;v|B3Jd`Ut7~0a(JHJ$17OkpyuZVnF z2BowgC1k)3l!-t*G_9-2b^V`mu0YtD4ugM2ddtjIelMi}g{B;4Cy9d%{zo!1v%^6EB@9zLE9xv*r*_BBZ#@zlP&0yzRJWtREOt-86*L4fy~`b`Y=_lF!F@6a z4)4unzA;*^+gIuK+hvK?TD%k+T+Z|_b8NudejUGpJAT~zm9BTZeW1Ilh(~vFjs{dr zgT^V$x~oTzm}muXGK#rSVp#NK~a$OW-JSEC;{G5_); z7Q5_L{2p3sTeRt2^tw!MJ(+7n1_J>w7G`Z}bT;~CbT7H)1X(3evL6o>!)S_UzS}NC zo5SixiWME2f?)^gZ*LE;&HX;#>33@1yR;eo?>08We;WwE{yXc>l&2Ia2B`lAFFf(S zWrh&@=zcP1%h3hPWP64FRU#>5Iz-^}t&6>~RUyYdG#EBl4gzSaJ( z%G5k4zWoPG#g$+q&~l69WUcVx(8U!N%h#D!@gOUw}wp{F)P`lw+gq_lRTIFFWw z)Xa{-n-HoGG7=70bErJu`TVkiPXZAdc2em;>3Lf=eS1LQ6a{uT;&#fI@2J{17duHl zD*2$m=@k%Jpvol;>h&hW z(O_;oMJ76l@V?4X|rLUoA1oJ!%RQVyX>UexfA zV}e`WfBJ+(B&VfWo~g{V3Zi0;2wT!orRkML3#dLY-kUXQyozl1r1wS(>-1ifsV`ru zEld0DbP4i^Xw$>#JVes>0fw6E78~3iO)`~>Y~@4-`5ih$+eUs|NCc+?L3Cg5M3^>LC}Q1#z$(cpovV-5_e@>kb? zUFXLDG>#)K^tjHAr0Lu2v%8zEv+wqHI4<1xSRLH%-u9id!F4$_a3LQ?^`D=~KpLF- z#4CIn{2`=py)OPQyE8QBx`Tp(X7_g%)iP;!=gYdjwptx*8?Ch{He9J+pDmbuwLNO( z=(VRj+gh>qb9TF=g5teNJQV6Hr>a`W|6oadZQ#b!yiA>^(luNark7LieKna~>$kGn zT&d`{G+X88Q*<*>K~z+>r`IIQ)S)FUu!O7sCFRaiTjK83#JAe?{mF#-!S0k=QJU|< z*|m=nMaIfp&3_KE{aF>Ivwd=V)xN*b!e&H0 z{$}2l?`5|as;4-W^ywYO&vIn5!nn(|bT%6c!?O}rTj4%izmSBrHn)_r+15EHJ^Fo> zcE+PQuwbC)_gf*n{QO@xAR*BYA!@t-+}jxTG~FW{F{94byrmO zH-EYs`F)#=*A}`?ycE z!7tILd0mNsQxi%&QT@$pT5kO9uSL|P!_@OTPyE~TQZr~l0sZ{y zPwK5ZLgnJv%zf9Y;g<~udy9Ov+lfYvo8ymXU%UGi@FTBfYNmzuP6!>eh2l=e*y?r@ zXc`~;q61{nFc1`l(bjV8ByW#09UYy%R<-@*%9hd1C}j3p`WI$TPtPiU%B@R!dii;I zVy<{*mDQ;2CV~B^Idd!*K7OpEd`F1L66*YBp=PePQ(P>o~jLtxW zn(coNR?Jd`M^?&eZSpavm+MnpB({t|6zm(Io9L(q=H4CKqPb$18@LrX+=86Hy zP-vwHJ1GNtrV&zuRX_o;qKjOdn z<6TQSfV?K6b>#cl1~5#OK`=HND8zCjpUKzY@8)l6O}?E)?!F+%VwW-8D`j1(&J*iR z!td(embb(&pO`8UY8}suj%KkqCjy~yS0OyRz(Y~)XqV^>$jU_Rix9ncJ$T-8LTyWT zZ94O*{e_jajSc6bw$pxoezPNp@8T&{E?b+CtxnI`*-H$ffCWQs+@gO!M61NNNq{kL zyC~LAS9l{T`}cT~;ocYWsk>nD`=(+KS!deBynX>`L@&}P0rvg2&EV_JA` zuhL@PkX<*yrX)U6s2GL8i@;#xAb^e^D=WdkiCKphQ+N2-mox68>a|78e$$#?uLd-zU3^IdOiLEPer{#(Tg2W< za&^A{eAkv~-Z6^m&z&+`>Y)z-i)gaHzbWWeD{7L~PJL7Cf8>Mr2s^kV3XYBMBp7M| z&fLcomnRDvi-iLEQ)g~og4`PS?w@!Tqx$1N79=tXT+$Oibtci#lw|nxDHYSJOSaf1 zz8wk5_#cMa9}5Oyap=Th_r$q9q~lb-@#`{XXcYNxk0=Qc*%;)gZo$;Mdbd4Y6VN(W zeCiJ$@$I)lRL~SG1|PP$pRJ3byjy(ov|z9~IQi(&)D`R`Poi3BAUB0hbqQKl-EH`v zG;s!skiC65w)f@B-nN0n8WunJw#Sc$T(kCKa{t48#NcVp$0LI_YRz1hUh2F1iKKXY zX->DTeaR#ZNESy6fq|XBiOI6Czh;^)O8Z7DPIBjciQBMJJ!rcxq4+=Z2!Vk}E6SBd{~j+KVtFiGH^{Om30%G8+vpZakK0Fs=%3zYx8M2@<d$k%iHHeP6vhHi$NJ1!J zPtqCG>sO$fj81qiJHayl$q~6l*0DiG2SuUd)-qt8L9`^5Pj$m=blY%Jh5e7-y`I45 z-alo8;HdTYcM;g?>+;XmJN2gzVeqH_Ttbr`$KmSQhumr}`-^{8iP zs!p0k94;z-Z~o@V4LuTf)0>iioL8owZq%(0I^U^2z-xgRf}JG}u;yQe+B!Ek-;Bg7 zOTK}F}yYi|^JdMhc)(=_B&XQk^9=2!l*WMpJyp6^1n z&cV)mgv-ih%a^eAgZ~}QoIUB++7s%N%u-A;O`xpL5ij@96A`;xQ|azo{0=Q}7o}DS zoD;3Rvzkp~as!0j`tev%upr=Vsteb&uIfqeEW_B;`C|GUhwx|PiGf<1cjh@ zRK=%v^Az{8tmpfn!*bIzGrE4(Y&4{T-5`No1fMgsRNT1xr`^>mmixeOV|dC|pcU17 z>D=~oW>QdqyYJ8tCzCI=e)&+8Z;b~(sij-Fqq4`BVCAdoQX@7H1V;?BBYhTqojLircxMBK;raf$VWOIw!NMz+`Vy&L9e26`P zC^yI~s4>lkok;Vr3`}T0KRl}V=m@?$IGuv?)Fcz(O)=O>)Qvs`|{au~cu zbeubjM^}QR$%}^lwW5RuCLR$>_uEBCcANTb%qZMjBZ#1^ z#`gvbb8{`&*=({#s)m!qm=@H(Vg?jE>ffv@FV^*JpL$$G8|)k0NBZrC3DgW_o$BD( zu`$QlLj?Rs4;vc|zm3|_zPF90PxP81$KJLo&}5Fu229V^=?XC9A4wT%G zLYP-JCozgB2ARg)+o`800RckIQ>ZkSQXcGk!((4M`k%P84pum?Rb*P?P3K?C(rfL4 zWkDu5vg4l^HNL0ffzEn`Y8evCJ{HWO|L=n{wOJIg5e30om)sy+umRuSM`-GEGZ*9J T0TeZm=eWJYNGO{W4fgs!X`7Ff delta 8242 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 VP5X*QQ|j4cv??xd?L`CJ{}1vb.Text); - procedure SetTextP(t: string) := b.Text := t; - procedure SetText(t: string) := Invoke(SetTextP,t); procedure CreateP(Txt: string); begin - element := new GTextBlock; + var tb := new GTextBlock; + element := tb; //element.Margin := new Thickness(0,0,0,8); //element.Margin := new Thickness(5,5,5,0); Text := Txt; ActivePanel.Children.Add(b); end; - public - constructor Create(Txt: string); + procedure CreatePXY(x,y: real; Txt: string); begin - Invoke(CreateP,Txt); + var tb := new GTextBlock; + element := tb; + tb.Background := new SolidColorBrush(Colors.White); + tb.FontSize := 20; + tb.Opacity := 0.7; + Canvas.SetLeft(element,x); + Canvas.SetTop(element,y); + Text := Txt; + ActivePanel.Children.Add(b); end; - property Text: string read GetText write SetText; + public + constructor Create(Txt: string) := Invoke(CreateP,Txt); + constructor Create(x,y: real; Txt: string) := Invoke(CreatePXY,x,y,Txt); + property Text: string read InvokeString(()->b.Text) write Invoke(procedure(t: string) -> b.Text := t,value); end; ///!# @@ -241,16 +249,18 @@ type end; - function Button(Txt: string): ButtonT; - function TextLabel(Txt: string): TextLabelT; - function TextBox(Txt: string := ''; w: real := 0): TextBoxT; - function IntegerBox(w: real := 0): IntegerBoxT; - function Slider(min: real := 0; max: real := 10; val: real := 0): SliderT; - - procedure EmptyBlock(sz: integer := 16); +function Button(Txt: string): ButtonT; +function TextLabel(Txt: string): TextLabelT; +function TextLabel(x,y: real; Txt: string): TextLabelT; +function TextBox(Txt: string := ''; w: real := 0): TextBoxT; +function IntegerBox(w: real := 0): IntegerBoxT; +function Slider(min: real := 0; max: real := 10; val: real := 0): SliderT; + +procedure EmptyBlock(sz: integer := 16); implementation +uses GraphWPF; uses System.Windows; uses System.Windows.Controls; uses System.Windows.Controls.Primitives; @@ -314,6 +324,7 @@ procedure AddStatusBar(Height: real) := Invoke(AddStatusBarP,Height); function Button(Txt: string): ButtonT := ButtonT.Create(Txt); function TextLabel(Txt: string): TextLabelT := TextLabelT.Create(Txt); +function TextLabel(x,y: real; Txt: string): TextLabelT := TextLabelT.Create(x,y,Txt); function TextBox(Txt: string; w: real): TextBoxT := TextBoxT.Create(Txt,w); function IntegerBox(w: real): IntegerBoxT := IntegerBoxT.Create(w); function Slider(min,max,val: real): SliderT := SliderT.Create(min,max,val); @@ -325,6 +336,11 @@ begin e.Width:= sz; end; +procedure SetActivePanelInit; +begin + ActivePanel := MainWindow.MainPanel.Children[0] as Panel +end; begin + Invoke(SetActivePanelInit); end. \ No newline at end of file diff --git a/bin/Lib/GraphWPF.pas b/bin/Lib/GraphWPF.pas index 69c4e09f3..6fb4262a0 100644 --- a/bin/Lib/GraphWPF.pas +++ b/bin/Lib/GraphWPF.pas @@ -478,6 +478,11 @@ procedure AddBottomPanel(Height: real := 100; c: Color := Colors.LightGray); procedure AddStatusBar(Height: real := 24);} +{function GetDC: DrawingContext; +procedure ReleaseDC(dc: DrawingContext); +procedure FastDraw(d: DrawingContext->()); +procedure FastClear(var dc: DrawingContext);} + procedure __InitModule__; procedure __FinalizeModule__; @@ -551,6 +556,23 @@ begin end; end; +procedure FastDraw(d: DrawingContext->()); +begin + Invoke(()-> + begin + var dc := GetDC; + d(dc); + ReleaseDC(dc); + end); +end; + +procedure FastClear(var dc: DrawingContext); +begin + ReleaseDC(dc); + Window.Clear; + dc := GetDC; +end; + function GetDC(t: Transform): DrawingContext; begin var visual := new DrawingVisual(); @@ -1313,7 +1335,6 @@ begin FillRectangle(0,0,Window.Width,Window.Height,c) end; - procedure WindowTypeWPF.Clear := Invoke(WindowTypeClearP); procedure WindowTypeWPF.Clear(c: Color) := Invoke(WindowTypeClearPC,c);