Hi Fred, > I have just hand-rolled my first real handler/function.
Congrats and welcome to the club :-) > It, puts the list of > files that end in "txt" which are in the same folder/directory as the > stack into > a variable called theList. > ----------------- > on buildPickList theList > set the itemDelimiter to "/" > set the defaultFolder to item 1 to -2 of the effective filename of > this stack > put the files into theFileList > repeat for each line thisLine in theFileList > if char -3 to -1 of thisLine is "txt" then put thisLine & return > after theList > end repeat > end buildPickList > ----------------- > > Since I am new to programming and Rev I've got questions regarding > variables. I > haven't declared the variables at the beginning of the function. Is > this good > practice? It is not necessary to declare a variable that will only be used in one handler. The "mouseup" handler in this case. If a variable needs to be valid in a complete script then you have to declare it as a "local": ########## local yourvar on mouseneter put fld 1 into yourvar end mouseener on mouseup ### do somtehing with yourvar end mouseup on mouseleave put yourvar into fld 1 end mouseleave etc... ############ If you need the value of a variable in all your scripts in all your stacks (during one RR-session) declare it as global. See the index for "local" and "global". > There is a variable created in this line "repeat for each line > thisLine in > theFileList" which I filched the method from the "repeat" section of > the > Transcript dictionary. Why should it work? I would have thought I > would have > had to do something like below (except "this" is reserved for cards > and stacks) > : > > "repeat for each line of theFileList > set theLine to this line... " > > It seems logically inconsistent to create variable simply by placing > it after > "repeat for each line". Why does it work? Sounds like a philosophical question ;-) Because the engine is programmed that way. > Aside the above can the function be improved/made more efficent? Yes :-) on buildPickList theList set the itemDelimiter to "/" set the defaultFolder to item 1 to -2 of the effective filename of this stack put the files into theFileList filter theFileList with "*.txt" ## this will only leave files ending with "*.txt" in theFileList ## and you can save the variable "theList" for bad times or winter ;-) ## read "is not necessary anymore" end buildPickList > TIA, Fred D You're welcome. Have a nice weekend Regards Klaus Major [EMAIL PROTECTED] _______________________________________________ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
