Re: Again with the start using
On Friday, March 5, 2004, at 09:58 AM, Richard Gaskin wrote: That's a very interesting case. When I make compound objects (grouped controls that act as a single object with their own properties and behaviors) I tend to put the code driving them into one library. This is what I have been calling custom controls. Well, maybe custom controls are more general as they might include some made from a single control that is not a group. I don't mind adapting to what other folks call them. I think a problem with compound object is that it emphasizes the compound nature and not the single control nature. Thus far, the only time I've needed frontscripts for these is in development mode, when I need to update an Inspector for that compound object type. We have unshared field text and button highlight. Suppose I make a custom control that has/is an unshared image. This needs to update the image at preOpenCard. This custom control might be on the card or in a group or even (as implied by its capability, usually) in a shared group. There might be several on the card some nested down in groups. It might be useful to see two enhancements: - a lockGroup property that allows a group to act as a single control, even when the selectGroupedControls property is true. Yes. As we (list) discussed earlier, there are different styles and I've been thinking of adding a brief thought to that. I've been trying to collect methods to protect the using-developer from breaking compound objects and maybe turn lemons to lemonade and exploit selectGroupedControls. Maybe there can also be an effective or other keyword modifier for number of or layer referencing that does not penetrate these. - parentScripts, discussed for years on the MC list and with Raney so one could designate a single script to be in the message path for a class of objects but not others. I am coping with stack libraries, so this is not needed for me. There is a bugzilla request for encryption of custom control scripts and this is probably a workaround much of that. If most of the scripts are in the library then the custom control exposes less. Many (most?) developers will produce more custom controls if they feel they can hide insides and productize. There is a little problem with making sure all the support pieces are put in the right places when a custom control is pasted or placed on a card. I'm not able to make newGroup work for this. I'm currently thinking that a plugin or custom control catalog might be needed for this, but folks might still copy and paste controls. Another approach is the documentation approach When using this control, the library stack 'Dar's Meter Support' must set as a library with the 'set using' command. The technique of having a hidden group with background set on the first card needs a method to place it there. So... For me, a copyGroup message (like newGroup) would make a parent script unneeded. If the lockGroup property seems useful to you I'll post it there as well. It would be. I'm not sure of the name. There might be other related custom control (aka compound object) goodies that are needed and the features might be coordinated. The only problem with frontScripts is the number available at runtime, currently limited to 10. But in practice, as often as I use frontScripts I've never needed more than three in all of the stuff I've ever built. Well if somebody made a dozen different kinds of, say, meters, then a dozen frontscripts in a complicated application would be a problem. Only if these meters are metering things related to system messages. Otherwise you don't really need a frontscript at all, except perhaps in development to build an editor for them that traps selectedObjectChanged to update itself. But even then, in development there is no limit to the number of frontscripts Suppose I make many of those meters out of needles that can be unshared. The angles/positions need to be updated at preOpenCard. Suppose some of these have message machinery (use send or move or sockets or...). They might need to start this at openCard and stop at closeCard. Based on your earlier advice, I think I have a way to have my libraries or controls that need certain messages to use a couple common frontscripts for all controls and libraries in the super family of my controls and libraries. Another possibility is openControl or openGroup etc. but this might have a bad impact on cards with a zillion controls; I haven't pondered on all the implications. The openGroup might be less of a load. I've been trying hard to find ways to support custom controls in general with the features we have. But if these use a single stack library and/or a single frontscript, then the problem is minimized. At least one of the rev libraries is a frontscript, so rev libraries add to the competition. If you include all Rev libs you will consume eight out of ten available
Re: Again with the start using
Dar Scott wrote: On Friday, March 5, 2004, at 09:58 AM, Richard Gaskin wrote: That's a very interesting case. When I make compound objects (grouped controls that act as a single object with their own properties and behaviors) I tend to put the code driving them into one library. This is what I have been calling custom controls. Well, maybe custom controls are more general as they might include some made from a single control that is not a group. I don't mind adapting to what other folks call them. I think a problem with compound object is that it emphasizes the compound nature and not the single control nature. Agreed. Custom control is more useful in more circumstances. Thus far, the only time I've needed frontscripts for these is in development mode, when I need to update an Inspector for that compound object type. We have unshared field text and button highlight. Suppose I make a custom control that has/is an unshared image. This needs to update the image at preOpenCard. This custom control might be on the card or in a group or even (as implied by its capability, usually) in a shared group. There might be several on the card some nested down in groups. In that case your library isn't interested in all preOpenCard messages but only those occurring in its instances, so maybe a custom message is in order -- in your group you could write: on preOpenCard libDarObjectInit pass preOpenCard end preOpenCard ...and define libDarObjectInit in your library. It might be useful to see two enhancements: - a lockGroup property that allows a group to act as a single control, even when the selectGroupedControls property is true. Yes. As we (list) discussed earlier, there are different styles and I've been thinking of adding a brief thought to that. I've been trying to collect methods to protect the using-developer from breaking compound objects and maybe turn lemons to lemonade and exploit selectGroupedControls. Maybe there can also be an effective or other keyword modifier for number of or layer referencing that does not penetrate these. Agreed. Feel like posting that to Bugzilla? ... Suppose I make many of those meters out of needles that can be unshared. The angles/positions need to be updated at preOpenCard. Suppose some of these have message machinery (use send or move or sockets or...). They might need to start this at openCard and stop at closeCard. Based on your earlier advice, I think I have a way to have my libraries or controls that need certain messages to use a couple common frontscripts for all controls and libraries in the super family of my controls and libraries. That's how my libs work, but I generally require few frontScripts. In the absence of a greater number of frontsccripts, you could use one as a dispatcher, trapping a variety of messages for multiple libraries. It does complicate things for distributing them to work independently in others' stuff, though. I've been trying hard to find ways to support custom controls in general with the features we have. I'm a big fan of seeing what we can do to empower ourselves, and resorting to waiting only when necessary. But if these use a single stack library and/or a single frontscript, then the problem is minimized. At least one of the rev libraries is a frontscript, so rev libraries add to the competition. If you include all Rev libs you will consume eight out of ten available backscript slots. Fortunately Geoff has devised a plan to reduce that to one, so it may be less of an issue going forward. It would be nice if there was a policy in place that would increase the 10-50-10 based on the max number use by the IDE provided support libraries in its history. Or a very easy to buy and use add-on that could be used for both standalones and maybe library stacks that might be loaded by a standalone. Agreed. -- Richard Gaskin Fourth World Media Corporation ___ [EMAIL PROTECTED] http://www.FourthWorld.com ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Again with the start using.
My admonition to pass preOpenCard might be lost or the admonition to call darsPreopenCard might be lost. Either...if a copy of your library ends up on a developer's computer without the accompanying documentation. -- Rob Cozens CCW, Serendipity Software Company http://www.oenolog.net/who.htm 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 [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Again with the start using.
On Thursday, March 4, 2004, at 06:29 AM, Rob Cozens wrote: My admonition to pass preOpenCard might be lost or the admonition to call darsPreopenCard might be lost. Either...if a copy of your library ends up on a developer's computer without the accompanying documentation. Documentation! Where do you come up with these wild ideas? Seriously, I do hope pouring over docs every time one uses a library is minimized. For this particular case, I think Richard's idea of a front script can apply to an entire family of libraries. Now on to opening and closing custom controls... Dar Scott ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Again with the start using.
One additional note: Serendipity Library's libraryStack handler not only checks to see if it is the target of the message, it also checks the state of a local variable to determine if libraryStack has already run once. [I don't want to reinitialize variables once the library is in use:] local sdbMessages on libraryStack if the short name of the target is not Serendipity_Library.rev then pass libraryStack if sdbMessages is not empty then exit libraryStack -- variable initialization end libraryStack Note I do NOT pass libraryStack unless the target is not Serendipity Library, as I see nothing going on that other libraries need to know about. And if they do need to know if Serendipity Library is in use, they can check the stacksInUse property. -- Rob Cozens CCW, Serendipity Software Company http://www.oenolog.net/who.htm 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 [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Again with the start using.
On Wednesday, March 3, 2004, at 07:46 AM, Rob Cozens wrote: Serendipity Library's libraryStack handler not only checks to see if it is the target of the message, it also checks the state of a local variable to determine if libraryStack has already run once. Note I do NOT pass libraryStack unless the target is not Serendipity Library, as I see nothing going on that other libraries need to know about. Then we are consistent in style. I may have implied that I pass libraryStack in all cases, which is not the case. I have noticed these variations: if the target is me then if the short name of the target is the short name of me then if the short name of the target is name of my library then I have no idea if there is any merit of one over another. Dar Scott ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Again with the start using.
if the target is me then if the short name of the target is the short name of me then if the short name of the target is name of my library then I have no idea if there is any merit of one over another. Hi Dar, They all work. #1 obviously gets the award for brevity. I like #3 because I still find some lingering tendency to want to confuse me and this [stack, card, control], especially when dealing with modal stacks. -- Rob Cozens CCW, Serendipity Software Company http://www.oenolog.net/who.htm 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 [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Again with the start using.
On Wednesday, March 3, 2004, at 10:32 AM, Richard Gaskin wrote: Given that a library should always perform those two checks anyway (to see if it is the target of the message and whether it's been initialized already), what is the downside to passing that system message just as one would usually want to pass all others? Do you mean in all cases? For me... I think of many other messages as belonging to all, but libraryStack as belonging to the library stack. (I pass only if it is not for the stack.) However, I don't have a strong feeling on this one and would try to go along with common practice and good style and... Is it really a consensus that certain messages, such as openCard, should pass down the path? What are those messages? Dar Scott ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Again with the start using.
Rob Cozens wrote: Serendipity Library's libraryStack handler not only checks to see if it is the target of the message, it also checks the state of a local variable to determine if libraryStack has already run once. [I don't want to reinitialize variables once the library is in use:] A good choice, sorely absent from my example but well worth doing. Note I do NOT pass libraryStack unless the target is not Serendipity Library, as I see nothing going on that other libraries need to know about. And if they do need to know if Serendipity Library is in use, they can check the stacksInUse property. While for most practical purposes there will not likely be any other library or backscript that would need to know when a libraryStack handler is sent to your library, it is a possibility. While admittedly unlikely, over the years I've come to regard unlikely as possible, and possible as will happen sooner or later. I've found a majority of issues in using my work in other people's environments stem from making assumptions about the environment, which has led to my personal policy of always preserving the native state of things wherever I have the opportunity to do so. Requiring polling the stacksInUse is less efficient for that purpose, but on balance if another stack needs an event-driven method the best place for that might be in a frontScript anyway. Given that a library should always perform those two checks anyway (to see if it is the target of the message and whether it's been initialized already), what is the downside to passing that system message just as one would usually want to pass all others? -- Richard Gaskin Fourth World Media Corporation ___ [EMAIL PROTECTED] http://www.FourthWorld.com ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Again with the start using.
However, I don't have a strong feeling on this one and would try to go along with common practice and good style and... Dar, et al: Certainly the legacy from virtually all HyperTalk handlers written and distributed by Apple as part of the HyperCard package is to pass all such messages. The logic, I suppose, emphasizes modularity, and thus may make sense when a team of programmers is working on project where some event needs to trigger multiple handlers. But for one-developer standalone projects, I don't see the need. Perhaps down deep I, like Alex, have an aversion to sending or passing a message to nowhere. :{`) Anyway, I know where the messages in my applications are supposed to be handled, and I don't pass them unless I know they need to be handled further up/down (as you choose) the line. And in cases like Serendipity Library, where I'm building a resource that others might incorporate into their own applications, I try to contain the functionality of Library calls such that they won't affect the runtime environment or other libraries. -- Rob Cozens CCW, Serendipity Software Company http://www.oenolog.net/who.htm 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 [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Again with the start using.
On Wednesday, March 3, 2004, at 10:02 AM, Rob Cozens wrote: The logic, I suppose, emphasizes modularity, and thus may make sense when a team of programmers is working on project where some event needs to trigger multiple handlers. But for one-developer standalone projects, I don't see the need. As we grow as a community we might be using more and more stack libraries from other sources including custom controls that require stack libraries. I assume most folks pass preOpenCard down the message path, for example. If I have a library stack that uses that, I need to doc that. If this is not really a common style, I might want to add a handler that must be called on preOpenCard and make that an alternative method. Dar Scott ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Again with the start using.
I assume most folks pass preOpenCard down the message path, for example. If I have a library stack that uses that, I need to doc that. If this is not really a common style, I might want to add a handler that must be called on preOpenCard and make that an alternative method. I suggest it should be the second approach, Dar: If your library wants a call to darsPreopenCard whenever any card in any stack is opened from a developer's standalone or stack, your documentation should tell the developer to place the call in their script on preOpenCard darsPreopenCard end preOpenCard It just strikes me that a library distributed for general purpose use by who-knows-who should not respond to any message other than a call to a library handler and the libraryStack message sent to it when it is placed in use. In this regard, a library's own open/preopen stack and closeStack handlers should be located in the script of the first card, rather than in the library stack script. This prevents the library from intercepting those messages when they are sent to other stacks. -- Rob Cozens CCW, Serendipity Software Company http://www.oenolog.net/who.htm 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 [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Again with the start using.
Dar Scott wrote: On Wednesday, March 3, 2004, at 10:32 AM, Richard Gaskin wrote: Given that a library should always perform those two checks anyway (to see if it is the target of the message and whether it's been initialized already), what is the downside to passing that system message just as one would usually want to pass all others? Do you mean in all cases? I don't know that anything in programming lends itself to absolutes. :) Is it really a consensus that certain messages, such as openCard, should pass down the path? What are those messages? I picked up the habit of passing system messages from an old book, Tricks of the HyperTalk Masters, and possibly from Thimbleby and Colouris' HyperTalk Programming (my copy was loaned out many years ago, and as happens with many good books it's never come back, and is long since out of print). It proved useful in those days because I would often want to augment behavior for an event and found, as those writers suggested, that as long as I passed my system messages I'd left an open door to do that. Without passing system messages the door is closed, until you write a worm to go back and revise the scripts of the objects whose behavior you want to change, easier done in one's office than throughout an installed based. But of course, the difficulty is that to rely on messages being passed requires that everyone play ball; great for your own team but impossible to depend on for libraries designed for use in other people's environments. A lot of the code bases I work on today were inherited, mostly ports from other systems, so there are few assurances of stylistic consistency. The solution to this came in 1994 when SuperCard introduced frontScripts, allowing you to trap system messages before any other object gets them. This was added to MetaCard not long after. There are rare cases in which it may be especially useful to get the messages after the target is done with them, but for the most part frontScripts are the optimal choice for trapping system messages in other people's environments. In a frontScript, it is almost always essential that all messages always be passed; there may be an exception worth honoring, but in general if you don't pass system messages in a frontScript the result will be undesirable, as not even the target will get them. In my own stuff I tend to pass all card- and stack-related messages everywhere, and often don't bother with the mouse messages in not-frontScript objects. The libraryStack message is a bit of a Schroedinger's Cat, since on the one hand you may want to preserve the native state of things, but on the other hand the native state of things doesn't include your stack which is the reason that instance of the libraryStack message is sent. But continuing down the rabbit hole, maybe it's a case of sum ergo passo (I exists, therefore I pass), in which the existence of the stack in the message queue may just as well be seen as a natural thing, and therefore any outside script monitoring such things should rightfully expect the libraryStack message to be comin' down the pike (though I'd be surprised if someone writing something so exotic wouldn't prefer the greater reliability of a frontScript). But just as Schroedinger's Cat is an unnecessarily complicated discussion for a relatively simple idea, so is that last paragraph. :) As much as rational minds strive for absolutes, I think a lot of nuances surrounding when to pass system messages depend on what you're working on and your own personal comfort zone. Here, when something works I use it, and when it no longer works I write a worm. :) I always pass everything in any script I write for global access (frontScripts, backScripts, libraries), and discriminate based on contextual considerations in non-shared objects. As a relevant side note, many messages the IDE relies on are handled in backScripts like revGeneral, where you'll find handlers for things like the powerful selectedObjectChanged message. If you're making a drawing app and don't pass that message the IDE will not function; this may be a downside for those getting started but offers a convenience for pros in being able to override IDE behaviors without having to first remove IDE scripts from the message path. As much as I appreciate that convenience myself, I would probably make the pros work a little harder if it would help protect newcomers, so I wonder if Rev has considered migrating those handlers to a frontScript going forward. -- Richard Gaskin Fourth World Media Corporation ___ [EMAIL PROTECTED] http://www.FourthWorld.com ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Again with the start using.
On Wednesday, March 3, 2004, at 12:44 PM, Richard Gaskin wrote: But of course, the difficulty is that to rely on messages being passed requires that everyone play ball; great for your own team but impossible to depend on for libraries designed for use in other people's environments. A lot of the code bases I work on today were inherited, mostly ports from other systems, so there are few assurances of stylistic consistency. Well, I can say this in my stack doc/note: Here is how my stack works. There are some options depending on your scripting style. If your style does not fit any of those, adapt. What I'd like to do is select a default so it works just by somebody dropping it into an app. I'd like to have options to accommodate those who don't see the world the way I do. In all that it should be easy and work right off. If folks have different approaches to handling, say, preOpenCard, then that gets hard. If some folks hide preOpenCard from the libraries, then some other method would be needed. I had made the silly assumption that, of course, everybody passes preOpenCard. I now have to think on how to make sure all works whether it is passed or not. Dar Scott ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Again with the start using.
On Wednesday, March 3, 2004, at 11:12 AM, Rob Cozens wrote: If your library wants a call to darsPreopenCard whenever any card in any stack is opened from a developer's standalone or stack, your documentation should tell the developer to place the call in their script ...or to pass preOpenCard, as you said originally. I guess so long as you communicate this to the developer, it works either way. But not intercepting standard system messages seems safer in the event that your admonition is lost or forgotten. My admonition to pass preOpenCard might be lost or the admonition to call darsPreopenCard might be lost. Dar Scott ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Again with the start using
Dar Scott wrote: What I'd like to do is select a default so it works just by somebody dropping it into an app. I'd like to have options to accommodate those who don't see the world the way I do. In all that it should be easy and work right off. If folks have different approaches to handling, say, preOpenCard, then that gets hard. If some folks hide preOpenCard from the libraries, then some other method would be needed. If you need access to system messages, the most reliable place to hook into them is in a fronscript. While we can debate the relative efficacy of using the engine's built-in messages vs. inventing any manner of mirrored versions of those for libraries, frontScripts are a special, sacred place. I would not heitate to describe a frontscript intended for general use that doesn't pass all system messages as a bug to be reported to the author. There may be specialized cases where blocking messages before the target gets them is desirable, but such tools would be highly specialized and should come with warning signs in bright neon to avoid folks pulling their hair out trying to figure out why their scripts no longer trigger. I had made the silly assumption that, of course, everybody passes preOpenCard. If frontScripts they do. If not it's either a bug, or a very unusual tool that should be wearing the afore-mentioned neon sign around its neck. I now have to think on how to make sure all works whether it is passed or not. Just use frontScripts for system-message traps and backscripts or libraries for custom handlers and you're set. The only problem with frontScripts is the number available at runtime, currently limited to 10. But in practice, as often as I use frontScripts I've never needed more than three in all of the stuff I've ever built. Far more common than system message traps are collections of custom routines, for which libraries are ideal and you can use up 50 at runtime. -- Richard Gaskin Fourth World Media Corporation ___ [EMAIL PROTECTED] http://www.FourthWorld.com ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Again with the start using.
Please, explain why I am getting a error with the following. on include theStack start using value(theStack) end include on preOpenStack package library.rev end preOpenStack I believe the value is not the approiate construct what should I use? Kevin -==-=-=-=-=-=-==-=-=-=-=-=-=-=-==-=-=-=-=-=- Disclaimer: Any resemblance between the above views and those of my employer, my terminal, or the view out my window are purely coincidental. Any resemblance between the above and my own views is non-deterministic. The question of the existence of views in the absence of anyone to hold them is left as an exercise for the reader. The question of the existence of the reader is left as an exercise for the second god coefficient. (A discussion of non-orthogonal, non-integral polytheism is beyond the scope of this article.) ___ Join Excite! - http://www.excite.com The most personalized portal on the Web! ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
RE: Again with the start using.
I am currently using the following: do start using quote theVariable quote This is working I believe however, I am not sure of what this will do in a standalone. Kevin -==-=-=-=-=-=-==-=-=-=-=-=-=-=-==-=-=-=-=-=- Disclaimer: Any resemblance between the above views and those of my employer, my terminal, or the view out my window are purely coincidental. Any resemblance between the above and my own views is non-deterministic. The question of the existence of views in the absence of anyone to hold them is left as an exercise for the reader. The question of the existence of the reader is left as an exercise for the second god coefficient. (A discussion of non-orthogonal, non-integral polytheism is beyond the scope of this article.) --- On Mon 03/01, Kevin [EMAIL PROTECTED] wrote: From: Kevin [mailto: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Date: Mon, 1 Mar 2004 13:12:52 -0500 (EST) Subject: Again with the start using. brbrPlease, explain why I am getting a error with the following.brbrbron include theStackbrstart using value(theStack)brend include brbron preOpenStack brpackage library.revbrend preOpenStackbrbrI believe the value is not the approiate construct what should I use?brbrKevinbrbrbrbr-==-=-=-=-=-=-==-=-=-=-=-=-=-=-==-=-=-=-=-=-brDisclaimer:brbrAny resemblance between the above views and those of mybremployer, my terminal, or the view out my window are purelybrcoincidental. brAny resemblance between the above and my own views is non-deterministic.brbr The question of the existence of views in the absence of anyone to holdbrthembris left as an exercise for the reader. The question of the existence ofbrthe readerbr is left as an exercise for the second god coefficient. br(A discussion of non-orthogonal, non-integral polytheism is beyond thebrscope of this article.)brbrbrbr__ _brJoin Excite! - http://www.excite.combrThe most personalized portal on the Web!br___bruse-revolution mailing listbr[EMAIL PROTECTED]brhttp://lists.runrev.com/mailman/listinfo/use-revolutionbr ___ Join Excite! - http://www.excite.com The most personalized portal on the Web! ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
RE: Again with the start using.
Oddly enough the method using the method below does not display the stack in the Application Browser. Is it working? do start using quote theVariable quote Kevin -==-=-=-=-=-=-==-=-=-=-=-=-=-=-==-=-=-=-=-=- Disclaimer: Any resemblance between the above views and those of my employer, my terminal, or the view out my window are purely coincidental. Any resemblance between the above and my own views is non-deterministic. The question of the existence of views in the absence of anyone to hold them is left as an exercise for the reader. The question of the existence of the reader is left as an exercise for the second god coefficient. (A discussion of non-orthogonal, non-integral polytheism is beyond the scope of this article.) --- On Mon 03/01, Kevin [EMAIL PROTECTED] wrote: From: Kevin [mailto: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Date: Mon, 1 Mar 2004 13:20:42 -0500 (EST) Subject: RE: Again with the start using. brbrI am currently using the following:brbrdo start using quote theVariable quote brbrThis is working I believe however, I am not sure of what this will do in a standalone.brbrKevinbrbrbrbr-==-=-=-=-=-=-==-=-=-=-=-=-=-=-==-=-=-=-=-=-brDisclaimer:brbrAny resemblance between the above views and those of mybremployer, my terminal, or the view out my window are purelybrcoincidental. brAny resemblance between the above and my own views is non-deterministic.brbr The question of the existence of views in the absence of anyone to holdbrthembris left as an exercise for the reader. The question of the existence ofbrthe readerbr is left as an exercise for the second god coefficient. br(A discussion of non-orthogonal, non-integral polytheism is beyond thebrscope of this article.)brbrbrbr --- On Mon 03/01, Kevin [EMAIL PROTECTED] wrote:brFrom: Kevin [mailto: [EMAIL PROTECTED]brTo: [EMAIL PROTECTED]brDate : Mon, 1 Mar 2004 13:12:52 -0500 (EST)brSubject: Again with the start using.brbrbrbrPlease, explain why I am getting a error with the following.brbrbron include theStackbrstart using value(theStack)brend include brbron preOpenStack brpackage library.revbrend preOpenStackbrbrI believe the value is not the approiate construct what should I use?brbrKevinbrbrbrbr-==-=-=-=-=-=-==-=-=-=-=-=-=-=-==-=-=-=-=-=-brDisclaimer:brbrAny resemblance between the above views and those of mybremployer, my terminal, or the view out my window are purelybrcoincidental. brAny resemblance between the above and my own views is non-deterministic.brbr The question of the existence of views in the absence of anyone to holdbrthembris left as an exercise for the reader. The question of the existence ofbrthe readerbr is left as an exercise for the second god coefficient. br(A discussion of non-orthogonal, non-integral polyt heism is beyond thebrscope of this article.)brbrbrbr__br _brJoin Excite! - http://www.excite.combrThe most personalized portal on the Web!br___bruse-revolution mailing listbr[EMAIL PROTECTED]brhttp://lists.runrev.com/mailman/listinfo/use-revolutionbrbrbr___brJoin Excite! - http://www.excite.combrThe most personalized portal on the Web!br___bruse-revolution mailing listbr[EMAIL PROTECTED]brhttp://lists.runrev.com/mailman/listinfo/use-revolutionbr ___ Join Excite! - http://www.excite.com The most personalized portal on the Web! ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
RE: Again with the start using.
on include theStack start using value(theStack) end include Try just: start using theStack Ken Ray Sons of Thunder Software Email: [EMAIL PROTECTED] Web Site: http://www.sonsothunder.com/ ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Again with the start using.
Kevin wrote: Please, explain why I am getting a error with the following. on include theStack start using value(theStack) end include on preOpenStack package library.rev end preOpenStack I believe the value is not the approiate construct what should I use? Hard to say without know the value of theStack. All you need is a stack descriptor, something like: start using components/libMyStuff.rev start using mySubStackName PS: Love your sigline. :) PPS: When I click Reply in Mozilla, I get the both the sender's address and the list address in the Send field of my reply. I only see this on this list. I've been manually deleting the redundant sender address (we know they're already on the list or I wouldn't be able to read their mail). Can the list admin set it up to work like other lists, where Reply simply puts in the address of the list? -- Richard Gaskin Fourth World Media Corporation Developer of WebMerge: Publish any database on any Web site ___ [EMAIL PROTECTED] http://www.FourthWorld.com -==-=-=-=-=-=-==-=-=-=-=-=-=-=-==-=-=-=-=-=- Disclaimer: Any resemblance between the above views and those of my employer, my terminal, or the view out my window are purely coincidental. Any resemblance between the above and my own views is non-deterministic. The question of the existence of views in the absence of anyone to hold them is left as an exercise for the reader. The question of the existence of the reader is left as an exercise for the second god coefficient. (A discussion of non-orthogonal, non-integral polytheism is beyond the scope of this article.) ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Again with the start using.
Kevin wrote: Oddly enough the method using the method below does not display the stack in the Application Browser. Is it working? do start using quote theVariable quote Does the stack name appear in the list of libraried stacks in the Message Box? -- Richard Gaskin Fourth World Media Corporation Developer of WebMerge: Publish any database on any Web site ___ [EMAIL PROTECTED] http://www.FourthWorld.com ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Again with the start using.
All you need is a stack descriptor, something like: start using components/libMyStuff.rev Richard, et al: Does that work? The examples in Rev Dictionary show: start using stack components/libMyStuff.rev so I have always included stack -- Rob Cozens CCW, Serendipity Software Company http://www.oenolog.net/who.htm 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 [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Again with the start using.
Rob Cozens wrote: All you need is a stack descriptor, something like: start using components/libMyStuff.rev Richard, et al: Does that work? The examples in Rev Dictionary show: start using stack components/libMyStuff.rev so I have always included stack It's one of the flexibilities of the language, like using the cursor or simply cursor. In my experience you can optionally drop stack from the start using, toplevel, palette, modal and modeless commands (possibly others as well, but I'm sleep-deprived today and can't think of any more g). -- Richard Gaskin Fourth World Media Corporation ___ [EMAIL PROTECTED] http://www.FourthWorld.com ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Again with the start using.
Richard- Monday, March 1, 2004, 11:00:59 AM, you wrote: RG It's one of the flexibilities of the language, like using the cursor RG or simply cursor. RG In my experience you can optionally drop stack from the start using, RG toplevel, palette, modal and modeless commands (possibly others as well, RG but I'm sleep-deprived today and can't think of any more g). Not always. I just spent several nerve-wracking hours yesterday tracking down a problem in my code that had to do with leaving out the word stack: I have the name of my main stack placed in global gMainStack. Then repeat with x=1 to the number of cards of stack gMainStack ^ gives an *entirely* different result from repeat with x=1 to the number of cards of gMainStack when called from a substack. I have 26 cards in my main stack and I kept getting a result of 2 (the number of cards in the substack I was calling from) from this line before I realized that I had forgotten the keyword stack. Apparently everything after the number of cards argument was just getting ignored if I left off the qualifier. I'm gonna bugzilla this one. I'd rather have the compiler flag an error for me than just treat the rest of the line as a comment. -- -Mark Wieder [EMAIL PROTECTED] ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Again with the start using.
Richard- Monday, March 1, 2004, 10:38:21 AM, you wrote: RG PPS: When I click Reply in Mozilla, I get the both the sender's address RG and the list address in the Send field of my reply. I only see this on RG this list. I've been manually deleting the redundant sender address (we RG know they're already on the list or I wouldn't be able to read their RG mail). Can the list admin set it up to work like other lists, where RG Reply simply puts in the address of the list? Yes, this drives me crazy, too. What usually happens is I end up accidentally sending mail just to the recipient when I really mean to send it just to the list. Listmom, can this be fixed? -- -Mark Wieder [EMAIL PROTECTED] ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Again with the start using.
Does the stack name appear in the list of libraried stacks in the Message Box? Interesting I did not see that in the Message Box! It seems the library stacks in question are listed as Stacks in Use. Is this normal? Kevin --- On Mon 03/01, Richard Gaskin [EMAIL PROTECTED] wrote: From: Richard Gaskin [mailto: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Date: Mon, 01 Mar 2004 10:42:57 -0800 Subject: Re: Again with the start using. Kevin wrote:brbr Oddly enough the method using the method below does not displaybr the stack in the Application Browser. Is it working?br br do start using quote theVariable quote brbrDoes the stack name appear in the list of libraried stacks in the brMessage Box?brbr-- br Richard Gaskinbr Fourth World Media Corporationbr Developer of WebMerge: Publish any database on any Web sitebr ___br [EMAIL PROTECTED] http://www.FourthWorld.combr___bruse-revolution mailing listbr[EMAIL PROTECTED]brhttp://lists.runrev.com/mailman/listinfo/use-revolutionbr ___ Join Excite! - http://www.excite.com The most personalized portal on the Web! ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Again with the start using.
Kevin wrote: Does the stack name appear in the list of libraried stacks in the Message Box? Interesting I did not see that in the Message Box! It seems the library stacks in question are listed as Stacks in Use. Is this normal? Yes. The stackInUse function returns a list of all currently libraried stacks. -- Richard Gaskin Fourth World Media Corporation ___ [EMAIL PROTECTED] http://www.FourthWorld.com ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Again with the start using.
It seems the library stacks in question are listed as Stacks in Use. Is this normal? Yup. When a start using ... statement is processed successfully, the library stack is added to the stacksInUse property. The Message Box button, as you know, displays the contents of stacksInUse, which you can also reference by script: if someLibrary is not in the stacksInUse then answer error someLibraryis unavailable! -- Rob Cozens CCW, Serendipity Software Company http://www.oenolog.net/who.htm 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 [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Again with the start using.
The stackInUse function returns a list of all currently libraried stacks. Richard, et al: FWIW, the Rev Dictionary defines stacksInUse as a property, not a function, and put stacksInUse() from the Message Box returns an error. Get some rest, Richard. :{`) -- Rob Cozens CCW, Serendipity Software Company http://www.oenolog.net/who.htm 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 [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Again with the start using.
Rob Cozens wrote: FWIW, the Rev Dictionary defines stacksInUse as a property, not a function, and put stacksInUse() from the Message Box returns an error. Get some rest, Richard. :{`) I need it, but this is a language subtlety that has conused me even when well rested. I tend to think of a token for read-only data that can only be determined at runtime as a function. After all, if the stacksInUse is a property one might expect to be able do something like: set the stacksInUse to empty I just tried that and it says I can't modify that property, yet indeed I have complete control over its value, only I have to use stop using in a loop rather than the set command, which is otherwise the cardinal way to set the value of a property. So is it truly behaving more like a property than a function? The is no help here, as it can be optionally used with many functions while being required for most properties (though I've never seen the benefit of also allowing it for functions; it seems to slow learnability, evidenced perhaps only by my confusion on this after 15 years g). By what rules could one intuit whether a given token is a function or a property? Jeanne, what's Kamins' argument for this one? And what is the rule that determines when the is necessary? Is it required for custom props only, and optional with all others? -- Richard Gaskin Fourth World Media Corporation ___ [EMAIL PROTECTED] http://www.FourthWorld.com ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Again with the start using.
So, a stack initiated by a start using is not listed in the Application browser. Okay, so when building a standlone what happens to start using statements on preOpenCard? Does the distribution builder redefine start using as NOOP? -==-=-=-=-=-=-==-=-=-=-=-=-=-=-==-=-=-=-=-=- Disclaimer: Any resemblance between the above views and those of my employer, my terminal, or the view out my window are purely coincidental. Any resemblance between the above and my own views is non-deterministic. The question of the existence of views in the absence of anyone to hold them is left as an exercise for the reader. The question of the existence of the reader is left as an exercise for the second god coefficient. (A discussion of non-orthogonal, non-integral polytheism is beyond the scope of this article.) --- On Mon 03/01, Richard Gaskin [EMAIL PROTECTED] wrote: From: Richard Gaskin [mailto: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Date: Mon, 01 Mar 2004 13:08:05 -0800 Subject: Re: Again with the start using. Kevin wrote:brbrDoes the stack name appear in the list of libraried stacks in the brMessage Box? br br Interesting I did not see that in the Message Box! It seems thebr library stacks in question are listed as Stacks in Use.br Is this normal?brbrYes. The stackInUse function returns a list of all currently libraried brstacks.brbr-- br Richard Gaskinbr Fourth World Media Corporationbr ___br [EMAIL PROTECTED] http://www.FourthWorld.combr___bruse-revolution mailing listbr[EMAIL PROTECTED]brhttp://lists.runrev.com/mailman/listinfo/use-revolutionbr ___ Join Excite! - http://www.excite.com The most personalized portal on the Web! ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Again with the start using.
Kevin wrote: So, a stack initiated by a start using is not listed in the Application browser. Stacks in use are not open. Opening a stack is a very different thing. Start using merely inserts the stack script in the message path, but does not open nor render the stack. -- Richard Gaskin Fourth World Media Corporation ___ [EMAIL PROTECTED] http://www.FourthWorld.com ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Again with the start using.
At 1:44 PM -0800 3/1/2004, Richard Gaskin wrote: By what rules could one intuit whether a given token is a function or a property? Jeanne, what's Kamins' argument for this one? You mean Winkler's? I'm not sure myself. I do note though that global properties in HyperTalk can be expressed as properties of HyperCard - for example, if the suspended of HyperCard is true... Written this way, there's no ambiguity - all properties are of something - and it could be that leaving off the of HyperCard was originally a shortcut. Differentiating between global properties and no-parameter functions is difficult for me too, for what it's worth. (It's the main reason that for HT 2.2: The Book, I reorganized the language reference to put the terms in alphabetical order, instead of grouped by type of term - with the first edition, I was always having to look under both Functions and Properties to find things.) But I rarely use the () form for functions that don't take a parameter, so in practice the confusion isn't normally a problem for me personally when scripting. Just when looking things up. ;-) And what is the rule that determines when the is necessary? Is it required for custom props only, and optional with all others? I think so. (But it's strongly recommended to always use the to reference properties; not using the is one of those things that might not always be supported, so) -- jeanne a. e. devoto ~ [EMAIL PROTECTED] http://www.jaedworks.com ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution