Table Column Widths
Is there any way to make a scrolling table field have column widths that vary? If not, is it possible to add object types so I can write my own, or has someone else already done this? This is a good feature request I think. Trying to show 50 character fields next to fields with 2 or 3 and have them the same width is not going to be good in terms of maximizing the screen real estate I have to work with. Just a thought. Bob Sneidar IT Manager Logos Management Calvary Chapel CM ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Help with Arrays??
I don't know what the heck is going on here, but I know it's making me a wee bit testy. (I don't like needless local variables, what can I say...) Here's the code that works just fine. Please note that I've confirmed the value of x, it is not the problem here. The function returns an Array. put MyFunc( x ) into theArray DisplayPurchaseLine x, theArray The following code fails miserably passing empty for theArray argument; x is passed in just fine: DisplayPurchaseLine x, MyFunc( x ) Why do I need to put the MyFunc() return value (an array) into a local variable first. It clearly makes it out of the function call, but cannot then immediately be used as a parameter. Huh? ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Making the move...
Holy Batcrap, Dan! Like, is it a full moon? Are the planets in alignment?? Did I miss a supernova somewhere obvious??? :-) You know, I have always held that rumours of our supposedly concrete disagreement status are greatly exaggerated. Yeah, I've seen something very like what you are talking about (Point No. 1, that is; probably the others as well). Something very similar is why, although funding has been approved, my FrankenLab won't be fixed anytime soon, if at all. As for your points 2 & 3 (which to me seem to be the samething), I've seen that too. While in the midst of a rather painful msidt (see how it relates to midst??? msidt = master of science in instructional design and technology; sorry for the pun; it was a really dreadful program), we students were in the midst of this small (as in, *really* small) unit on copyrighted materials and fair use in the classroom, and a rather vocal seeming majority of my fellow students stridently held that their mission to educate trumped basic property rights. When I objected, I was basically called a "pie in the sky" and "ivory tower" higher-ed type. And I'll bet their software budget is bigger than mine. Judy On Mon, 20 Mar 2006, Dan Shafer wrote: > OMG, Judy, two things we can agree on in, what?, less than a month? Perhaps > the end of the cycle is imminent! > > :-) > > I spent two years once trying to sell a product into the "education market." > (I use quotation marks because in my experience -- which may well have been > unique for all I know -- there is no such thing as a "market" called > "education".) Here's what I ran into (enough years ago that some of it may > no longer be valid and it specifically applies to K-12, not secondary): > > 1. The decision-maker is often hard to find. This was a real deal-blocker > for us. I'm not kidding. In one case, we found out that the key decision > maker in determing what software a school district (a large one, at that) > would buy was the nephew of the superintendent who worked as an outside > consultant. He wasn't on an org chart and we could not make a direct > presentation to him. That was the extreme but it was only a matter of > degree. > > 2. Educators often cried poor-mouth, seeking deep, deep discounts that > would have resulted in our inability to stay in business but then they also > wanted reliable tech support (including pre-sale) and training. > > 3. Too often, educators felt justified taking our proprietary software and > duplicating it for their fellow educators, on the same basis as #2, i.e., > they were under-funded and under-paid. > > Now I'm not going to argue that educators are adequately compensated let > alone overpaid. And I know that in the U.S. at least the priority we place > on education in our budgets is horrific in contrast to the lip service we > pay to the importance of education in our society. But even programmers have > to eat (though they seem able to subsist of Jolt and Twinkies for extended > periods of time, with the odd pizza tossed in for good measure.) But what > does seem to me to be the case is that, as I think I hear you saying, > educators seem (in general) to be OK with taking advantage of people who > supply software technology to make their jobs easier but are not OK with > others wishing to take advantage of their good nature as altruistic > participants in the social discourse. > > And at the end, I just find this very interesting, not necessariiy negative > or problematic. > > On 3/20/06, Judy Perry <[EMAIL PROTECTED]> wrote: > > I suspect that there are remarkably few educators who would apply > to themselves the sentiment that they seem to demand of software > developers. > > > -- > ~~ > Dan Shafer, Information Product Consultant and Author > http://www.shafermedia.com > Get my book, "Revolution: Software at the Speed of Thought" > >From http://www.shafermediastore.com/tech_main.html > ___ > use-revolution mailing list > use-revolution@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-revolution > ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Get a handler from a script
Jacque- >> The best solution I've come up with for removing block comments is >> >> put the script of SomeObject into tScript >> put token 1 to -1 of tScript into tScript >> > This sounded really cool, but I can't get it to work. :( Really? What isn't it doing? For me it removes all comments that are outside handlers (which is where my block comments are)... -- -Mark Wieder [EMAIL PROTECTED] ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
[OT] Another Bit of HyperHistory
I'd forgotten until this evening that Ward Cunningham wrote the first wikiwiki in HyperCard. I remember him telling me that way back when I was at CNET but I somehow forgot it. Here's an article that elucidates: http://www.eweek.com/print_article2/0,1217,a=173863,00.asp -- ~~ Dan Shafer, Information Product Consultant and Author http://www.shafermedia.com Get my book, "Revolution: Software at the Speed of Thought" >From http://www.shafermediastore.com/tech_main.html ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Making the move...
Ever the metaphorical thinker, this reminds me of good gun safety practices (aka ways NOT to shoot yourself in the foot) - it's all in knowing how to control a powerful tool. Phil Davis (meant in a lighthearted way and limited strictly to the parallel observed - not intended to engender discussion/debate about guns) Mark Smith wrote: I think the point is that when a variable is passed to a function/ handler 'normally', the data in it is duplicated, and if the data is big, this is not as efficient as passing it by reference - obviously, if you need to change the data in the called function/handler, this may have unwanted side-effects, in which case passing it normally is going to be better. Mark On 21 Mar 2006, at 02:20, Sarah Reichelt wrote: On 3/21/06, Rob Cozens <[EMAIL PROTECTED]> wrote: G'day Sarah, In my experience, it's probably due to never passing values by reference. I'm curious as to why you eschew passing by reference. If one needs to pass large variables, why incur the overhead of duplicating the value of the variable before passing it? And if a variable value needed at one level is derived from a routine nested several calls deep, simply passing the variable by reference through the nested calls is the simplest way to get the value back to the original caller. It's not a philosophy, more ignorance :-) I haven't ever really tested it and I have an instinctive feeling that functions should be self-sufficient and shouldn't change anything outside them. Maybe it will suit me better in some circumstances. Cheers, Sarah ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Making the move...
On Mar 20, 2006, at 9:01 PM, Mark Smith wrote: I think the point is that when a variable is passed to a function/ handler 'normally', the data in it is duplicated, and if the data is big, this is not as efficient as passing it by reference - obviously, if you need to change the data in the called function/ handler, this may have unwanted side-effects, in which case passing it normally is going to be better. The problem you raise here is handled in more traditional languages by declaring the reference to be constant. It strikes me that it would not be a big change to expand the use of the "constant" keyword. Then in situations such as Sarah was talking about the handler/function would be declared as not changing the referred to variable, something like on myHandler constant @pByReferenceParameter -- following then should cause compiler error add 1 to @pByReferenceParameter end myHandler There is, of course, another use for references besides the efficiency of not having to copy large data structures: returning more than one value. This use doesn't suffer from the concern Sarah raises about having external effects as, when used this way, the parameter passed in should be empty. There isn't, of course, any guarantee of this other than the caller being careful and writer of the called function being careful to document that the parameter is used for output only. Spence James P. Spencer Rochester, MN [EMAIL PROTECTED] "Badges?? We don't need no stinkin badges!" ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: [?] Mac Classic, 2.6.1, MySQL
I've tried building the application on two different Mac OS 9.2.2 machines (an old iMac and an old UMax ;-) but, as mentioned previously, the application crashes with an error of Type 1001 unless I switch the MySQL libraries then I get a "unsupported database type".. So as it stands, I'm boned in this department...? I'll try the 2.5 and the Valentina work-arounds to see if anything happens with that.. Thanks, -Sean _ Dont just search. Find. Check out the new MSN Search! http://search.msn.click-url.com/go/onm00200636ave/direct/01/ ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Making the move...
I think the point is that when a variable is passed to a function/ handler 'normally', the data in it is duplicated, and if the data is big, this is not as efficient as passing it by reference - obviously, if you need to change the data in the called function/handler, this may have unwanted side-effects, in which case passing it normally is going to be better. Mark On 21 Mar 2006, at 02:20, Sarah Reichelt wrote: On 3/21/06, Rob Cozens <[EMAIL PROTECTED]> wrote: G'day Sarah, In my experience, it's probably due to never passing values by reference. I'm curious as to why you eschew passing by reference. If one needs to pass large variables, why incur the overhead of duplicating the value of the variable before passing it? And if a variable value needed at one level is derived from a routine nested several calls deep, simply passing the variable by reference through the nested calls is the simplest way to get the value back to the original caller. It's not a philosophy, more ignorance :-) I haven't ever really tested it and I have an instinctive feeling that functions should be self-sufficient and shouldn't change anything outside them. Maybe it will suit me better in some circumstances. Cheers, Sarah ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Dreamcard Won't Recognize Hypercard Stacks
On 3/21/06, Iden Rosenthal <[EMAIL PROTECTED]> wrote: > I have just installed Dreamcard 2.7 and tried to open some Hypercard > Stacks to convert them. They are unrecognized (grayed) in the file > open dialog. Is there something I've missed? The stacks will run in > Hypercard Player under Classic mode in OS X 10.4.5. They won't open > in either Oracle Card or Spinnaker Plus (message says they are "not > okay"). I realize these last two have nothing to do with Dreamcard > but I thought I'd mention it just in case anyone else out there has > any experience there as well. At the top of the Open stack dialog is a popup menu labelled "Enable". You need to set this to "All stacks" to un-gray HyperCard stacks. (In Windows, this may be at the bottom of the dialog, but I know on OS X, it is at the top.) Cheers, Sarah ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Making the move...
Well I think you are right - there would be better ways to split out segments of the script, and if I find more than one routine neededing to do the same things, I go to the effort of doing it. However at the moment, I am mainly concerned with converting HyperCard scripts to Rev, and so I like to change as little as possible, to make sure I don't mess anything up. Cheers, Sarah On 3/21/06, Geoff Canyon <[EMAIL PROTECTED]> wrote: > Do you have an example? I agree that if you end up passing in a > handful of arguments by reference, you haven't accomplished much by > breaking out the routine. The question is if there isn't a better way > to slice the routine, where that wouldn't be necessary. > > On Mar 20, 2006, at 4:29 AM, Sarah Reichelt wrote: > > > In my experience, it's probably due to never passing values by > > reference. If I am working on a routine that generates multiple > > variables, then acts on them, it is easier to keep it all together > > than to try and transfer more than one variable back & forth between > > handlers & functions. > > > > A separate function is great if it only has to return one variable, > > but as soon as it acts on more than one, I find it easier to leave > > that code as part of the main handler. > > > > Of course, if a segment of code is used by more than one handler, it's > > worth the effort to split it out, but otherwise, I'm not too fussed > > about keeping handlers small. Good commenting can overcome any > > problems interpreting it later :-) > > ___ > use-revolution mailing list > use-revolution@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-revolution > ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Making the move...
On 3/21/06, Rob Cozens <[EMAIL PROTECTED]> wrote: > > G'day Sarah, > > > In my experience, it's probably due to never passing values by > > reference. > > I'm curious as to why you eschew passing by reference. > > If one needs to pass large variables, why incur the overhead of > duplicating the value of the variable before passing it? And if a > variable value needed at one level is derived from a routine nested > several calls deep, simply passing the variable by reference through > the nested calls is the simplest way to get the value back to the > original caller. > It's not a philosophy, more ignorance :-) I haven't ever really tested it and I have an instinctive feeling that functions should be self-sufficient and shouldn't change anything outside them. Maybe it will suit me better in some circumstances. Cheers, Sarah ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: How can I keep selected text hilited?
On Mar 20, 2006, at 4:34 PM, Dr. Robert E. Ball wrote: Dan and Mark -- thank you so much. The selectionChanged was exactly what I needed, but with the backgroundColor changed to yellow, not the foregroundColor (which makes the text yellow, not the background). Give this a try: on selectionChanged if the backGroundColor of the selectedChunk is 255,255,0 then set the backGroundColor of the selectedChunk to 255,255,255 else set the backGroundColor of the selectedChunk to 255,255,0 end if end selectionChanged Mark Talluto -- CANELA Software http://www.canelasoftware.com ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: How can I keep selected text hilited?
On Mar 20, 2006, at 4:34 PM, Dr. Robert E. Ball wrote: Dan and Mark -- thank you so much. The selectionChanged was exactly what I needed, but with the backgroundColor changed to yellow, not the foregroundColor (which makes the text yellow, not the background). Yup...the backgroundColor is a better choice. I am working on a better way to reset it in the event a user accidentally highlites something by accident. I'll post it in a moment once it work a bit better. I just crashed Rev 2.6.1 working on this. That is another issue though. Mark Talluto -- CANELA Software http://www.canelasoftware.com ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Draw spokes on a wheel
On Mar 18, 2006, at 8:11 AM, Jim Hurley wrote: For fun and games with rolling you may want to look at: go url " http://home.infostations.net/jhurley/Rolling.rev"; This took away a lot of my productivity when I first saw this. Incredible stuff indeed! Run Rev has expressed an interest in implementing TG in Revolution. Be nice to have a new control, a turtle control (multiple turtles like multiple graphic objects) that responds to the TG vocabulary. This would be very nice. I could have used this when I was a teacher. I'll be using it with my son soon. Mark Talluto -- CANELA Software http://www.canelasoftware.com ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: How can I keep selected text hilited?
Dan and Mark -- thank you so much. The selectionChanged was exactly what I needed, but with the backgroundColor changed to yellow, not the foregroundColor (which makes the text yellow, not the background). On 3/20/06 4:16 PM, "Mark Talluto" <[EMAIL PROTECTED]> wrote: > > On Mar 20, 2006, at 1:43 PM Mar 20, 2006, Robert E. Ball wrote: > >> I want the user of my program to be able to hilite portions of a >> text field on a given card (similar to using a yellow hilite pen on >> a book page -- I have set hiliteColor to yellow) and then to have >> the hilited text show up when the user returns to the card. >> >> When I first double click on a word in a field, the selected word's >> backgroundColor turns yellow, as it should. However, when I double >> click on another word in the field, the yellow backgroundColor of >> the previously selected word is removed and the backgroundColor of >> the second selected word is yellow. I understand why this works -- >> a new word has been selected. However, is it possible to write a >> script to save the yellow backgroundColor of all selected words. In >> other words, I would like my cards to look just like the page of a >> book that has hilited text. > > There probably is a few ways this can be done. The first thing I > would try is to store the selectedChunk information everytime there > is a mouseUp. You could store this in a variable or a custom property. > > A quick and dirty solution would be the following: > > on selectionChanged >put the selectedChunk >set the foreGroundColor of the selectedChunk to 255,0,0 > end selectionChanged > ___ > use-revolution mailing list > use-revolution@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-revolution > -- Robert E. Ball, PhD Distinguished Professor, Emeritus Department of Aeronautics and Astronautics Naval Postgraduate School Monterey, California ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: How can I keep selected text hilited?
Actually, that should be backColor, not foreColor. Sorry for the confusion. On 3/20/06, Mark Talluto <[EMAIL PROTECTED]> wrote: > > > On Mar 20, 2006, at 1:43 PM Mar 20, 2006, Robert E. Ball wrote: > > > I want the user of my program to be able to hilite portions of a > > text field on a given card (similar to using a yellow hilite pen on > > a book page -- I have set hiliteColor to yellow) and then to have > > the hilited text show up when the user returns to the card. > > > > When I first double click on a word in a field, the selected word's > > backgroundColor turns yellow, as it should. However, when I double > > click on another word in the field, the yellow backgroundColor of > > the previously selected word is removed and the backgroundColor of > > the second selected word is yellow. I understand why this works -- > > a new word has been selected. However, is it possible to write a > > script to save the yellow backgroundColor of all selected words. In > > other words, I would like my cards to look just like the page of a > > book that has hilited text. > > There probably is a few ways this can be done. The first thing I > would try is to store the selectedChunk information everytime there > is a mouseUp. You could store this in a variable or a custom property. > > A quick and dirty solution would be the following: > > on selectionChanged > put the selectedChunk > set the foreGroundColor of the selectedChunk to 255,0,0 > end selectionChanged > ___ > use-revolution mailing list > use-revolution@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-revolution > -- ~~ Dan Shafer, Information Product Consultant and Author http://www.shafermedia.com Get my book, "Revolution: Software at the Speed of Thought" >From http://www.shafermediastore.com/tech_main.html ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: How can I keep selected text hilited?
On Mar 20, 2006, at 1:43 PM Mar 20, 2006, Robert E. Ball wrote: I want the user of my program to be able to hilite portions of a text field on a given card (similar to using a yellow hilite pen on a book page -- I have set hiliteColor to yellow) and then to have the hilited text show up when the user returns to the card. When I first double click on a word in a field, the selected word's backgroundColor turns yellow, as it should. However, when I double click on another word in the field, the yellow backgroundColor of the previously selected word is removed and the backgroundColor of the second selected word is yellow. I understand why this works -- a new word has been selected. However, is it possible to write a script to save the yellow backgroundColor of all selected words. In other words, I would like my cards to look just like the page of a book that has hilited text. There probably is a few ways this can be done. The first thing I would try is to store the selectedChunk information everytime there is a mouseUp. You could store this in a variable or a custom property. A quick and dirty solution would be the following: on selectionChanged put the selectedChunk set the foreGroundColor of the selectedChunk to 255,0,0 end selectionChanged ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: How can I keep selected text hilited?
Robert Sure. Just set the foreColor of the selectedText to the hiliteColor. That makes the change sticky. On 3/20/06, Robert E. Ball <[EMAIL PROTECTED]> wrote: > > I want the user of my program to be able to hilite portions of a text > field on a given card (similar to using a yellow hilite pen on a book > page -- I have set hiliteColor to yellow) and then to have the > hilited text show up when the user returns to the card. > > When I first double click on a word in a field, the selected word's > backgroundColor turns yellow, as it should. However, when I double > click on another word in the field, the yellow backgroundColor of the > previously selected word is removed and the backgroundColor of the > second selected word is yellow. I understand why this works -- a new > word has been selected. However, is it possible to write a script to > save the yellow backgroundColor of all selected words. In other > words, I would like my cards to look just like the page of a book > that has hilited text. > ___ > use-revolution mailing list > use-revolution@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-revolution > -- ~~ Dan Shafer, Information Product Consultant and Author http://www.shafermedia.com Get my book, "Revolution: Software at the Speed of Thought" >From http://www.shafermediastore.com/tech_main.html ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Making the move...
OMG, Judy, two things we can agree on in, what?, less than a month? Perhaps the end of the cycle is imminent! :-) I spent two years once trying to sell a product into the "education market." (I use quotation marks because in my experience -- which may well have been unique for all I know -- there is no such thing as a "market" called "education".) Here's what I ran into (enough years ago that some of it may no longer be valid and it specifically applies to K-12, not secondary): 1. The decision-maker is often hard to find. This was a real deal-blocker for us. I'm not kidding. In one case, we found out that the key decision maker in determing what software a school district (a large one, at that) would buy was the nephew of the superintendent who worked as an outside consultant. He wasn't on an org chart and we could not make a direct presentation to him. That was the extreme but it was only a matter of degree. 2. Educators often cried poor-mouth, seeking deep, deep discounts that would have resulted in our inability to stay in business but then they also wanted reliable tech support (including pre-sale) and training. 3. Too often, educators felt justified taking our proprietary software and duplicating it for their fellow educators, on the same basis as #2, i.e., they were under-funded and under-paid. Now I'm not going to argue that educators are adequately compensated let alone overpaid. And I know that in the U.S. at least the priority we place on education in our budgets is horrific in contrast to the lip service we pay to the importance of education in our society. But even programmers have to eat (though they seem able to subsist of Jolt and Twinkies for extended periods of time, with the odd pizza tossed in for good measure.) But what does seem to me to be the case is that, as I think I hear you saying, educators seem (in general) to be OK with taking advantage of people who supply software technology to make their jobs easier but are not OK with others wishing to take advantage of their good nature as altruistic participants in the social discourse. And at the end, I just find this very interesting, not necessariiy negative or problematic. On 3/20/06, Judy Perry <[EMAIL PROTECTED]> wrote: I suspect that there are remarkably few educators who would apply to themselves the sentiment that they seem to demand of software developers. -- ~~ Dan Shafer, Information Product Consultant and Author http://www.shafermedia.com Get my book, "Revolution: Software at the Speed of Thought" >From http://www.shafermediastore.com/tech_main.html ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: [ANN] STS XML Library 2.0 Now Available
Thanks, Ken. Nice bit of work. On 3/19/06, Ken Ray <[EMAIL PROTECTED]> wrote: > > Hey, everyone! > > The long-awaited, and long-promised STS XML Library 2.0 has finally been > released, adding node path support, search and array methods, conditional > validation and plugin support to the all-Transcript XML parsing library. > It > is also fully Revolution Interoperability (RIP) compliant, and ships with > a > special Compatibility Library that enables current 1.x users the ability > to > easily transition to the new 2.0 syntax. > > The new plugin architecture enables third parties to provide libraries > that > can utilize the XML Library for specialized XML parsing, and Version 2.0 > comes with a plugin for manipulating RSS feed documents. > > The web site, in addition to providing more information about the library, > also includes a full comparison of how the STS XML Library compares with > the > revXML.DLL that comes with Revolution. It also includes the full > documentation of the library, so you can look it over to decide for > yourself > if the STS XML Library if for you. > > Read more about the XML Library at: > > http://www.sonsothunder.com/products/xmllib/xmllib.htm > > Enjoy! > > Ken Ray > Sons of Thunder Software > Web site: http://www.sonsothunder.com/ > Email: [EMAIL PROTECTED] > > ___ > use-revolution mailing list > use-revolution@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-revolution > -- ~~ Dan Shafer, Information Product Consultant and Author http://www.shafermedia.com Get my book, "Revolution: Software at the Speed of Thought" >From http://www.shafermediastore.com/tech_main.html ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: [?] Mac Classic, 2.6.1, MySQL
Sean, Yep, I did, and didn't get the classic version to work unless I created the classic standalone from RR 2.5 running in classic mode... I could create the Windows and OS X version from my OS X Revolution, but never got the classic version to run. Lazy as I am, I didn't spend much time on it, just created the classic version on my old OS 9 Mac... Warm regards, Ton Kuypers Digital Media Partners bvba Tel. +32 (0)477 / 739 530 Fax +32 (0)14 / 71 03 04 http://www.dmp-int.com On 20-mrt-06, at 20:52, Sean Shao wrote: I'm working on a small project that needs to run on Mac OS X, Mac Classic (9.2.2) and Windows and that uses the database library to connect to a MySQL server. Everything runs fine on OS X and Windows, and it runs fine in the IDE on Mac Classic. When I compile a Classic application from the IDE on the Classic Mac the application crashes on launch with a Type 1001 error. I've noticed that the MySQL library file from the 2.6.1 Classic IDE is only 244 KiB yet the one that's in my OS X 2.6.1 IDE is over a meg big. When I replace the MySQL library in the compiled app's folder the application successfully launches, but I get a Rev DB error "Unsupported database type". Has anyone successfully made a Classic app using the database library to connect to a MySQL server, or has everyone moved forward to OS X? -Sean _ Express yourself instantly with MSN Messenger! Download today - it's FREE! http://messenger.msn.click-url.com/go/onm00200471ave/ direct/01/ ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution Met vriendelijke groeten, Ton Kuypers Digital Media Partners bvba Tel. +32 (0)477 / 739 530 Fax +32 (0)14 / 71 03 04 http://www.dmp-int.com ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Image Storage - Optimization
Hi Sivakatirswami, Never did hear how you guys did in that horrible flood last week. Hope all is OK! Regrading what I think you did and the subsequent results: First, when describing importing an image, it's a good idea to give pixel dimenstions and not inches. So, I assume at 72dpi an 3 x 5 image is 216 x 360 which is 227.8K raw imagedata. The reason it was 80K as a JPG file was due to the JPG compression. When saving a raw image in a stack, Rev applies its own non-destructive compression to it reducing it from 227K to 54K. The compression applied is not gZip as gZip is not optimized for compressing images. Just doing the following blows up the stack to 305K: set the altImageData of this stack to the imageData of img 1 delete img 1 This is because the imagedata is a pixel for pixel exact representation of what the image is. No compression. Starting over and putting: set the altImageData of this stack to compress (the imageData of img 1) delete img 1 reveals a stack 71K in size. You see, the compress function doesn't work as good as the built-in image compression which created a 54K stack. Scaling the image larger doesn't add anything to the stack size IF you don't store the image as imageData, but IF YOU DO capture the imagedata, then you are accessing that many more pixels and that much more imageData, thus creating a larger stack. Though the image itself has gained no higher resolution (image quality) as you can't make an image larger and increase resolution without some tricky algorithms. The whole export thing being smaller you have going on is due only to the JPEG compression setting. Also remember, if you're resizing DOWN (as in creating thumbnails) setting the resizeQuality of an image to best enables bilinear sampling, which looks better than the default nearest neighbor sampling (though it takes slightly longer). HTH, Chipp ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
How can I keep selected text hilited?
I want the user of my program to be able to hilite portions of a text field on a given card (similar to using a yellow hilite pen on a book page -- I have set hiliteColor to yellow) and then to have the hilited text show up when the user returns to the card. When I first double click on a word in a field, the selected word's backgroundColor turns yellow, as it should. However, when I double click on another word in the field, the yellow backgroundColor of the previously selected word is removed and the backgroundColor of the second selected word is yellow. I understand why this works -- a new word has been selected. However, is it possible to write a script to save the yellow backgroundColor of all selected words. In other words, I would like my cards to look just like the page of a book that has hilited text. ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Where has all the Object Documentation gone?
Cal Horner wrote: Back in the good ol' days, those of 2.6, 2.5 and earlier, there was a very effective tool (for me) in the Revolution on-line documentation. It even had its own button. It was called OBJECTS. It seems to have gone the way of the Dodo or have the Dodos simply left it out of 2.7? It is mostly still there but access is different. Right-click on the column headings and choose the object you want to display. A column is added and all language elements that are used by that object will be checkedmarked. You can sort by that column to put all the object's language elements next to each other. There are still some things missing; for example, "all objects" isn't an easy category to isolate. -- Jacqueline Landman Gay | [EMAIL PROTECTED] HyperActive Software | http://www.hyperactivesw.com ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: ANN: Email Obfuscator
Jim- Sunday, March 19, 2006, 9:48:38 PM, you wrote: > Thanks for the great snippet. > One of my clients will be thrilled Monday when he sees it! Well, your client will probably like the new version better. I just uploaded a v1.1 version, which can handle command line arguments if it's made into a standalone. I tried to get this working yesterday but my brain wasn't cooperating with my fingers. And I added a button to create a test web page while I was at it. EmailObfuscator -u [EMAIL PROTECTED] -v "hello, bucko" -x > result.html -- -Mark Wieder [EMAIL PROTECTED] ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Get a handler from a script
Mark Wieder wrote: Geoff- Sunday, March 19, 2006, 5:12:04 PM, you wrote: This would still be subject to failure if, anywhere in the script, /* or */ appeared _not_ as block comment delimiters, but as part of a string. The best solution I've come up with for removing block comments is put the script of SomeObject into tScript put token 1 to -1 of tScript into tScript This sounded really cool, but I can't get it to work. :( -- Jacqueline Landman Gay | [EMAIL PROTECTED] HyperActive Software | http://www.hyperactivesw.com ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Image Storage - Optimization
Sivakatirswami wrote: This is a spin off from my earlier thread on DRM for images in stacks. In experiments with putting compressed imageData into a custom prop I discovered it bloated the size of the stack. I then tested "recovery" of that data to an original jpeg size, with some very interesting results, possibly "stumbling" on an optimization feature, I may need my eyes tested, or at least try this same test on images with intricate "edges" and with photos of peoples faces... Someone with more knowledge should really address this, but what I think is happening is that you are trying to compress an image that is already compressed, which can actually add size to the file rather than decrease it. 1) import 3 X 5 imag 80k .jpeg (in this case NASA space shot) 2) Scale the image way up on the card (4 times) so it becomes the whole background of the card 3) save stack: stack size: 80 K This image was probably already compressed with jpg compression to 80K, and was much bigger when expanded. 4) set the uStuff of this card to compress(the imageData of img 1) put "" into img 1 5) save stack: stack size 1.2meg! ouch! Here's where I'm guessing, but it may be that what you are compressing is the fully expanded jpg rather then the stored compressed version. I'm not sure though. Someone else may know. 6) try to recover: 7) set the imageData of img 1 to decompress(the uStuff of this card) 8) scale down the image to 3 X 5 9) set JPEGcompression to 40 10) export image 1 to someFile.jpg as JPEG; delete image 1 11) export image on disk is only 27K! You've changed both the compression ratio, apparently to a tighter compression, and the original size of the image, which reduces its file size. 12) import someFile.jpg back into the stack, save stack 13) stack size 27 k! When you re-import, you've imported a more tightly compressed and smaller jpg. I cannot see *any* difference in the two images! but one stack is 80K and the second one is 27K. For photos, I've found that you can set the jpg compression to a very tight amount without losing much quality at all. It doesn't work so well with images that contain line drawings, for example, but photos are excellent. I think in your situation it would work very well to open your images in an image editor, scale them down to a smaller size, re-save them at very tight compression, and then import them into your stack. Set the custom property to the imageData without using any Rev compression at all; the original file size should be retained. When you display the image in an image object in the stack, Rev will automatically decompress it and expand it to its full size for display, leaving the original property alone. If you need to set the display size to something larger than the original size, do that after you've put the imagedata into the image object. Set the lockloc of the image object to true and then set its height and width to what you want. Rev will scale it for display without changing the size of the stored imagedata property. -- Jacqueline Landman Gay | [EMAIL PROTECTED] HyperActive Software | http://www.hyperactivesw.com ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Where has all the Object Documentation gone?
Back in the good ol' days, those of 2.6, 2.5 and earlier, there was a very effective tool (for me) in the Revolution on-line documentation. It even had its own button. It was called OBJECTS. It seems to have gone the way of the Dodo or have the Dodos simply left it out of 2.7? My question is simply this. Has anyone been able to incorporate it back into 2.7 documentation. Or, are you like me, loading in 2.6 for that one feature? Yes, I know some of you have gone back to 2.6.1 in its entirety. BTW, This is the only complaint I have about 2.7. It hasn't fallen over once since I installed. And it seems to do everything I ask of it. Perhaps I got the prize in the Cracker jacks box? TIA Cal ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: DRM for Images and Text in Stacks
On Mar 18, 2006, at 2:39 AM Mar 18, 2006, Sivakatirswami wrote: if the environment is "development" then quit does that not prevent someone from opening it up in the IDE? mmm. I'm reviewing all the memos to date on this and see you already mentioned this. OK yes, I think this is "doable" I will try it. I wonder how hackable this could be from inside the IDE if one were to place that line into just the script of the substack "library" This will not work as all one has to do is lock the messages before opening the stack. Mark Talluto -- CANELA Software http://www.canelasoftware.com ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: [?] Mac Classic, 2.6.1, MySQL
Sean, This is a strange one. I've seen this before, and if I remember correctly, the problem is that database applications, for whatever reason, are linked to the Valentina external on Mac Classic. Whether you're building for Valentina or not. There is a bug report on it, though I don't have the number handy. The workaround is to build your standalone with Valentina support as well as MySQL support. The part I can't remember is if it's necessary to include the Valentina library with your standalone or not. You may have to experiment with that. Hopefully this'll help you get things figured out. Chris On Mar 20, 2006, at 12:52 PM, Sean Shao wrote: I'm working on a small project that needs to run on Mac OS X, Mac Classic (9.2.2) and Windows and that uses the database library to connect to a MySQL server. Everything runs fine on OS X and Windows, and it runs fine in the IDE on Mac Classic. When I compile a Classic application from the IDE on the Classic Mac the application crashes on launch with a Type 1001 error. I've noticed that the MySQL library file from the 2.6.1 Classic IDE is only 244 KiB yet the one that's in my OS X 2.6.1 IDE is over a meg big. When I replace the MySQL library in the compiled app's folder the application successfully launches, but I get a Rev DB error "Unsupported database type". Has anyone successfully made a Classic app using the database library to connect to a MySQL server, or has everyone moved forward to OS X? -Sean _ Express yourself instantly with MSN Messenger! Download today - it's FREE! http://messenger.msn.click-url.com/go/onm00200471ave/ direct/01/ ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Chris Sheffield Read Naturally The Fluency Company http://www.readnaturally.com -- ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Dreamcard Won't Recognize Hypercard Stacks
Iden Rosenthal wrote: I have just installed Dreamcard 2.7 and tried to open some Hypercard Stacks to convert them. They are unrecognized (grayed) in the file open dialog. Is there something I've missed? The stacks will run in Hypercard Player under Classic mode in OS X 10.4.5. They won't open in either Oracle Card or Spinnaker Plus (message says they are "not okay"). I realize these last two have nothing to do with Dreamcard but I thought I'd mention it just in case anyone else out there has any experience there as well. If the stacks are in the old 1.0 format, they won't import. You'll have to open them in HC 2.0 or later and choose "Convert stack" from the File menu. That will fix them. That said, there's a bug in the current release of Dreamcard/Revolution that prevents opening HC stacks. The problem has already been fixed, and will be in the next incremental release which is due out any time now. -- Jacqueline Landman Gay | [EMAIL PROTECTED] HyperActive Software | http://www.hyperactivesw.com ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: 2.7 bugs in variable watcher, table fields
On 3/20/06 10:25 AM, "Sumner,Walt" <[EMAIL PROTECTED]> wrote: > Anybody else having these problems? > > 1. > Mac OS X: > Run a script with a breakpoint. > Open the message watcher at the breakpoint. > Open the variable watcher after opening the message watcher. > Variable watcher echos variable names, refuses to display variable values. > Close message watcher. > Step forward (which ought to have a keyboard equivalent, by the way). Try the spacebar to step forward. Jim Ault Las Vegas ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Making the move...
On Mar 19, 2006, at 12:55 PM, Mark Wieder wrote: It's probably my forth background, but I'm mildly allergic to routines that don't fit in their entirety onto my screen. -- -Mark Wieder [EMAIL PROTECTED] Ah, I just realized why I'm writing overly complex handlers and not using functions... a 30" Cinema Display :-( Kachoo! ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
[?] Mac Classic, 2.6.1, MySQL
I'm working on a small project that needs to run on Mac OS X, Mac Classic (9.2.2) and Windows and that uses the database library to connect to a MySQL server. Everything runs fine on OS X and Windows, and it runs fine in the IDE on Mac Classic. When I compile a Classic application from the IDE on the Classic Mac the application crashes on launch with a Type 1001 error. I've noticed that the MySQL library file from the 2.6.1 Classic IDE is only 244 KiB yet the one that's in my OS X 2.6.1 IDE is over a meg big. When I replace the MySQL library in the compiled app's folder the application successfully launches, but I get a Rev DB error "Unsupported database type". Has anyone successfully made a Classic app using the database library to connect to a MySQL server, or has everyone moved forward to OS X? -Sean _ Express yourself instantly with MSN Messenger! Download today - it's FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/ ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Making the move...
On Mar 14, 2006, at 3:17 PM, [EMAIL PROTECTED] wrote: So I anticipate that the web apps would be VERY simple, and it might even be possible to push the date into something like PHP- Fusion or Joomla! Joomla = NO WordPress = YES e107 = YES : ) from one who has done way too much experimentation with open source CMS apps! ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Making the move...
Marielle, I believe this response to Chipp is a unfair. The post you cite regarding Jerry was apologized for almost immediately after he realized that he sent it to the list and not to Jerry personally. And I seem to recall Jerry being nearly abusive in the posts sent around that time. I don't have the time at present to go google pipermail to cite each and every post, but you might wish to do so to revisit the issue in its larger context. As for Richmond, my impression (for what very little it is possibly worth) is that, while he is perhaps an individual of passion and industriousness, he can also be a tad on the nasty side (private and public mails) and drove me nearly stark raving batty with his continued whining about why he couldn't have Rev for free while the rest of us were paying as well as we could to update our licenses and do our part to help the company maintain revenue needed to fix whatever it was that any of us might have been bitching about to get fixed. Teachers get paid for their teaching assignments (not alot, I'll concede). Mightn't all students all similarly insist that 'information wants to be free' and that teachers should just give their time away and beg on the streets for daily bread? Outside of Socrates (whose wife was continually begging him to go build walls and the like), I suspect that there are remarkably few educators who would apply to themselves the sentiment that they seem to demand of software developers. Judy ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Making the move...
On Mar 14, 2006, at 6:40 AM, [EMAIL PROTECTED] wrote: Josh, Very strong statements. Wow! If I may ask for further clarification... I have two questions I'd love you expound upon. 1) RealBasic -- that's the main rival, as I see it. I haven't written big enough apps to test, but it seem that the compiler is pretty fast. I wonder how they compare in development and upkeep of for database projects. What are your thoughts about the 2 development environments? We developed a product in RealBasic a few years ago and never released it- (Director was not OS X compatible yet and so not an option). At that time (several years ago) we found the compiler slow and the general performance atrocious (rollover graphics working intermittently, slowly, sticking on over or down states, QT movies stuttering. Of course a lot may have changed since then... 2) Revolution vs Ruby on Rails? You mean to say you use Revolution to write browser enabled web-apps? Something I could access with Firefox? If so, I'd love to hear more. Read Richard Gaskin's article about "Beyond the Browser". www.fourthworld.com/embassy/articles/netapps.html> Everyone is going nuts over Web 2.0, AJAX, Ruby on Rails... sure, for many applications (like, a website for example!) running something in a browser makes sense. For any serious business or media application, all the days of trying to make Javascript work across browsers, degrade gracefully, etc. can be better spent making the app better! Just like you have to download iTunes, RealPlayer, Google Earth, etc., an independent executable that communicates with a remote shared database makes way more sense to me than trying to force a browser to do more than pictures and text. The exception is Flash, an amazing technology that runs in a browser, but sadly, the dev environment seems more suited for masochists than people who just want the job done... before lunch. Just my .03 (inflation) Thanks again for you very insightful comments. I really appreciate them. Michael ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Making the move...
Rob- Monday, March 20, 2006, 10:04:01 AM, you wrote: > Thanks for getting me to revisit the handler, Geoff: "fieldBelimiter" > was a bug waiting to bite me. ...and that's why I'm such a stickler for declaring variables. If the compiler can find your bugs for you, why not let it do the work? -- -Mark Wieder [EMAIL PROTECTED] ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Making the move...
Hi Jim, I suppose you also have a "SerendipityDo_Library.rev" It's still a work in process; but will be released as "SerendipityDoDa_Library.rev" so folks won't think it's SerendipityDoDo. :{`) Rob Cozens CCW, Serendipity Software Company "And I, which was two fooles, do so grow three; Who are a little wise, the best fooles bee." from "The Triple Foole" by John Donne (1572-1631) ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Image Storage - Optimization
This is a spin off from my earlier thread on DRM for images in stacks. In experiments with putting compressed imageData into a custom prop I discovered it bloated the size of the stack. I then tested "recovery" of that data to an original jpeg size, with some very interesting results, possibly "stumbling" on an optimization feature, I may need my eyes tested, or at least try this same test on images with intricate "edges" and with photos of peoples faces... 1) import 3 X 5 imag 80k .jpeg (in this case NASA space shot) 2) Scale the image way up on the card (4 times) so it becomes the whole background of the card 3) save stack: stack size: 80 K 4) set the uStuff of this card to compress(the imageData of img 1) put "" into img 1 5) save stack: stack size 1.2meg! ouch! 6) try to recover: 7) set the imageData of img 1 to decompress(the uStuff of this card) 8) scale down the image to 3 X 5 9) set JPEGcompression to 40 10) export image 1 to someFile.jpg as JPEG; delete image 1 11) export image on disk is only 27K! 12) import someFile.jpg back into the stack, save stack 13) stack size 27 k! I immediately assume "we probably have terrible degradation from multiple interpolations..the small stack must look awful next to the stack with the original image" and set about checking that. Make new stack and import the original 80K image... open two stack side by side: one is 80K in size and the other is 27 K in size, they both started out with the same image as data.. I cannot see *any* difference in the two images! but one stack is 80K and the second one is 27K. Either some jpeg artifact desensitivity filters got stuck in my eyes and I am missing the differences that some more critical eye might see. Or I may have stumbled on some algorithm for optimizing files sizes for imported images. I'm sure there are many underlying variables I am not seeing in particular. But if it is true, it's has some major implications for image storage and stack size optimization. Sivakatirswami ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Get a handler from a script
Geoff- Sunday, March 19, 2006, 5:12:04 PM, you wrote: > This would still be subject to failure if, anywhere in the script, /* > or */ appeared _not_ as block comment delimiters, but as part of a > string. The best solution I've come up with for removing block comments is put the script of SomeObject into tScript put token 1 to -1 of tScript into tScript -- -Mark Wieder [EMAIL PROTECTED] ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
2.7 bugs in variable watcher, table fields
Anybody else having these problems? 1. Mac OS X: Run a script with a breakpoint. Open the message watcher at the breakpoint. Open the variable watcher after opening the message watcher. Variable watcher echos variable names, refuses to display variable values. Close message watcher. Step forward (which ought to have a keyboard equivalent, by the way). Variable watcher displays variable values. Very confusing until you realize that there is an ugly interaction with the message watcher. 2. Windows XP tablet Save and close all Rev projects that matter to you. Create a label field to sit above a field that will have tab stops. The label field will provide several column headers. Open the property inspector andselect "contents" Type "Column 1" & tab & "Column 2" & tab & "Column 3" (without the quotes and ampersands, just type three column headers) Click the table icon. Nothing is aligned, but I can still work. Deselect the table icon. Now the contents are wrapped, but they are not supposed to be. Select the wrap icon. Nothing happens (already wrapped). Deselect the wrap icon. I can not see, scroll to, or select the text "Column 1". Select the wrap icon - there it is again, apparently OK. Go to the property drop list and select "Table". Open the task manager since Rev has stopped responding. Check performance. Probably pegged at 100%, of which 96%+/-3% is Rev. Wait <1 minute. Fan kicks in. Let laptop run for 10 minutes while preparing cookie dough. Press right back corner of laptop over raw flattened cookie dough. Cookie will be ready to eat in 5 - 10 minutes. Kill Rev process. Fan will stop in a minute or two. The problems with tables are getting pretty old, folks. As much as I love programming in X-Talk and having instant cross-platform capabilities, it is embarrassing to admit that I have to work around all these bugs, or to lose work, etc, because I don't want to work in a "real" language. Please fix the bugs. --Walt Sumner ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Zoom/maximize box
Sarah, your suggestion to use the parameters of the resizeStack message works perfectly. Indeed, I was using the stack's properties before they were updated. Thanks for the help, that one was driving me crazy! Jon ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Making the move...
Moi: if itemNumber = 0 then put recordKey&fieldBelimiter after returnRecord Thanks for getting me to revisit the handler, Geoff: "fieldBelimiter" was a bug waiting to bite me. Rob Cozens CCW, Serendipity Software Company "And I, which was two fooles, do so grow three; Who are a little wise, the best fooles bee." from "The Triple Foole" by John Donne (1572-1631) ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Dreamcard Won't Recognize Hypercard Stacks
I have just installed Dreamcard 2.7 and tried to open some Hypercard Stacks to convert them. They are unrecognized (grayed) in the file open dialog. Is there something I've missed? The stacks will run in Hypercard Player under Classic mode in OS X 10.4.5. They won't open in either Oracle Card or Spinnaker Plus (message says they are "not okay"). I realize these last two have nothing to do with Dreamcard but I thought I'd mention it just in case anyone else out there has any experience there as well. ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Making the move...
On 3/20/06 9:28 AM, "Rob Cozens" <[EMAIL PROTECTED]> wrote: > on mouseTrapOn -- 3 Mar 04:RCC >insert the script of field "Mouse Trap" of card 1 of stack > "Serendipity_Library.rev" into front > end mouseTrapOn I suppose you also have a "SerendipityDo_Library.rev" for those calls that need extra hold, eh? Jim Ault Las Vegas ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Making the move...
Hi Geoff, Out of curiosity, do you have an example handy of a long handler that you think makes more sense to keep together than to break up? Or one that you think can't be broken up without significant effort to do it? on findSDBRecord @sdbBuffer,exactKey,fieldDelimiter,itemList,setPosition,searchForward,se archCriteria,cutoffKey,recordDelimiter,unlockRecord -- 28 Feb 04:RCC if ipcMode is not "dc" then -- "dc" = single user direct connection replace return with numToChar(29) in itemList replace return with numToChar(29) in searchCriteria requestSDBService sdbBuffer,"find",packArguments(9,exactKey,fieldDelimiter,itemList,setPos ition,searchForward,searchCriteria,cutoffKey,recordDelimiter,unlockRecor d) get the result if not word 1 of it and setPosition then put word 4 of it into sdbPosition put it into sdbParameters return it else if invalidSDBClient() then return true&return&sdbMessage(sdbInvalidClientError,true) if offset(return&sdbDbId&return,return&(the keys of indexList)&return) = 0 then return true&return&sdbMessage(sdbDbIdError,true) if exactKey is empty then put true into exactKey put (fieldDelimiter is not empty) into retrieveData if recordDelimiter is not empty then put true into multipleRecords put false into unlockRecords put false into setPosition else put false into multipleRecords put (multipleRecords and not retrieveData) into countOnly if setPosition is empty or retrieveData then put true into setPosition if searchForward is empty then put true into searchForward put ((sdbWriteAccess is "Shared") and (unlockRecord is true)) into unlockRecord put word 2 to 4 of sdbParameters into savedPosition put justifyString(word 1 of sdbBuffer,4) into theRecordType getSDBRecord sdbBuffer,exactKey,,,setPosition,retrieveData get the result put word 2 to -1 of line 1 of sdbBuffer into recordKey if word 1 of it or (((recordKey > cutoffKey and searchForward) or (recordKey < cutoffKey and not searchForward)) and cutoffKey is not empty) then put false&&savedPosition into sdbParameters put false&&"0 0 0" into line 1 of it return it else if unlockRecord and sdbWriteAccess is "Shared" then deleteDbLock(word 4 of sdbParameters) if not retrieveData and not multipleRecords then put it into sdbParameters return it end if end if put word 4 of sdbParameters into oldPosition put empty into returnRecord put 0 into recordCount repeat put word 2 to -1 of line 1 of sdbBuffer into recordKey if (recordKey > cutoffKey and searchForward) or (recordKey < cutoffKey and not searchForward) then put false into word 1 of sdbParameters if countOnly then put empty into sdbBuffer return (word 1 to 3 of sdbParameters)&&recordCount else put theRecordType&&recordCount&return&returnRecord into sdbBuffer return (word 1 to 3 of sdbParameters)&&"0" end if end if delete line 1 of sdbBuffer if theSDBRecordMatches(sdbBuffer,fieldDelimiter,searchCriteria) then add 1 to recordCount repeat for each line itemNumber in itemList put sdbFieldNumber(itemNumber) into itemNumber if itemNumber = 0 then put recordKey&fieldBelimiter after returnRecord else put getItem(itemNumber,fieldDelimiter,sdbBuffer)&fieldDelimiter after returnRecord end repeat if multipleRecords then put recordDelimiter after returnRecord else put theRecordType&&recordKey&return&returnRecord into sdbBuffer return (word 1 to 3 of sdbParameters) end if end if set cursor to busy if searchForward then if word 2 of sdbParameters < word 3 of sdbParameters then put "+" into sdbBuffer getSDBRecord sdbBuffer,exactKey,,,true,retrieveData put the result into sdbParameters else put true into sdbParameters else if word 2 of sdbParameters > 1 then put "-" into sdbBuffer getSDBRecord sdbBuffer,exactKey,,,true,retrieveData put the result into sdbParameters else put true into sdbParameters end if if word 1 of sdbParameters then put false into word 1 of sdbParameters put oldPosition into word 4 of sdbParameters if countOnly then put empty into sdbBuffer return (word 1 to 3 of sdbParameters)&&recordCount else put theRecordType&&recordCount&return&returnRecord into sdbBuffer return (word 1 to 3 of sdbParameters)&&"0" end if else if not setPosition then put oldPosition into word 4 of sdbParameters end repeat end if end findSDBRecord Note: stack local variables and constant declarations excluded. application requirement: calling sy
Re: Capslockkey function
Hi Jan, on keyDown pKey if pKey is an integer then pass keyDown end keyDown This will allow to type numbers only and use the delete key. No more :-) Make that _whole_ numbers only: no decimal separator is allowed. Rob Cozens CCW, Serendipity Software Company "And I, which was two fooles, do so grow three; Who are a little wise, the best fooles bee." from "The Triple Foole" by John Donne (1572-1631) ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Making the move...
G'day Sarah, In my experience, it's probably due to never passing values by reference. I'm curious as to why you eschew passing by reference. If one needs to pass large variables, why incur the overhead of duplicating the value of the variable before passing it? And if a variable value needed at one level is derived from a routine nested several calls deep, simply passing the variable by reference through the nested calls is the simplest way to get the value back to the original caller. Case in point: An SDB record can be as large as the maximum amount of text one field can contain. If the syntax of the record retrieval command were "getSDBRecord sdbBuffer,..." instead of "getSDBRecord @sdbBuffer,...", the command would have to create its own record buffer variable and then return a result which is copied into some other variable. By passing by reference, the two handlers (or as many handlers as needed) can work on a single copy of the data. Rob Cozens CCW, Serendipity Software Company "And I, which was two fooles, do so grow three; Who are a little wise, the best fooles bee." from "The Triple Foole" by John Donne (1572-1631) ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Making the move...
Do you have an example? I agree that if you end up passing in a handful of arguments by reference, you haven't accomplished much by breaking out the routine. The question is if there isn't a better way to slice the routine, where that wouldn't be necessary. On Mar 20, 2006, at 4:29 AM, Sarah Reichelt wrote: In my experience, it's probably due to never passing values by reference. If I am working on a routine that generates multiple variables, then acts on them, it is easier to keep it all together than to try and transfer more than one variable back & forth between handlers & functions. A separate function is great if it only has to return one variable, but as soon as it acts on more than one, I find it easier to leave that code as part of the main handler. Of course, if a segment of code is used by more than one handler, it's worth the effort to split it out, but otherwise, I'm not too fussed about keeping handlers small. Good commenting can overcome any problems interpreting it later :-) ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Making the move...
This sounds like a bunch of small handlers masquerading as a large handler ;-) Nothing wrong with that, I just think it means that you're really on my side of the big/small question, except that you don't like the surplus of handler names it leads to. I can certainly agree with that. Every time I've ever advocated small routines, I've mentioned as one of the caveats that you end up with that many more handlers to keep track of. As you say, if the task is never called separately, and you break it out within the larger handler, and you document it, it's not that big a deal. I'd argue that if you've done all that you might as well break it out as a separate routine, but I think we've reached the pot-ay-tos, pot-ah-tos stage of the discussion. gc On Mar 20, 2006, at 1:38 AM, Chipp Walters wrote: Hi Geoff, One does come to mind, it's the startup handler(s) of my splash stack, and they are broken down serially into 7 or 8 different handlers, each numbered sequentially with a handler name. And because I want to be able to read them one after the other, I ended up programming them serially. Some were as long as 50-60 lines, others shorter. Because they form the code of virtually all of my applications, I wanted them to be very easily read, and updated. This worked for me. May not have for you, I don't know. I doubt my brain can grasp thinking in bigger chunks..it's working overtime as it is! -Chipp Geoff Canyon wrote: Out of curiosity, do you have an example handy of a long handler that you think makes more sense to keep together than to break up? Or one that you think can't be broken up without significant effort to do it? When you think of a long handler, do you generally think of it as having a single identifiable task, or do you think of it as being several tasks performed in sequence in one handler? ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Exit Repeat
On Mar 20, 2006, at 1:47 AM, Chipp Walters wrote: put the executioncontexts Thanks, Chipp! Now we have a puzzle (I think) I have a button with this script: on mouseUp set the canInterrupt of this stack to true repeat with i = 1 to 1000 wait 0 ticks with messages put i end repeat set the canInterrupt of this stack to false end mouseUp The stack has this script: on escapeKey if the canInterrupt of me then put the executioncontexts set the canInterrupt of me to false exit to top end if end escapeKey These are both copied from Mark Smith's example. Clicking the button starts counting up in the message box. Pressing the escape key stops the counting and puts this: stack "Navigator",escapeKey,4 Note that the script of the button is not listed. I think that is correct, because the escapeKey message was generated from the key being pressed -- the fact that the mouseUp handler had to yield time to let it happen is irrelevant. The documentation says about exit to top: Halts the current handler and all pending handlers. I checked to be sure, and send...in messages are not terminated. The documentation goes on to make this clearer by saying: If the current handler was called from another handler, the calling handler is also halted. Other messages that depend on the same action are also suppressed: for example, if an exit to top control structure is executed in a closeCard handler, the corresponding openCard message is not sent to the destination card. I _guess_ that could be construed to apply in this case, but I think the docs should be explicit. Frankly, this behavior seems backward to me. What does everyone (anyone) else think? Although it is convenient in this case, it seems wrong to me that exit to top in the escapeKey handler above also terminates the mouseUp message. gc ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Get a handler from a script
A little update. And beware of the mail wraps On 20 Mar 2006, at 10:50, Wouter wrote: -snip- /* this is a comment #as is this */function removeBlockComments pText --toggle the # put true into tFlag repeat for each line i in pText if char 1 to 2 of word 1 of i = "/*" then put false into tFlag end if if tFlag and token 1 of i is among the items of "on,function,setprop,getprop" then put token 1 to -1 of i & cr after tList else if tFlag = false then if char 1 of word 1 of i is "#" and "*/" is in i then put true into tFlag get "/*" &i if tFlag and token 1 of it is among the items of "on,function,setprop,getprop" then put token 1 to -1 of it & cr after tList next repeat end if end if repeat for each token j in i if j is "*/" then put true into tFlag get "/*" &i if tFlag and token 1 of it is among the items of "on,function,setprop,getprop" then put token 1 to -1 of it & cr after tList exit repeat end if end if end repeat end if end repeat return tList end removeBlockComments Greetings, Wouter ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Built in Search
How does one refer to the results window of RR's built-in search tool (e.g. put it's contents into a window in a different stack)? Thanks. ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Get a handler from a script
David Burgun wrote: Hi, Yes, this really is the problem. In order to parse and identify a function/handler 100% correctly you need to do most (if not all) of the work of the TranScript Parser in the Script Compiler. In the past I've written any number of language parsers and I know it is non-trivial to get it 100% right. The best solution IMO would be to add code to RunRev that allows the script to find out if a handler/function is defined or not. One way would be to add a function that checks for the existence of a hanlder/function (without looking at the text of the script), another would be to hold an array of functions/handlers as a property of the Object. Back in my Hypercard days I had a large project that included a script locator handler. I bypassed all of the issues of parsing for actual handlers by adding metadata as comments in a consistent format at the top of each handler. This was then very simple to extract. Just food for thought. Martin Baxter ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Making the move...
On 3/20/06, Geoff Canyon <[EMAIL PROTECTED]> wrote: > Out of curiosity, do you have an example handy of a long handler that > you think makes more sense to keep together than to break up? Or one > that you think can't be broken up without significant effort to do it? > > When you think of a long handler, do you generally think of it as > having a single identifiable task, or do you think of it as being > several tasks performed in sequence in one handler? > > Obviously it's possible that you simply think in bigger chunks ;-) In my experience, it's probably due to never passing values by reference. If I am working on a routine that generates multiple variables, then acts on them, it is easier to keep it all together than to try and transfer more than one variable back & forth between handlers & functions. A separate function is great if it only has to return one variable, but as soon as it acts on more than one, I find it easier to leave that code as part of the main handler. Of course, if a segment of code is used by more than one handler, it's worth the effort to split it out, but otherwise, I'm not too fussed about keeping handlers small. Good commenting can overcome any problems interpreting it later :-) Sarah ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Get a handler from a script
Hi, Yes, this really is the problem. In order to parse and identify a function/handler 100% correctly you need to do most (if not all) of the work of the TranScript Parser in the Script Compiler. In the past I've written any number of language parsers and I know it is non- trivial to get it 100% right. The best solution IMO would be to add code to RunRev that allows the script to find out if a handler/ function is defined or not. One way would be to add a function that checks for the existence of a hanlder/function (without looking at the text of the script), another would be to hold an array of functions/handlers as a property of the Object. For instance if the script compiler built two arrays and stored them as a property of the object: functionArray["FuncrtionName"] = StartLine,EndLine handlerArray["HandlerName"] = StartLine,EndLine Where StartLine is the line number in the script that contains the "on" or "function" text. Where LineLine is the line number is the script that contains the "end" text. I should imagine it is possible to parse the script and get it 100% correct using TranScript, but: 1. It is likely to be quite a bit of work to code/test. 2. If the underlying script syntax is changed it could break. 3. It is likely be very slow and impact performance badly unless you are very careful about how/when it was used. One way would be to run some code at preOpenStack time that scanned through the scripts of objects in the stack and built the arrays described above. I was quite shocked when I discovered that the ability to check for the existence of a function/handler was not actually built into to RunRev when so much other information about objects is present. All the Best Dave On 20 Mar 2006, at 01:12, Geoff Canyon wrote: I feel like the harbinger of doom here (with Alex as my able partner in doomsaying) but: This would still be subject to failure if, anywhere in the script, / * or */ appeared _not_ as block comment delimiters, but as part of a string. gc On Mar 19, 2006, at 4:22 PM, Dick Kriesel wrote: On 3/19/06 3:41 PM, "Alex Tweedly" <[EMAIL PROTECTED]> wrote: You should try that script on itself :-) The "/*" in the first 'offset' line, and the "*/" in the second 'offset' line are (incorrectly) recognized as a block comment, with fairly disastrous results. I did, and verified that it removed the comment. I didn't notice that it also eviscerated the function! A trivial fix avoids that problem: on mouseUp put removeBlockComments(the script of me) end mouseUp /* this is a comment as is this */function removeBlockComments pText put pText into tText put offset("/" & "*",tText) into tOffset if tOffset > 0 then delete char tOffset to tOffset + offset("*" & "/",tText,tOffset) + 1 \ of tText put removeBlockComments(tText) into tText end if return tText end removeBlockComments I suspect that proper recognition of block comments isn't as easy as it might seem - need to handle all forms of string delimiter, which themselves may be inside comments. Since I don't recognize that need, would you elaborate on it, please? Thanks for catching my oversight, Alex. -- Dick ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Get a handler from a script
Hi, I think the original poster wanted to copy a function/handler from one Script to another. I was taking the more general case of wanting to know if a function/handler is defined in a script so it can be called and not cause an error if it is not defined. All the Best Dave On 20 Mar 2006, at 02:38, Mark Smith wrote: Are we trying to establish the existence of a handler or to get the text of a handler? And are we including handlers that are commented out? Mark On 20 Mar 2006, at 02:01, Dick Kriesel wrote: On 3/19/06 5:12 PM, "Geoff Canyon" <[EMAIL PROTECTED]> wrote: I feel like the harbinger of doom here (with Alex as my able partner in doomsaying) but: This would still be subject to failure if, anywhere in the script, /* or */ appeared _not_ as block comment delimiters, but as part of a string. www.usingenglish.com/reference/idioms/fools+rush+in+where+angels +fear+to+tre ad.html Imagine we first remove comments that start with "--" and then start looking for block comments. If a "/*" follows an even number of quotes, it starts a block comment. If it follows an odd number of quotes, it's embedded in a string. After a "/*" starts a block comment, then the next "*/" ends the comment. Right? Or do the angels see even more of the devil in the details? -- Dick ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Get a handler from a script
On 20 Mar 2006, at 02:12, Geoff Canyon wrote: I feel like the harbinger of doom here (with Alex as my able partner in doomsaying) but: This would still be subject to failure if, anywhere in the script, / * or */ appeared _not_ as block comment delimiters, but as part of a string. gc -snip- and what about this first draft ?: on mouseUp put removeBlockComments(the script of me) into fld 1 end mouseUp /* this is a comment #as is this */function removeBlockComments pText --toggle the # put true into tFlag repeat for each line i in pText if char 1 to 2 of word 1 of i = "/*" then put false into tFlag end if if tFlag and token 1 of i is among the items of "on,function,setprop,getprop" then put i & cr after tList else if tFlag = false then if char 1 of word 1 of i is "#" and "*/" is in i then put true into tFlag get "/*" &i if tFlag and token 1 of it is among the items of "on,function,setprop,getprop" then put token 1 to -1 of it & cr after tList next repeat end if end if repeat for each token j in i if j is "*/" then put true into tFlag get "/*" &i if tFlag and token 1 of it is among the items of "on,function,setprop,getprop" then put token 1 to -1 of it & cr after tList exit repeat end if end if end repeat end if end repeat return tList end removeBlockComments greetings, Wouter ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Exit Repeat
OOPS.. I mean put the executioncontexts (no parens) ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Exit Repeat
Geoff Canyon wrote: Does anyone remember what the property containing the callstack is offhand to check this? put the executioncontexts() (i think!) -c ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Exit Repeat
On Mar 20, 2006, at 1:08 AM, Mark Smith wrote: In fact, I tested this, and it works. Though it'd still be cleaner, somehow, to be able to test for the exit condition within the loop. Wow, you are so correct. I had thought exit to top would exit the handler it is in and all handlers in the calling chain, but that the handler with the wait 0 ticks with messages in it would not be part of that chain. Obviously it is. Does anyone remember what the property containing the callstack is offhand to check this? That makes for a very nice solution I have to say. gc ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Making the move...
Hi Geoff, One does come to mind, it's the startup handler(s) of my splash stack, and they are broken down serially into 7 or 8 different handlers, each numbered sequentially with a handler name. And because I want to be able to read them one after the other, I ended up programming them serially. Some were as long as 50-60 lines, others shorter. Because they form the code of virtually all of my applications, I wanted them to be very easily read, and updated. This worked for me. May not have for you, I don't know. I doubt my brain can grasp thinking in bigger chunks..it's working overtime as it is! -Chipp Geoff Canyon wrote: Out of curiosity, do you have an example handy of a long handler that you think makes more sense to keep together than to break up? Or one that you think can't be broken up without significant effort to do it? When you think of a long handler, do you generally think of it as having a single identifiable task, or do you think of it as being several tasks performed in sequence in one handler? ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
RE: Making the move...
Are you the new listmom? sqb Hey gang, Im not naming names but Im feeling some heat when it's about time I enjoy a nice Sunday evening with my family - lets leave the past in the past and kill this thread. If you want to continue on an individual basis on this topic, then please email each other offlist. Best regards, Lynn Fredricks Worldwide Business Operations Runtime Revolution, Ltd -- stephen barncard s a n f r a n c i s c o - - - - - - - - - - - - ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Making the move...
Out of curiosity, do you have an example handy of a long handler that you think makes more sense to keep together than to break up? Or one that you think can't be broken up without significant effort to do it? When you think of a long handler, do you generally think of it as having a single identifiable task, or do you think of it as being several tasks performed in sequence in one handler? Obviously it's possible that you simply think in bigger chunks ;-) On Mar 19, 2006, at 3:57 PM, Chipp Walters wrote: Yep, I've heard that before, but frankly, for me, I'd rather keep it all in one, unless there's a really good reason to separate into multiple handlers (as in creating more reusability). I find it much easier to debug code I've written this way than hunting through the message path for the 15 or so functions/handlers I've written trying to make things 'more simple.' Just a difference in coding style. In fact, typically I'll write code procedurally in a longer handler, then only break it up if/when I know I need to do part of the same thing again. Like most of us, I'd rather not code twice. Even though, I've got libraries with over 50 handlers/functions. -Chipp Mark Wieder wrote: Geoff- Saturday, March 18, 2006, 1:24:50 PM, you wrote: I've never seen a hundred-line routine that wouldn't be better as five twenty-line routines, each of which could be documented with a line of code. Perhaps even ten ten-line routines. ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Get a handler from a script
I don't think so -- the same problems with strangely placed block comments apply, and you'll still have to establish whether the handler name (with or without on, function, getprop, setprop and end) occurs as part of a comment, or as a recursive call to itself Mark On 20 Mar 2006, at 03:53, [EMAIL PROTECTED] wrote: I don't know about the complications of block comments, etc, but can't all the complexites of dealing with of handlers, functions, getProp, and setProp be sidestepped by looking for "end" && -- or am I missing something? Does that simplify any of the other problems? Peter M. Brigham ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Exit Repeat
In fact, I tested this, and it works. Though it'd still be cleaner, somehow, to be able to test for the exit condition within the loop. Mark On 20 Mar 2006, at 01:08, Geoff Canyon wrote: Close, but I don't think this will work. The exit to top in the escapeKey handler will exit that handler, not the handlerWithRepeatIMightWantToInterrupt. Instead, set a custom property in the escapeKey handler, then check that property in your handlerWithRepeatIMightWantToInterrupt handler and exit there if it is set. My previous example did something like this with a local variable, but a custom property would work as well. gc On Mar 19, 2006, at 2:51 PM, Mark Smith wrote: 'wait 0 ticks with messages' was the thing - thanks! So a general (stack-wide) approach might be to use a custom prop in the stack: in a control, card or stack: on handlerWithRepeatIMightWantToInterrupt set the canInterrupt of this stack to true repeat forever wait 0 ticks with messages doRepeatStuff end repeat set the canInterrupt of this stack to false otherStuff end handlerWithRepeatIMightWantToInterrupt then in the stack script on escapeKey if the canInterrupt of me then set the canInterrupt of me to false exit to top end if end escapeKey Mark On 19 Mar 2006, at 22:24, Geoff Canyon wrote: On Mar 19, 2006, at 12:04 PM, Mark Smith wrote: Andre, the trouble is that in the case of interrupting a repeat loop, you can't test for whether the escape key is down like you can with control/option/command. So use control/option/command, of course :) But the escape key would be more natural... This works: local sGetOut on mouseUp put empty put false into sGetOut repeat 2 wait 0 ticks with messages if sGetOut then exit to top end repeat put "completed" end mouseUp on escapeKey put true into sGetOut end escapeKey Note that the escapeKey message is delivered to the focused control, so you can't put it in a button and expect it to work reliably. Put the above in the card script, then click anywhere in the card. Some time later "completed" will show in the message box. Then click the card again and then press the escape key. You won't get the "completed" text. gc ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution