Table Column Widths

2006-03-20 Thread Robert Sneidar
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??

2006-03-20 Thread Arthur Urban
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...

2006-03-20 Thread Judy Perry
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

2006-03-20 Thread Mark Wieder
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

2006-03-20 Thread Dan Shafer
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...

2006-03-20 Thread Phil Davis
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...

2006-03-20 Thread James Spencer


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

2006-03-20 Thread Sean Shao
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

_
Don’t 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...

2006-03-20 Thread Mark Smith
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

2006-03-20 Thread Sarah Reichelt
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...

2006-03-20 Thread Sarah Reichelt
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...

2006-03-20 Thread Sarah Reichelt
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?

2006-03-20 Thread Mark Talluto


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?

2006-03-20 Thread Mark Talluto


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

2006-03-20 Thread Mark Talluto


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?

2006-03-20 Thread Dr. Robert E. Ball
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?

2006-03-20 Thread Dan Shafer
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?

2006-03-20 Thread Mark Talluto


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?

2006-03-20 Thread Dan Shafer
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...

2006-03-20 Thread Dan Shafer
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

2006-03-20 Thread Dan Shafer
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

2006-03-20 Thread Ton Kuypers

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

2006-03-20 Thread Chipp Walters

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?

2006-03-20 Thread Robert E. Ball
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?

2006-03-20 Thread J. Landman Gay

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

2006-03-20 Thread Mark Wieder
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

2006-03-20 Thread J. Landman Gay

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

2006-03-20 Thread J. Landman Gay

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?

2006-03-20 Thread Cal Horner
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

2006-03-20 Thread Mark Talluto


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

2006-03-20 Thread Chris Sheffield

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

2006-03-20 Thread J. Landman Gay

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

2006-03-20 Thread Jim Ault
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...

2006-03-20 Thread Josh Mellicker


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

2006-03-20 Thread Sean Shao
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...

2006-03-20 Thread Josh Mellicker


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...

2006-03-20 Thread Judy Perry
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...

2006-03-20 Thread Josh Mellicker


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...

2006-03-20 Thread Mark Wieder
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...

2006-03-20 Thread Rob Cozens


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

2006-03-20 Thread Sivakatirswami
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

2006-03-20 Thread Mark Wieder
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

2006-03-20 Thread Sumner,Walt
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

2006-03-20 Thread Jon Seymour
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...

2006-03-20 Thread Rob Cozens

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

2006-03-20 Thread Iden Rosenthal
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...

2006-03-20 Thread Jim Ault
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...

2006-03-20 Thread Rob Cozens

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

2006-03-20 Thread Rob Cozens

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...

2006-03-20 Thread Rob Cozens


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...

2006-03-20 Thread Geoff Canyon
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...

2006-03-20 Thread Geoff Canyon
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

2006-03-20 Thread Geoff Canyon


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

2006-03-20 Thread Wouter

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

2006-03-20 Thread Preston Shea
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

2006-03-20 Thread Martin Baxter

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...

2006-03-20 Thread Sarah Reichelt
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

2006-03-20 Thread David Burgun

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

2006-03-20 Thread David Burgun

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

2006-03-20 Thread Wouter


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

2006-03-20 Thread Chipp Walters

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

2006-03-20 Thread Chipp Walters



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

2006-03-20 Thread Geoff Canyon


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...

2006-03-20 Thread Chipp Walters

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...

2006-03-20 Thread Stephen Barncard

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...

2006-03-20 Thread Geoff Canyon
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

2006-03-20 Thread Mark Smith
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

2006-03-20 Thread Mark Smith
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