Hi Andy and Blair,
I am not sure if this is the kind of feedback you are looking for at this stage, but pressing on ... attached to this message are some instance creation methods for GdiplusStringFormat that I find fairly handy. gdiplus-sf.st ... a .st file-out of some additional instance creation loose methods. GdiplusStringFormatTest.cls ... a TestCase for these methods. FWIW: Another method I use frequently is: !GdiplusGraphics methodsFor! fillRectangle: aRectangle color: aColor | brush | brush := GdiplusSolidBrush color: aColor asARGB. self fillRectangle: aRectangle brush: brush. brush free! ! !GdiplusGraphics categoriesFor: #fillRectangle:color:!filling!public! ! Steve -- Steve Waring [hidden email] begin 666 GdiplusStringFormatTest.cls M(D9I;&5D(&]U="!F<F]M($1O;'!H:6X@4VUA;&QT86QK(%A0(B$-"@T*1V1I M<&QU<U1E<W1S('-U8F-L87-S.B C1V1I<&QU<U-T<FEN9T9O<FUA=%1E<W0- M"@EI;G-T86YC959A<FEA8FQE3F%M97,Z("<G#0H)8VQA<W-687)I86)L94YA M;65S.B G)PT*"7!O;VQ$:6-T:6]N87)I97,Z("<G#0H)8VQA<W-);G-T86YC M959A<FEA8FQE3F%M97,Z("<G(0T*1V1I<&QU<U-T<FEN9T9O<FUA=%1E<W0@ M9W5I9#H@*$=5240@9G)O;5-T<FEN9SH@)WLU0D5&-C9$-RU%,D1%+30U034M M.31%-"TT,T,X03@S-#=&-S%])RDA#0I'9&EP;'5S4W1R:6YG1F]R;6%T5&5S M="!C;VUM96YT.B G)R$-"B%'9&EP;'5S4W1R:6YG1F]R;6%T5&5S="!C871E M9V]R:65S1F]R0VQA<W,A56YC;&%S<VEF:65D(2 A#0HA1V1I<&QU<U-T<FEN M9T9O<FUA=%1E<W0@;65T:&]D<T9O<B$-"@T*=&5A<D1O=VX-"@ES=7!E<B!T M96%R1&]W;BX-"@EM;V1E;"!N;W1.:6P@:694<G5E.B!;;6]D96P@9G)E95TA M#0H-"G1E<W1#96YT97)E9 T*"6UO9&5L(#H]($=D:7!L=7-3=')I;F=&;W)M M870@8V5N=&5R960N#0H)<V5L9B!A<W-E<G0Z(&UO9&5L(&%L:6=N;65N=" ] M(%-T<FEN9T%L:6=N;65N=$-E;G1E<BX-"@ES96QF(&%S<V5R=#H@;6]D96P@ M;&EN94%L:6=N;65N=" ](%-T<FEN9T%L:6=N;65N=$-E;G1E<B$-"@T*=&5S M=$-E;G1E<D9A<@T*"6UO9&5L(#H]($=D:7!L=7-3=')I;F=&;W)M870@8V5N M=&5R1F%R+@T*"7-E;&8@87-S97)T.B!M;V1E;"!A;&EG;FUE;G0@/2!3=')I M;F=!;&EG;FUE;G1#96YT97(N#0H)<V5L9B!A<W-E<G0Z(&UO9&5L(&QI;F5! M;&EG;FUE;G0@/2!3=')I;F=!;&EG;FUE;G1&87(A#0H-"G1E<W1#96YT97). M96%R#0H);6]D96P@.CT@1V1I<&QU<U-T<FEN9T9O<FUA="!C96YT97).96%R M+@T*"7-E;&8@87-S97)T.B!M;V1E;"!A;&EG;FUE;G0@/2!3=')I;F=!;&EG M;FUE;G1#96YT97(N#0H)<V5L9B!A<W-E<G0Z(&UO9&5L(&QI;F5!;&EG;FUE M;G0@/2!3=')I;F=!;&EG;FUE;G1.96%R(0T*#0IT97-T1F%R0V5N=&5R#0H) M;6]D96P@.CT@1V1I<&QU<U-T<FEN9T9O<FUA="!F87)#96YT97(N#0H)<V5L M9B!A<W-E<G0Z(&UO9&5L(&%L:6=N;65N=" ](%-T<FEN9T%L:6=N;65N=$9A M<BX-"@ES96QF(&%S<V5R=#H@;6]D96P@;&EN94%L:6=N;65N=" ](%-T<FEN M9T%L:6=N;65N=$-E;G1E<B$-"@T*=&5S=$9A<D9A<@T*"6UO9&5L(#H]($=D M:7!L=7-3=')I;F=&;W)M870@9F%R1F%R+@T*"7-E;&8@87-S97)T.B!M;V1E M;"!A;&EG;FUE;G0@/2!3=')I;F=!;&EG;FUE;G1&87(N#0H)<V5L9B!A<W-E M<G0Z(&UO9&5L(&QI;F5!;&EG;FUE;G0@/2!3=')I;F=!;&EG;FUE;G1&87(A M#0H-"G1E<W1&87).96%R#0H);6]D96P@.CT@1V1I<&QU<U-T<FEN9T9O<FUA M="!F87).96%R+@T*"7-E;&8@87-S97)T.B!M;V1E;"!A;&EG;FUE;G0@/2!3 M=')I;F=!;&EG;FUE;G1&87(N#0H)<V5L9B!A<W-E<G0Z(&UO9&5L(&QI;F5! M;&EG;FUE;G0@/2!3=')I;F=!;&EG;FUE;G1.96%R(0T*#0IT97-T3F5A<D-E M;G1E<@T*"6UO9&5L(#H]($=D:7!L=7-3=')I;F=&;W)M870@;F5A<D-E;G1E M<BX-"@ES96QF(&%S<V5R=#H@;6]D96P@86QI9VYM96YT(#T@4W1R:6YG06QI M9VYM96YT3F5A<BX-"@ES96QF(&%S<V5R=#H@;6]D96P@;&EN94%L:6=N;65N M=" ](%-T<FEN9T%L:6=N;65N=$-E;G1E<B$-"@T*=&5S=$YE87)&87(-"@EM M;V1E;" Z/2!'9&EP;'5S4W1R:6YG1F]R;6%T(&YE87)&87(N#0H)<V5L9B!A M<W-E<G0Z(&UO9&5L(&%L:6=N;65N=" ](%-T<FEN9T%L:6=N;65N=$YE87(N M#0H)<V5L9B!A<W-E<G0Z(&UO9&5L(&QI;F5!;&EG;FUE;G0@/2!3=')I;F=! M;&EG;FUE;G1&87(A#0H-"G1E<W1.96%R3F5A<@T*"6UO9&5L(#H]($=D:7!L M=7-3=')I;F=&;W)M870@;F5A<DYE87(N#0H)<V5L9B!A<W-E<G0Z(&UO9&5L M(&%L:6=N;65N=" ](%-T<FEN9T%L:6=N;65N=$YE87(N#0H)<V5L9B!A<W-E M<G0Z(&UO9&5L(&QI;F5!;&EG;FUE;G0@/2!3=')I;F=!;&EG;FUE;G1.96%R M(2 A#0HA1V1I<&QU<U-T<FEN9T9O<FUA=%1E<W0@8V%T96=O<FEE<T9O<CH@ M(W1E87)$;W=N(7!U8FQI8R%S971U<"$@(0T*(4=D:7!L=7-3=')I;F=&;W)M M871497-T(&-A=&5G;W)I97-&;W(Z("-T97-T0V5N=&5R960A<'5B;&EC(75N M:70@=&5S=',A("$-"B%'9&EP;'5S4W1R:6YG1F]R;6%T5&5S="!C871E9V]R M:65S1F]R.B C=&5S=$-E;G1E<D9A<B%P=6)L:6,A=6YI="!T97-T<R$@(0T* M(4=D:7!L=7-3=')I;F=&;W)M871497-T(&-A=&5G;W)I97-&;W(Z("-T97-T M0V5N=&5R3F5A<B%P=6)L:6,A=6YI="!T97-T<R$@(0T*(4=D:7!L=7-3=')I M;F=&;W)M871497-T(&-A=&5G;W)I97-&;W(Z("-T97-T1F%R0V5N=&5R(7!U M8FQI8R%U;FET('1E<W1S(2 A#0HA1V1I<&QU<U-T<FEN9T9O<FUA=%1E<W0@ M8V%T96=O<FEE<T9O<CH@(W1E<W1&87)&87(A<'5B;&EC(75N:70@=&5S=',A M("$-"B%'9&EP;'5S4W1R:6YG1F]R;6%T5&5S="!C871E9V]R:65S1F]R.B C M=&5S=$9A<DYE87(A<'5B;&EC(75N:70@=&5S=',A("$-"B%'9&EP;'5S4W1R M:6YG1F]R;6%T5&5S="!C871E9V]R:65S1F]R.B C=&5S=$YE87)#96YT97(A M<'5B;&EC(75N:70@=&5S=',A("$-"B%'9&EP;'5S4W1R:6YG1F]R;6%T5&5S M="!C871E9V]R:65S1F]R.B C=&5S=$YE87)&87(A<'5B;&EC(75N:70@=&5S M=',A("$-"B%'9&EP;'5S4W1R:6YG1F]R;6%T5&5S="!C871E9V]R:65S1F]R H.B C=&5S=$YE87).96%R(7!U8FQI8R%U;FET('1E<W1S(2 A#0H-"@`` ` end begin 666 gdiplus-sf.st M(4=D:7!L=7-3=')I;F=&;W)M870@8VQA<W,@;65T:&]D<T9O<B$-"@T*8V5N M=&5R1F%R#0H)(D%N<W=E<B!A;B!I;G-T86YC92!O9B!T:&4@<F5C96EV97(@ M=VET:"!A;&EG;FUE;G0Z#0H)"4AO<F]Z;VYT86PZ(&-E;G1E<@T*"0E697)T M:6-A;#H@9F%R(@T*#0H)7BAS96QF(&YE=RD-"@D)86QI9VYM96YT.B!3=')I M;F=!;&EG;FUE;G1#96YT97([#0H)"6QI;F5!;&EG;FUE;G0Z(%-T<FEN9T%L M:6=N;65N=$9A<CL-"@D)>6]U<G-E;&8A("$-"B%'9&EP;'5S4W1R:6YG1F]R M;6%T(&-L87-S(&-A=&5G;W)I97-&;W(Z("-C96YT97)&87(A:6YS=&%N8V4@ M8W)E871I;VXA<'5B;&EC(2 A#0H-"B%'9&EP;'5S4W1R:6YG1F]R;6%T(&-L M87-S(&UE=&AO9'-&;W(A#0H-"F-E;G1E<DYE87(-"@DB06YS=V5R(&%N(&EN M<W1A;F-E(&]F('1H92!R96-E:79E<B!W:71H(&%L:6=N;65N=#H-"@D)2&]R M;WIO;G1A;#H@8V5N=&5R#0H)"59E<G1I8V%L.B!N96%R(@T*#0H)7BAS96QF M(&YE=RD-"@D)86QI9VYM96YT.B!3=')I;F=!;&EG;FUE;G1#96YT97([#0H) M"6QI;F5!;&EG;FUE;G0Z(%-T<FEN9T%L:6=N;65N=$YE87([#0H)"7EO=7)S M96QF(2 A#0HA1V1I<&QU<U-T<FEN9T9O<FUA="!C;&%S<R!C871E9V]R:65S M1F]R.B C8V5N=&5R3F5A<B%I;G-T86YC92!C<F5A=&EO;B%P=6)L:6,A("$- M"@T*(4=D:7!L=7-3=')I;F=&;W)M870@8VQA<W,@;65T:&]D<T9O<B$-"@T* M9F%R0V5N=&5R#0H)(D%N<W=E<B!A;B!I;G-T86YC92!O9B!T:&4@<F5C96EV M97(@=VET:"!A;&EG;FUE;G0Z#0H)"4AO<F]Z;VYT86PZ(&9A<@T*"0E697)T M:6-A;#H@8V5N=&5R(@T*#0H)7BAS96QF(&YE=RD-"@D)86QI9VYM96YT.B!3 M=')I;F=!;&EG;FUE;G1&87([#0H)"6QI;F5!;&EG;FUE;G0Z(%-T<FEN9T%L M:6=N;65N=$-E;G1E<CL-"@D)>6]U<G-E;&8A("$-"B%'9&EP;'5S4W1R:6YG M1F]R;6%T(&-L87-S(&-A=&5G;W)I97-&;W(Z("-F87)#96YT97(A:6YS=&%N M8V4@8W)E871I;VXA<'5B;&EC(2 A#0H-"B%'9&EP;'5S4W1R:6YG1F]R;6%T M(&-L87-S(&UE=&AO9'-&;W(A#0H-"F9A<D9A<@T*"2)!;G-W97(@86X@:6YS M=&%N8V4@;V8@=&AE(')E8V5I=F5R('=I=&@@86QI9VYM96YT.@T*"0E(;W)O M>F]N=&%L.B!F87(-"@D)5F5R=&EC86PZ(&9A<B(-"@T*"5XH<V5L9B!N97<I M#0H)"6%L:6=N;65N=#H@4W1R:6YG06QI9VYM96YT1F%R.PT*"0EL:6YE06QI M9VYM96YT.B!3=')I;F=!;&EG;FUE;G1&87([#0H)"7EO=7)S96QF(2 A#0HA M1V1I<&QU<U-T<FEN9T9O<FUA="!C;&%S<R!C871E9V]R:65S1F]R.B C9F%R M1F%R(6EN<W1A;F-E(&-R96%T:6]N(7!U8FQI8R$@(0T*#0HA1V1I<&QU<U-T M<FEN9T9O<FUA="!C;&%S<R!M971H;V1S1F]R(0T*#0IF87).96%R#0H)(D%N M<W=E<B!A;B!I;G-T86YC92!O9B!T:&4@<F5C96EV97(@=VET:"!A;&EG;FUE M;G0Z#0H)"4AO<F]Z;VYT86PZ(&9A<@T*"0E697)T:6-A;#H@;F5A<B(-"@T* M"5XH<V5L9B!N97<I#0H)"6%L:6=N;65N=#H@4W1R:6YG06QI9VYM96YT1F%R M.PT*"0EL:6YE06QI9VYM96YT.B!3=')I;F=!;&EG;FUE;G1.96%R.PT*"0EY M;W5R<V5L9B$@(0T*(4=D:7!L=7-3=')I;F=&;W)M870@8VQA<W,@8V%T96=O M<FEE<T9O<CH@(V9A<DYE87(A:6YS=&%N8V4@8W)E871I;VXA<'5B;&EC(2 A M#0HA1V1I<&QU<U-T<FEN9T9O<FUA="!C;&%S<R!M971H;V1S1F]R(0T*#0IN M96%R0V5N=&5R#0H)(D%N<W=E<B!A;B!I;G-T86YC92!O9B!T:&4@<F5C96EV M97(@=VET:"!A;&EG;FUE;G0Z#0H)"4AO<F]Z;VYT86PZ(&YE87(-"@D)5F5R M=&EC86PZ(&-E;G1E<B(-"@T*"5XH<V5L9B!N97<I#0H)"6%L:6=N;65N=#H@ M4W1R:6YG06QI9VYM96YT3F5A<CL-"@D);&EN94%L:6=N;65N=#H@4W1R:6YG M06QI9VYM96YT0V5N=&5R.PT*"0EY;W5R<V5L9B$@(0T*(4=D:7!L=7-3=')I M;F=&;W)M870@8VQA<W,@8V%T96=O<FEE<T9O<CH@(VYE87)#96YT97(A:6YS M=&%N8V4@8W)E871I;VXA<'5B;&EC(2 A#0H-"B%'9&EP;'5S4W1R:6YG1F]R M;6%T(&-L87-S(&UE=&AO9'-&;W(A#0H-"FYE87)&87(-"@DB06YS=V5R(&%N M(&EN<W1A;F-E(&]F('1H92!R96-E:79E<B!W:71H(&%L:6=N;65N=#H-"@D) M2&]R;WIO;G1A;#H@;F5A<@T*"0E697)T:6-A;#H@9F%R(@T*#0H)7BAS96QF M(&YE=RD-"@D)86QI9VYM96YT.B!3=')I;F=!;&EG;FUE;G1.96%R.PT*"0EL M:6YE06QI9VYM96YT.B!3=')I;F=!;&EG;FUE;G1&87([#0H)"7EO=7)S96QF M(2 A#0HA1V1I<&QU<U-T<FEN9T9O<FUA="!C;&%S<R!C871E9V]R:65S1F]R M.B C;F5A<D9A<B%I;G-T86YC92!C<F5A=&EO;B%P=6)L:6,A("$-"B%'9&EP M;'5S4W1R:6YG1F]R;6%T(&-L87-S(&UE=&AO9'-&;W(A#0H-"FYE87).96%R M#0H)(D%N<W=E<B!A;B!I;G-T86YC92!O9B!T:&4@<F5C96EV97(@=VET:"!A M;&EG;FUE;G0Z#0H)"4AO<F]Z;VYT86PZ(&YE87(-"@D)5F5R=&EC86PZ(&YE M87(B#0H-"@E>*'-E;&8@;F5W*0T*"0EA;&EG;FUE;G0Z(%-T<FEN9T%L:6=N M;65N=$YE87([#0H)"6QI;F5!;&EG;FUE;G0Z(%-T<FEN9T%L:6=N;65N=$YE M87([#0H)"7EO=7)S96QF(2 A#0HA1V1I<&QU<U-T<FEN9T9O<FUA="!C;&%S M<R!C871E9V]R:65S1F]R.B C;F5A<DYE87(A:6YS=&%N8V4@8W)E871I;VXA M<'5B;&EC(2 A#0H-"B%'9&EP;'5S4W1R:6YG1F]R;6%T(&UE=&AO9'-&;W(A M#0H-"FQI;F5!;&EG;FUE;G0-"@DB06YS=V5R(&$@4W1R:6YG06QI9VYM96YT M(&-O;G-T86YT("!T:&%T('-P96-I9FEE<R!H;W<@=&AE(')E8V5I=F5R('=I M;&P@=F5R=&EC86QL>2!A;&EG;B -"@EC:&%R86-T97)S(&]F(&$@<W1R:6YG M('=I=&AI;B!A(&QA>6]U="!R96-T86YG;&4N(@T*#0H)?"!S=&%T=7,@86YS M=V5R('P-"@EA;G-W97(@.CT@4T173U)$(&YE=RX-"@DH<W1A='5S(#H]($=D M:7!L=7-,:6)R87)Y(&1E9F%U;'0@9V1I<$=E=%-T<FEN9T9O<FUA=$QI;F5! M;&EG;CH@<V5L9B!A<U!A<F%M971E<@T*"0D)"6%L:6=N.B!A;G-W97(I(#T@ M3VL@#0H)"6EF1F%L<V4Z(%M'9&EP;'5S17)R;W(@<VEG;F%L.B G1V1I<$=E M=%-T<FEN9T9O<FUA=$QI;F5!;&EG;B!F86EL960G('=I=&@Z('-T871U<UTN M#0H)7F%N<W=E<B!A<TEN=&5G97(A("$-"B%'9&EP;'5S4W1R:6YG1F]R;6%T M(&-A=&5G;W)I97-&;W(Z("-L:6YE06QI9VYM96YT(6%C8V5S<VEN9R%P=6)L -:6,A("$-"@T*#0H-"@`` ` end |
Free forum by Nabble | Edit this page |