Hi Andy,
Some time ago, and probably for no valid reason, I shot myself in the foot a little by using splash screens for some things that would (I think) be better handled with progress dialogs. Looking at what I have to fix, I'm starting to see a pattern. Most of the tasks in question are things that might be best limited in time with some text descriptions to be displayed at certain milestones. The time-based stuff is easy to do. My suggestion surrounds methods like ProgressDialog class>>showModalWhile:. Currently, they pass a value adapter to the block; could ProgressDialog implement #value: (pass it on to the progress bar) and then allow #showModalWhile: and friends to pass the progress dialog itself to the block? Then we could access the text as well as progress value. What do you think? Have a good one, Bill -- Wilhelm K. Schwab, Ph.D. [hidden email] |
Bill Schwab <[hidden email]> wrote in message
news:9rsfhi$vn802$[hidden email]... ... > The time-based stuff is easy to do. My suggestion surrounds methods like > ProgressDialog class>>showModalWhile:. Currently, they pass a value adapter > to the block; could ProgressDialog implement #value: (pass it on to the > progress bar) and then allow #showModalWhile: and friends to pass the > progress dialog itself to the block? Then we could access the text as well > as progress value. What do you think? ... I like your suggestion. In fact I had to do something similar recently. If ProgressDialog worked as you suggest it would have been a bit easier for me. This is the code I ended up using: ============== progDialog := ProgressDialog operation: [:progress | Cursor wait makeCurrent. progDialog caption: 'Loading Compounds...'. self importCompounds: progress. progDialog caption: 'Loading Equipment...'. self importEquipment: progress. progDialog caption: 'Loading Process...'. newProcess := self importProcess: progress. Cursor arrow makeCurrent]. progDialog allowCancel: false. progDialog showModal. ============== Chris |
Chris,
> I like your suggestion. In fact I had to do something similar recently. If > ProgressDialog worked as you suggest it would have been a bit easier for me. > This is the code I ended up using: > ============== > progDialog := ProgressDialog operation: [:progress | > Cursor wait makeCurrent. > progDialog caption: 'Loading Compounds...'. > self importCompounds: progress. > progDialog caption: 'Loading Equipment...'. > self importEquipment: progress. > progDialog caption: 'Loading Process...'. > newProcess := self importProcess: progress. > Cursor arrow makeCurrent]. > progDialog allowCancel: false. > progDialog showModal. > ============== There's also a #text: selector that you might like better than #caption:. Since I shot myself in the foot _many_ times<g>, I'm being very careful to write a very convenient helper method do something like what you've done above, but hide the details. Do you have any ideas about what to do if the block terminates abnormally? I will probably end up trapping Error and setting one of a couple of flags, but, (I think anyway) it would be nice to have the progress dialog go away if the process it "protects" terminates. My splash screens seem to do that well enough, but, they are not modal so impatient users can (and do) get themselves into trouble. Re the potential change, the only thing I can think of in D4 that would cause trouble is if somebody went from adapter->subject->parent (or whatever it would take) to locate the progress dialog and set the text. For D5, I suppose there could be collisions with the refactored presenter hierarchy, but, since ProgressDialog probably isn't a value presenter, it might not matter??? Have a good one, Bill -- Wilhelm K. Schwab, Ph.D. [hidden email] |
Hello all,
There is a problem with my half-baked suggestion: ProgressDialog is a value dialog :( It appears that #forkOperation: takes advantage of this to cache the value returned by the block (the one that does the real work). However, it might be possible to use another mechanism for caching and still get the same behavior of making the dialog the argument rather than the value adapter on the progress bar. Actually, one could introduce another object that responds to #value: and #text:, and maybe that's the better solution. Having spent much of today trying to get something that works like my splash screens but is modal, I now recall why I felt forced to use splash screens some time ago: this is kinda tricky. If I get anything that's useful and not tied to proprietary stuff, I'll make it available for general use and (hopefully) better suggestions. Have a good one, Bill -- Wilhelm K. Schwab, Ph.D. [hidden email] |
Hello all,
You might want to (cautiously please) have a look at the following: http://needle.anest.ufl.edu/anest4/bills/TimedEvaluator.zip File it in and look at the class side methods. Comments/bug reports/better ideas are all welcome. Have a good one, Bill -- Wilhelm K. Schwab, Ph.D. [hidden email] |
In reply to this post by Bill Schwab-2
Bill Schwab <[hidden email]> wrote in message
news:9ru56s$vsbtk$[hidden email]... > There's also a #text: selector that you might like better than #caption:. I don't remember why I used #caption: rather than #text:. I think I was going to use text for a more detailed progress display such as showing the name of the item being imported and let the caption be more general. However my design prohibits me form doing that since I pass the progress value holder rather than a reffereence to the progress dialog. > Since I shot myself in the foot _many_ times<g>, I'm being very careful to > write a very convenient helper method do something like what you've done > above, but hide the details. Do you have any ideas about what to do if the > block terminates abnormally? I will probably end up trapping Error and ... Code terminate abnormally? Of course that never happens. ;) Actually I did run into that problem as I was developing the code and I ended up having to do a few (ProgressDialog allInstances first close)'s, or something like that. My code is not in a production environment yet so I do not have all the error handling in place yet. I think I could just use an #ifCurtailed: around a block to close the ProgressDialog, or add more robust error handling as needed. I just saw your message with the attachment, I shall look at that now. Chris |
In reply to this post by Bill Schwab-2
Bill,
> There is a problem with my half-baked suggestion: ProgressDialog is a value > dialog :( It appears that #forkOperation: takes advantage of this to cache > the value returned by the block (the one that does the real work). However, > it might be possible to use another mechanism for caching and still get the > same behavior of making the dialog the argument rather than the value > adapter on the progress bar. Actually, one could introduce another object > that responds to #value: and #text:, and maybe that's the better solution. > > Having spent much of today trying to get something that works like my splash > screens but is modal, I now recall why I felt forced to use splash screens > some time ago: this is kinda tricky. If I get anything that's useful and > not tied to proprietary stuff, I'll make it available for general use and > (hopefully) better suggestions. For D5 we've taken this suggestion on board and moved ProgressDialog so it's no longer a subclass of ValueDialog. Attached is the new CLS file that you should be able to try under D4 (although I haven't verified this). The example methods on the class side illustrate its use. Best Regards, Andy Bower Dolphin Support http://www.object-arts.com --- Are you trying too hard? http://www.object-arts.com/Relax.htm --- begin 666 ProgressDialog.cls M(D9I;&5D(&]U="!F<F]M($1O;'!H:6X@4VUA;&QT86QK(#(P,# @<F5L96%S M92 U+C P(B$-"@T*1&EA;&]G('-U8F-L87-S.B C4')O9W)E<W-$:6%L;V<- M"@EI;G-T86YC959A<FEA8FQE3F%M97,Z("=P<F]G<F5S<U!R97-E;G1E<B!O M<&5R871I;VX@<')O8V5S<R!T97AT4')E<V5N=&5R(&%L;&]W0V%N8V5L('!R M:6]R:71Y)PT*"6-L87-S5F%R:6%B;&5.86UE<SH@)R<-"@EP;V]L1&EC=&EO M;F%R:65S.B G)PT*"6-L87-S26YS=&%N8V5687)I86)L94YA;65S.B G)R$- M"E!R;V=R97-S1&EA;&]G(&=U:60Z("A'54E$(&9R;VU3=')I;F<Z("=[.#=" M-$,V04(M,#(V12TQ,40S+3E&1#<M,#!!,$-#,T4T03,R?2<I(0T*4')O9W)E M<W-$:6%L;V<@8V]M;65N=#H@)U!R;V=R97-S1&EA;&]G(&ES(&$@/'9A;'5E M1&EA;&]G4')E<V5N=&5R/B!T:&%T(&-A;B!B92!U<V5D('1O(&EN9&EC871E M('1H92!P<F]G<F5S<R!O9B!A(&)A8VMG<F]U;F0@;W!E<F%T:6]N+B!4:&4@ M/'9A;'5E36]D96P^(&ES('5S960@=&\@:&]L9"!A(#QN=6UB97(^('1H870@ M9&5S8W)I8F5S('1H92!C=7)R96YT(&%M;W5N="!O9B!P<F]G<F5S<R!T:')O M=6=H('1H92!O<&5R871I;VXN(%1Y<&EC86QL>2P@=VET:"!T:&4@<W1A;F1A M<F0@=FEE=W,L('1H:7,@=VEL;"!B92!A;B \:6YT96=E<CX@8F5T=V5E;B P M(&%N9" Q,# E+@T*#0I4:&4@=F%R:6]U<R!;:6YS=&%N8V4@8W)E871I;VY= M(&UE=&AO9',@86-C97!T(&$@/&UO;F%D:6-686QU86)L93X@;W!E<F%T:6]N M('=H:6-H(&ES(&5V86QU871E9"!I;B!A(&)A8VMG<F]U;F0@<')O8V5S<RX@ M5&AE('!A<F%M971E<B!P87-S960@=&\@=&AE(&]P97)A=&EO;B!I<R!T:&4@ M/'9A;'5E36]D96P^(&]F('1H92!0<F]G<F5S<T1I86QO9RX@270@:7,@=&AE M;B!T:&4@<F5S<&]N<VEB:6QI='D@;V8@=&AE(&]P97)A=&EO;BP@87,@:70@ M<')O9W)E<W-E<RP@=&\@<&5R:6]D:6-A;&QY('5P9&%T92!T:&ES('=I=&@@ M=&AE('-T871E(&]F('!R;V=R97-S+@T*#0I4:&4@8VQA<W,@:6YC;'5D97,@ M82!N=6UB97(@;V8@97AA;7!L97,@=&\@9&5M;VYS=')A=&4@:71S('5S93H- M"E!R;V=R97-S1&EA;&]G(&5X86UP;&4Q+@T*4')O9W)E<W-$:6%L;V<@97AA M;7!L93(N#0I0<F]G<F5S<T1I86QO9R!E>&%M<&QE,RX-"@T*26YS=&%N8V4@ M5F%R:6%B;&5S.@T*"7!R;V=R97-S4')E<V5N=&5R"0D\3G5M8F5R4')E<V5N M=&5R/B!D:7-P;&%Y:6YG('1H92!C=7)R96YT('-T871E(&]F('!R;V=R97-S M+@T*"6]P97)A=&EO;@D)"3QM;VYA9&EC5F%L=6%B;&4^(&AO;&1I;F<@=&AE M(&]P97)A=&EO;B!T;R!B92!P97)F;W)M960N#0H)<')O8V5S<PD)"3Q0<F]C M97-S/B!E=F%L=6%T:6YG('1H92!O<&5R871I;VXN#0H)=&5X=%!R97-E;G1E M<@D)/%1E>'10<F5S96YT97(^(&1I<W!L87EI;F<@=&AE(&1E<V-R:7!T:79E M('1E>'0@=&\@9&5S8W)I8F4@=&AE(&]P97)A=&EO;BX-"@T*#0HG(0T*(5!R M;V=R97-S1&EA;&]G(&-A=&5G;W)I97-&;W)#;&%S<R%-5E M4')E<V5N=&5R M<R$@(0T*(5!R;V=R97-S1&EA;&]G(&UE=&AO9'-&;W(A#0H-"F%L;&]W0V%N M8V5L#0H)(D%N<W=E<B!W:&5T:&5R('1H92!U<V5R(&ES('!E<FUI='1E9"!T M;R!C86YC96P@=&AE(&]P97)A=&EO;BXB#0H-"@E>86QL;W=#86YC96PA#0H- M"F%L;&]W0V%N8V5L.B!A0F]O;&5A;@T*"2)3970@=VAE=&AE<B!T:&4@=7-E M<B!I<R!P97)M:71T960@=&\@8V%N8V5L('1H92!O<&5R871I;VXN(@T*#0H) M86QL;W=#86YC96P@.CT@84)O;VQE86XN#0H)<V5L9B!I;G9A;&ED871E57-E M<DEN=&5R9F%C92$-"@T*86YS=V5R#0H)(D%N<W=E<B!T:&4@;6]D96P@:68@ M=&AE(')E8V5I=F5R('=A<R!C;VYF:7)M960@*'=I=&@@(V%P<&QY+" C;VMA M>2D@#0H);W(@;FEL(&]T:&5R=VES92X@1&5R969E<F5N8V4@=&AE('9A;'5E M(&9R;VT@=&AE(&UO9&5L('-I;F-E('1H:7,@=VEL; T*"6)E(&UO<W0@=7-E M9G5L(@T*#0H)7G-E;&8@:7-#;VYF:7)M960-"@D):694<G5E.B!;('-E;&8@ M;6]D96P@<W5B:F5C="!V86QU92!=#0H)"6EF1F%L<V4Z(%L@;FEL(%TA#0H- M"F-A;F-E; T*"2)#86YC96P@=&AE(&]P97)A=&EO;B!A;F0@8VQO<V4@=&AE M(')E8V5I=F5R+B(-"@T*"7!R;V-E<W,@=&5R;6EN871E+@T*"7!R;V-E<W,@ M.CT@;FEL+@T*"7-U<&5R(&-A;F-E;"$-"@T*8W)E871E0V]M<&]N96YT<PT* M"2)#<F5A=&4@=&AE('!R97-E;G1E<G,@8V]N=&%I;F5D(&)Y('1H92!R96-E M:79E<B(-"@T*"7-U<&5R(&-R96%T94-O;7!O;F5N=',N#0H)<')O9W)E<W-0 M<F5S96YT97(@.CT@<V5L9B!A9&0Z($YU;6)E<E!R97-E;G1E<B!N97<@;F%M M93H@)W!R;V=R97-S)RX-"@ET97AT4')E<V5N=&5R(#H]('-E;&[hidden email]!4 M97AT4')E<V5N=&5R(&YE=R!N86UE.B G=&5X="<-"@T*(0T*#0IF;W)K3W!E M<F%T:6]N#0H)(E!R:79A=&4@+2!3=&%R="!T:&4@<F5C96EV97(G<R!O<&5R M871I;VX@870@=&AE(&-U<G)E;G0@<')I;W)I='D-"@DH=&AE('5S97(@<W5P M<&QI960@;W!E<F%T:6]N(&-A;B!M;V1I9GD@=&AE('!R:6]R:71Y+"!I9B!D M97-I<F5D+ T*"6)Y(&UE86YS(&]F(&$@)U!R;V-E<W-O<B!A8W1I=F50<F]C M97,@<')I;W)I='DZ(%@G(&5X<')E<W-I;VXI+B(-"@T*"7!R;V-E<W,@.CT@ M6W-E;&8@;6]D96P@<W5B:F5C="!V86QU93H@*&]P97)A=&EO;B!V86QU93H@ M<V5L9BDN('-E;&8@;VM=(&9O<FM!=#H@<V5L9B!P<FEO<FET>2$-"@T*:6YI M=&EA;&EZ90T*"2)0<FEV871E("T@26YI=&EA;&EZ92!T:&4@<F5C96EV97(B M#0H-"@ES=7!E<B!I;FET:6%L:7IE+@T*"6%L;&]W0V%N8V5L(#H]('1R=64N M#0H)<')I;W)I='D@.CT@4')O8V5S<V]R('5S97)"86-K9W)O=6YD4')I;W)I M='DN(0T*#0IO<&5R871I;VX-"@DB06YS=V5R('1H92!V86QU92!O9B!T:&4@ M<F5C96EV97(G<R!I;G-T86YC92!V87)I86)L92 G;W!E<F%T:6]N)RX-"@E4 M:&ES(&UE=&AO9"!W87,@875T;VUA=&EC86QL>2!G96YE<F%T960L(&)U="!M M87D@8F4@;6]D:69I960N(@T*#0H)7F]P97)A=&EO;B$-"@T*;W!E<F%T:6]N M.B!A;D]B:F5C= T*"2)3970@=&AE('9A;'5E(&]F('1H92!R96-E:79E<B=S M(&EN<W1A;F-E('9A<FEA8FQE("=O<&5R871I;VXG('1O(&%N3V)J96-T+@T* M"51H:7,@;65T:&]D('=A<R!A=71O;6%T:6-A;&QY(&=E;F5R871E9"P@8G5T M(&UA>2!B92!M;V1I9FEE9"XB#0H-"@EO<&5R871I;VX@.CT@86Y/8FIE8W0A M#0H-"G!R:6]R:71Y#0H)(D%N<W=E<B!T:&4@<')I;W)I='D@870@=VAI8V@@ M=&AE(&]P97)A=&EO;B!W87,@;W(@=VEL;"!B92!F;W)K960N(@T*#0H)7G!R M:6]R:71Y(0T*#0IP<FEO<FET>3H@86Y);G1E9V5R#0H)(E-E="!T:&4@<')I M;W)I='D@870@=VAI8V@@=&AE(&]P97)A=&EO;B!W87,@;W(@=VEL;"!B92!F M;W)K960N#0H)5&AI<R!M=7-T(&)E(&$@=F%L:60@<')O8V5S<R!P<FEO<FET M>2!L979E;"XB#0H-"@DH<')I;W)I='D@8F5T=V5E;CH@4')O8V5S<V]R('-Y M<W1E;4)A8VMG<F]U;F10<FEO<FET>2 -"@D)"6%N9#H@4')O8V5S<V]R(&AI M9VA)3U!R:6]R:71Y*2!I9D9A;'-E.B!;<V5L9B!E<G)O<CH@)TEN=F%L:60@ M<')I;W)I='DG72X-"@EP<FEO<FET>2 Z/2!A;DEN=&5G97(-"@T*(0T*#0IP M<F]G<F5S<PT*"2)!;G-W97(@=&AE(&-U<G)E;G0@<')O9W)E<W,@=F%L=64N M#0H)57-E9G5L('=I=&@@;6]D96QE<W,@<')O9W)E<W,@9&EA;&]G<RXB#0H- M"@E><')O9W)E<W-0<F5S96YT97(@=F%L=64A#0H-"G%U97)Y0V]M;6%N9#H@ M<75E<GD-"@DB4')I=F%T92 M($5N=&5R<R!D971A:6QS(&%B;W5T(&$@<&]T M96YT:6%L(&-O;6UA;F0@9F]R('1H92!R96-E:79E<B!I;G1O('1H92 -"@D\ M0V]M;6%N9%%U97)Y/BP@('%U97)Y+B(-"@T*"7P@8VUD('P-"@EC;60@.CT@ M<75E<GD@8V]M;6%N9%-Y;6)O;"X-"@T*"6-M9" ]/2 C8V%N8V5L(&EF5')U M93H@6PT*"0DB3F]T92!T:&%T('=E(&YE960@=&\@9F]R8V4@;W5R<V5L=F5S M(&%S('1H92!C;VUM86YD('1A<F=E="!T;R!D:7-A8FQE(&-A;F-E;"(-"@D) M<75E<GD@:7-%;F%B;&5D.B!S96QF(&%L;&]W0V%N8V5L.R!R96-E:79E<CH@ M<V5L9BX-"@D)7G1R=65=+@T*#0H)7G-U<&5R('%U97)Y0V]M;6%N9#H@<75E M<GD-"@T*(0T*#0IS:&]W#0H)(E-T87)T('1H92!O<&5R871I;VXL(&%N9"!S M:&]W('1H92!R96-E:79E<B!M;V1E;&5S<VQY+@T*"51H92!R97-U;'0@;V8@ M=&AE(&]P97)A=&EO;B H86YD('1H92!P<F]G<F5S<RD@8V%N(&)E('%U97)I M960@9G)O;0T*"71H92!R96-E:79E<B!A="!A;GD@=&EM92!U<VEN9R!T:&4@ M;65S<V%G97,@(VES0V]N9FER;65D+" C=F%L=64L( T*"6%N9" C<')O9W)E M<W,N#0H)(@T*#0H)<V5L9B!F;W)K3W!E<F%T:6]N+@T*"5YS=7!E<B!S:&]W M(0T*#0IS:&]W36]D86P-"@DB4W1A<G0@=&AE(&]P97)A=&EO;BP@86YD('-H M;W<@=&AE(')E8V5I=F5R)W,@=FEE=R!A<R!A(&UO9&%L(&1I86QO9RX-"@E! M;G-W97(@=&AE(')E<W5L="!O9B!T:&4@;W!E<F%T:6]N(&EF('1H92!P<F]C M97-S(')U;G,@=&\@8V]M<&QE=&EO;BP-"@EO<B!I9B!C86YC96QL960@;W(@ M=&AE('!R;V-E<W,@97AP97)I96YC97,@86X@97AC97!T:6]N+B(-"@T*"7-E M;&8@9F]R:T]P97)A=&EO;BX-"@E><W5P97(@<VAO=TUO9&%L(0T*#0IT97AT M.B!P<F]G<F5S<U1E>'0-"@DB4V5T('1H92!D97-C<FEP=&EV92!T97AT(&1I M<W!L87EE9"!I;B!T:&4@<F5C96EV97(@=&\@8F4@=&AE(#QR96%D86)L95-T M<FEN9SXL#0H)<')O9W)E<W-497AT+B(-"@T*"71E>'10<F5S96YT97(@;6]D M96P@=F%L=64Z('!R;V=R97-S5&5X="$-"@T*=F%L=64Z('!R;V=R97-S5F%L M=64-"@DB4V5T('1H92!N=6UE<FEC('!R;V=R97-S(&1I<W!L87EE9"!I;B!T M:&4@<F5C96EV97(@=&\@8F4@=&AE(#Q);G1E9V5R/BP-"@EP<F]G<F5S<U9A M;'5E+B(-"@T*"7!R;V=R97-S4')E<V5N=&5R('9A;'5E.B!P<F]G<F5S<U9A M;'5E(2 A#0HA4')O9W)E<W-$:6%L;V<@8V%T96=O<FEE<T9O<CH@(V%L;&]W M0V%N8V5L(6%C8V5S<VEN9R%P=6)L:6,A("$-"B%0<F]G<F5S<T1I86QO9R!C M871E9V]R:65S1F]R.B C86QL;W=#86YC96PZ(6%C8V5S<VEN9R%P=6)L:6,A M("$-"B%0<F]G<F5S<T1I86QO9R!C871E9V]R:65S1F]R.B C86YS=V5R(7!U M8FQI8R$@(0T*(5!R;V=R97-S1&EA;&]G(&-A=&5G;W)I97-&;W(Z("-C86YC M96PA8V]M;6%N9',A<'5B;&EC(2 A#0HA4')O9W)E<W-$:6%L;V<@8V%T96=O M<FEE<T9O<CH@(V-R96%T94-O;7!O;F5N=',A:6YI=&EA;&EZ:6YG(7!U8FQI M8R$@(0T*(5!R;V=R97-S1&EA;&]G(&-A=&5G;W)I97-&;W(Z("-F;W)K3W!E M<F%T:6]N(6]P97)A=&EO;G,A<'5B;&EC(2 A#0HA4')O9W)E<W-$:6%L;V<@ M8V%T96=O<FEE<T9O<CH@(VEN:71I86QI>F4A:6YI=&EA;&EZ:6YG(7!R:79A M=&4A("$-"B%0<F]G<F5S<T1I86QO9R!C871E9V]R:65S1F]R.B C;W!E<F%T M:6]N(6%C8V5S<VEN9R%P=6)L:6,A("$-"B%0<F]G<F5S<T1I86QO9R!C871E M9V]R:65S1F]R.B C;W!E<F%T:6]N.B%A8V-E<W-I;F<A<'5B;&EC(2 A#0HA M4')O9W)E<W-$:6%L;V<@8V%T96=O<FEE<T9O<CH@(W!R:6]R:71Y(6%C8V5S M<VEN9R%P=6)L:6,A("$-"B%0<F]G<F5S<T1I86QO9R!C871E9V]R:65S1F]R M.B C<')I;W)I='DZ(6%C8V5S<VEN9R%P=6)L:6,A("$-"B%0<F]G<F5S<T1I M86QO9R!C871E9V]R:65S1F]R.B C<')O9W)E<W,A86-C97-S:6YG(7!U8FQI M8R$@(0T*(5!R;V=R97-S1&EA;&]G(&-A=&5G;W)I97-&;W(Z("-Q=65R>4-O M;6UA;F0Z(6-O;6UA;F1S(7!R:79A=&4A("$-"B%0<F]G<F5S<T1I86QO9R!C M871E9V]R:65S1F]R.B C<VAO=R%O<&5R871I;VYS(7!U8FQI8R$@(0T*(5!R M;V=R97-S1&EA;&]G(&-A=&5G;W)I97-&;W(Z("-S:&]W36]D86PA;W!E<F%T M:6]N<R%P=6)L:6,A("$-"B%0<F]G<F5S<T1I86QO9R!C871E9V]R:65S1F]R M.B C=&5X=#HA86-C97-S:6YG(7!U8FQI8R$@(0T*(5!R;V=R97-S1&EA;&]G M(&-A=&5G;W)I97-&;W(Z("-V86QU93HA<'5B;&EC(2 A#0H-"B%0<F]G<F5S M<T1I86QO9R!C;&%S<R!M971H;V1S1F]R(0T*#0IC<F5A=&4Z('9I97=.86UE M(&]P97)A=&EO;CH@;W!E<F%T:6]N#0H)(D%N<W=E<B!A(&YE=R!I;G-T86YC M92!O9B!T:&4@<F5C96EV97(@=VET:"!A('9I97<@:61E;G1I9FEE9"!B>2!V M:65W3F%M90T*"71O(&5V86QU871E('1H92!M;VYA9&EC('9A;'5A8FQE(&%R M9W5M96YT+"!O<&5R871I;VXL('=H96X@=&AE( T*"6EN<W1A;F-E(&ES('-U M8G-E<75E;G1L>2!S:&]W;B H92YG+B!B>2!S96YD:6YG(&ET("-S:&]W36]D M86PI+@T*"5=H96X@=&AE('9I97<@:7,@<VAO=VX@=&AE(&]P97)A=&EO;B!I M<R!E=F%L=6%T960@:6X@82!B86-K9W)O=6YD( T*"7!R;V-E<W,L(&%N9"!I M<R!P87-S960@=&AE('!R;V=R97-S(&1I86QO9R!T;R!B92!U<&1A=&5D('=I M=&@@:71S( T*"7!R;V=R97-S("@C=F%L=64Z(# N+C$P,"P@(W1E>'0Z(&%3 M=')I;F<I+B!)9B!T:&4@:6YS=&%N8V5S(&-A;F-E;"!B=71T;VX-"@EI<R!P M<F5S<V5D+"!T:&5N('1H92!O<&5R871I;VX@:7,@=&5R;6EN871E9"!A;F0@ M=&AE(&%N<W=E<B!I<R!N:6PN($EF('1H92!O<&5R871I;VX@#0H)<G5N<R!T M;R!C;VUP;&5T:6]N+"!T:&5N('1H92!A;G-W97(@:7,@<F5S=6QT(&]F('1H M92!E=F%L=6%T:6]N+B(-"@T*"5XH<V5L9B!C<F5A=&4Z('9I97=.86UE*0T* M"0EO<&5R871I;VXZ(&]P97)A=&EO;B$-"@T*9&5F875L=$UO9&5L#0H)(D%N M<W=E<B!A(&1E9F%U;'0@;6]D96P@=&\@8F4@87-S:6=N960@=&\@=&AE(')E M8V5I=F5R('=H96X@:70-"@EI<R!I;FET:6%L:7IE9"XB#0H-"@E>;FEL(&%S M5F%L=64A#0H-"F5X86UP;&4Q#0H)(D$@<VEM<&QE(&UO9&%L('!R;V=R97-S M(&1I86QO9RX@3F]T:6-E(&AO=R!T:&4@<')O9W)E<W,@=&5X="!C86X@86QS M;R!B92!S970@=VET:&EN#0H)=&AE(&]P97)A=&EO;B!B;&]C:RX@5')Y('!R M97-S:6YG(&-A;F-E;"!T;R!S964@=&AE(&5F9F5C="!O;B!T:&4@86YS=V5R M+@T*"0E0<F]G<F5S<T1I86QO9R!E>&%M<&QE,0T*"2(-"@T*"5YS96QF('-H M;W=-;V1A;%=H:6QE.B!;.G!R;V=R97-S('P@#0H)"3$@=&\Z(#$P,"!D;SH@ M6SII('P@4')O8V5S<V]R('-L965P.B S,"X@<')O9W)E<W,@=F%L=64Z(&D[ M('1E>'0Z(&D@9&ES<&QA>5-T<FEN9RP@)R4G72X@)V-O;7!L971E9"==(0T* M#0IE>&%M<&QE,@T*"2)!('-I;7!L92!M;V1E;&5S<R!P<F]G<F5S<R!D:6%L M;V<N#0H)"7@@.CT@4')O9W)E<W-$:6%L;V<@97AA;7!L93(-"@E4<GD@979A M;'5A=&EN9R!T:&5S92!E>'!R97-S:6]N<R!W:&EL92!T:&4@<')O9W)E<W,@ M9&EA;&]G(&ES('5P.@T*"0EX('!R;V=R97-S+@T*"0EX(&ES0V]N9FER;65D M+@T*"0EX(&%N<W=E<BX-"@DB#0H-"@E>*'-E;&8@;W!E<F%T:6]N.B -"@D) M"5LZ<')O9W)E<W,@?" -"@D)"3$@=&\Z(#$P, T*"0D)"61O.B -"@D)"0D) M6SII('P@#0H)"0D)"5!R;V-E<W-O<B!S;&5E<#H@,3 P+@T*"0D)"0EP<F]G M<F5S<PT*"0D)"0D)=F%L=64Z(&D[#0H)"0D)"0ET97AT.B!I(&1I<W!L87E3 M=')I;F<@+" G)2==+@T*"0D))V-O;7!L971E9"==*0T*"0EC87!T:6]N.B G M36]D96QE<W,@<')O9W)E<W,N+BXG.PT*"0ES:&]W(0T*#0IE>&%M<&QE,PT* M"2)!('-I;7!L92!M;V1A;"!P<F]G<F5S<R!D:6%L;V<@=VET:"!A;B!A;'1E M<FYA=&EV92!V:65W+@T*"0E0<F]G<F5S<T1I86QO9R!E>&%M<&QE,PT*"2(- M"@T*"5XH<V5L9B -"@D)8W)E871E.B G3G5M97)I8R!P<F]G<F5S<R!D:6%L M;V<G#0H)"6]P97)A=&EO;CH@6SIP<F]G<F5S<R!\( T*"0DQ,"!T;SH@,2!B M>3H@+3$@9&\Z(%LZ:2!\('!R;V=R97-S('9A;'5E.B!I+B!0<F]C97-S;W(@ M<VQE97 Z(#0P,%TN("=C;VUP;&5T960G72D-"@D)"6-A<'1I;VXZ("=#;W5N M="!D;W=N("XN+B<[#0H)"0EA;&QO=T-A;F-E;#H@9F%L<V4[#0H)"0ES:&]W M36]D86PA#0H-"FEC;VX-"@DB06YS=V5R<R!A;B!)8V]N('1H870@8V%N(&)E M('5S960@=&\@<F5P<F5S96YT('1H:7,@8VQA<W,N(@T*#0H)7E1I;64@:6-O M;@T*(0T*#0IO<&5R871I;VXZ(&]P97)A=&EO;@T*"2)!;G-W97(@82!N97<@ M:6YS=&%N8V4@;V8@=&AE(')E8V5I=F5R('=I=&@@=&AE(&1E9F%U;'0@=FEE M=R -"@ET;R!E=F%L=6%T92!T:&4@;6]N861I8R!V86QU86)L92!A<F=U;65N M="P@;W!E<F%T:6]N+"!W:&5N('1H92 -"@EI;G-T86YC92!I<R!S=6)S97%U M96YT;'D@<VAO=VX@*&4N9RX@8GD@<V5N9&EN9R!I=" C<VAO=TUO9&%L*2X- M"@E7:&5N('1H92!V:65W(&ES('-H;W=N('1H92!O<&5R871I;VX@:7,@979A M;'5A=&5D(&EN(&$@8F%C:V=R;W5N9" -"@EP<F]C97-S+"!A;F0@:7,@<&%S M<V5D(&$@<')O9W)E<W,@9&EA;&]G('1O(&)E('5P9&%T960@=VET:"!I=',@ M#0H)<')O9W)E<W,@*"-V86QU93H@,"XN,3 P+" C=&5X=#H@85-T<FEN9RDN M($EF('1H92!I;G-T86YC97,@8V%N8V5L(&)U='1O;@T*"6ES('!R97-S960L M('1H96X@=&AE(&]P97)A=&EO;B!I<R!T97)M:6YA=&5D(&%N9"!T:&4@86YS M=V5R(&ES(&YI;"X@268@=&AE(&]P97)A=&EO;B -"@ER=6YS('1O(&-O;7!L M971I;VXL('1H96X@=&AE(&%N<W=E<B!I<R!R97-U;'0@;V8@=&AE(&5V86QU M871I;VXN(@T*#0H)7G-E;&8@8W)E871E.B!S96QF(&1E9F%U;'16:65W(&]P M97)A=&EO;CH@;W!E<F%T:6]N(0T*#0IS:&]W36]D86PZ('9I97=.86UE('=H M:6QE.B!O<&5R871I;VX-"@DB0W)E871E(&$@;F5W(&EN<W1A;F-E(&]F('1H M92!R96-E:79E<B!W:71H(&$@=FEE=R!I9&5N=&EF:65D(&)Y('9I97=.86UE M#0H)=&\@979A;'5A=&4@=&AE(&UO;F%D:6,@=F%L=6%B;&4@87)G=6UE;G0L M(&]P97)A=&EO;BX@5&AE('9I97<@:7,@#0H)9&ES<&QA>65D(&UO9&%L('1O M('1H92!C=7)R96YT(&%C=&EV92!W:6YD;W<N(%1H92!O<&5R871I;VX@:7,@ M979A;'5A=&5D( T*"6EN(&$@8F%C:V=R;W5N9"!P<F]C97-S+"!A;F0@:7,@ M<&%S<V5D(&$@<')O9W)E<W,@9&EA;&]G('1O(&)E('5P9&%T960@=VET:"!I M=',@#0H)<')O9W)E<W,@*"-V86QU93H@,"XN,3 P+" C=&5X=#H@85-T<FEN M9RDN($EF('1H92!I;G-T86YC97,@8V%N8V5L(&)U='1O;B!I<R!P<F5S<V5D M+"!T:&5N( T*"71H92!O<&5R871I;VX@:7,@=&5R;6EN871E9"!A;F0@=&AE M(&%N<W=E<B!I<R!N:6PN($EF('1H92!O<&5R871I;VX@#0H)<G5N<R!T;R!C M;VUP;&5T:6]N+"!T:&5N('1H92!A;G-W97(@:7,@<F5S=6QT(&]F('1H92!E M=F%L=6%T:6]N+B(-"@T*"5XH<V5L9B!C<F5A=&4Z('9I97=.86UE(&]P97)A M=&EO;CH@;W!E<F%T:6]N*0T*"0ES:&]W36]D86PA#0H-"G-H;W=-;V1A;%=H M:6QE.B!O<&5R871I;VX-"@DB0W)E871E(&$@;F5W(&EN<W1A;F-E(&]F('1H M92!R96-E:79E<B!W:71H(&ET<R!D969A=6QT('9I97<L#0H)=&\@979A;'5A M=&4@=&AE(&UO;F%D:6,@=F%L=6%B;&4@87)G=6UE;G0L(&]P97)A=&EO;BX@ M5&AE('9I97<@:7,@#0H)9&ES<&QA>65D(&UO9&%L('1O('1H92!C=7)R96YT M(&%C=&EV92!W:6YD;W<N(%1H92!O<&5R871I;VX@:7,@979A;'5A=&5D( T* M"6EN(&$@8F%C:V=R;W5N9"!P<F]C97-S+"!A;F0@:7,@<&%S<V5D(&$@<')O M9W)E<W,@9&EA;&]G('1O(&)E('5P9&%T960@=VET:"!I=',@#0H)<')O9W)E M<W,@*"-V86QU93H@,"XN,3 P+" C=&5X=#H@85-T<FEN9RDN($EF('1H92!I M;G-T86YC97,@8V%N8V5L(&)U='1O;B!I<R!P<F5S<V5D+"!T:&5N( T*"71H M92!O<&5R871I;VX@:7,@=&5R;6EN871E9"!A;F0@=&AE(&%N<W=E<B!I<R!N M:6PN($EF('1H92!O<&5R871I;VX@#0H)<G5N<R!T;R!C;VUP;&5T:6]N+"!T M:&5N('1H92!A;G-W97(@:7,@<F5S=6QT(&]F('1H92!E=F%L=6%T:6]N+B(- M"@T*"5YS96QF('-H;W=-;V1A;#H@<V5L9B!D969A=6QT5FEE=R!W:&EL93H@ M;W!E<F%T:6]N(2 A#0HA4')O9W)E<W-$:6%L;V<@8VQA<W,@8V%T96=O<FEE M<T9O<CH@(V-R96%T93IO<&5R871I;VXZ(6EN<W1A;F-E(&-R96%T:6]N(7!U M8FQI8R$@(0T*(5!R;V=R97-S1&EA;&]G(&-L87-S(&-A=&5G;W)I97-&;W(Z M("-D969A=6QT36]D96PA<'5B;&EC(2 A#0HA4')O9W)E<W-$:6%L;V<@8VQA M<W,@8V%T96=O<FEE<T9O<CH@(V5X86UP;&4Q(65X86UP;&5S(7!U8FQI8R$@ M(0T*(5!R;V=R97-S1&EA;&]G(&-L87-S(&-A=&5G;W)I97-&;W(Z("-E>&%M M<&QE,B%E>&%M<&QE<R%P=6)L:6,A("$-"B%0<F]G<F5S<T1I86QO9R!C;&%S M<R!C871E9V]R:65S1F]R.B C97AA;7!L93,A97AA;7!L97,A<'5B;&EC(2 A M#0HA4')O9W)E<W-$:6%L;V<@8VQA<W,@8V%T96=O<FEE<T9O<CH@(VEC;VXA M8V]N<W1A;G1S(7!U8FQI8R$@(0T*(5!R;V=R97-S1&EA;&]G(&-L87-S(&-A M=&5G;W)I97-&;W(Z("-O<&5R871I;VXZ(6EN<W1A;F-E(&-R96%T:6]N(7!U M8FQI8R$@(0T*(5!R;V=R97-S1&EA;&]G(&-L87-S(&-A=&5G;W)I97-&;W(Z M("-S:&]W36]D86PZ=VAI;&4Z(6EN<W1A;F-E(&-R96%T:6]N(7!U8FQI8R$@ M(0T*(5!R;V=R97-S1&EA;&]G(&-L87-S(&-A=&5G;W)I97-&;W(Z("-S:&]W K36]D86Q7:&EL93HA:6YS=&%N8V4@8W)E871I;VXA<'5B;&EC(2 A#0H-"@`` ` end |
Free forum by Nabble | Edit this page |