Discussion:
Revolution vs Visual Basic
Haitham Abdulla
2006-03-06 06:43:35 UTC
Permalink
Hi,



May I take few minutes please?



When Revolution with some programming languages such as C++ and Java, it is
clear that designing and creating applications (or whatever) using
Revolution is much easier than those programming languages. But what is your
opinion when comparing it with Visual Basic .NET or Visual Basic 2005
Express?



Visual Basic .NET has many features similar to those in Revolution. It is
very easy to design forms and interfaces. There are many components that you
can drag and drop into your forms. VB .NET has a very clear and readable
syntax. It has strong debugging tools. And much more.



Question (1):

Are there some strong features in Revolution that could make it better than
VB .NET. Would you please list the features for me?



Question (2):

VB .NET has some great built-in components and I want to ask whether
Revolution has them. Some of those components are:

a. Font Dialog Box

b. Color Dialog Box

c. Save Dialog Box

d. Print Dialog Box



Question (3):

VB .NET has the Tree Component which makes you able to build something
similar to the trees of folders and files in Windows Explorer. It is very
easy to use and you can expand and add items into the tree dynamically. Is
there something similar in Revolution? Is it easy to do such thing?



Question (4):

We can build easily a Tool Bar in VB .NET and add icons in the Tool Bar. We
can also easily draw pictures for the icons within VB .NET or we can attach
any saved pictures to the icons.

Is there something similar in Revolution? Is it easy to do so?



Question (5):

We, as programmers, used to use some techniques and algorithms in our
programs. Sometimes we need to use Stacks, Queues, Hash Tables,
Dictionaries, etc. All these objects, or most of them, are built in VB .NET
and we can use them easily.

Does Revolution have these objects?

Or can we define or create something similar?



Question (6):

When we want to produce the program (or application) that is created by
Revolution, we can produce it as EXE file (in windows). But what if we need
to make some kind of Installation or Setup? Can we do it?

What about if the users want to uninstall our program (or software)? Can
they?



Sorry for bothering





Regards,
Mark Smith
2006-03-08 14:45:37 UTC
Permalink
Haitham, I can't answer anything like all your questions, but I'll
Post by Haitham Abdulla
VB .NET has some great built-in components and I want to ask whether
a. Font Dialog Box
no, but I think something may be available from someone on this
list.
Post by Haitham Abdulla
b. Color Dialog Box
yes
Post by Haitham Abdulla
c. Save Dialog Box
yes
Post by Haitham Abdulla
d. Print Dialog Box
yes
Post by Haitham Abdulla
VB .NET has the Tree Component which makes you able to build something
similar to the trees of folders and files in Windows Explorer. It is very
easy to use and you can expand and add items into the tree
dynamically. Is
there something similar in Revolution? Is it easy to do such thing?
Not built in, but I think there are a couple of tree view components
from users of this list
Post by Haitham Abdulla
We can build easily a Tool Bar in VB .NET and add icons in the Tool Bar. We
can also easily draw pictures for the icons within VB .NET or we can attach
any saved pictures to the icons.
Is there something similar in Revolution? Is it easy to do so?
If you mean a row of buttons with custom icons, extremely easy
Post by Haitham Abdulla
We, as programmers, used to use some techniques and algorithms in our
programs. Sometimes we need to use Stacks, Queues, Hash Tables,
Dictionaries, etc. All these objects, or most of them, are built in VB .NET
and we can use them easily.
not really, but a lot of the power in Revolution is in it's chunk
expressions, and many different kinds of structures can be easily
made and used.
Important to know is that in Revolution, effectively everything is a
string, there are no types. This is both a disadvantage and a huge
advantage.
A little out of my depth in saying this, but I don't think Revolution
would be optimal for writing large and complex image manipulation
routines, for example.

I'll leave it there, as I have no experience of VB, so perhaps others
can offer useful comparisons.

Best

Mark
Mikey
2006-03-08 15:28:05 UTC
Permalink
Post by Mark Smith
Important to know is that in Revolution, effectively everything is a
string, there are no types. This is both a disadvantage and a huge
advantage.
This is misleading. Variables in all xtalk languages are not
strongly-typed. They are not strings, longints, reals, booleans, or
anything else. As programmers people frequently think of untyped
variables as strings simply because it is the type that is most
commonly used in all programming. However, since variables are
untyped, it is possible to take pi, for instance, and in one statement
use it in a mathematical expression:

put pi*diameter into circumference

And then on the very next line use it as a string:

answer "The circumference is:"&&circumference


While one of the real strengths of xtalk languages is that they have
very strong string manipulation routines through chunk expressions,
that does not make variables in an xtalk language a string. The
difference may seem subtle, but it is important - there is no need to
cast a variable when it is used in different contexts.
--
On the first day, God created the heavens and the Earth
On the second day, God created the oceans.
On the third day, God put the animals on hold for a few hours,
and did a little diving.
And God said, "This is good."
Garrett Hylltun
2006-03-08 18:28:15 UTC
Permalink
Haitham, I can't answer anything like all your questions, but I'll have
Post by Haitham Abdulla
VB .NET has some great built-in components and I want to ask whether
a. Font Dialog Box
no, but I think something may be available from someone on this list.
The following will at least get a list of ANSI fonts and sort them in
alphabetical order for you:

put fontNames() into varTempPreProcess
put the number of lines of varTempPreProcess into varTemp
put 1 into varCounter
repeat varTemp times
put line varCounter of varTempPreProcess into varTempFont
if the fontLanguage of varTempFont is "ANSI" then
put varTempFont & return after varFontMenuBuild
end if
put varCounter + 1 into varCounter
end repeat
sort lines of varFontMenuBuild


the variable "varFontMenuBuild" now holds the sorted list of fonts.
David Burgun
2006-05-04 12:07:25 UTC
Permalink
Post by Mark Smith
A little out of my depth in saying this, but I don't think
Revolution would be optimal for writing large and complex image
manipulation routines, for example.
I'll leave it there, as I have no experience of VB, so perhaps
others can offer useful comparisons.
I've used a combination of RunRev to run the GUI and a C/C++ External
to do the image processing. This combination works really well giving
you the ease and speed of implementation in RunRev and the speed of C/
C++ where it counts.

All the Best
Dave
Mark Schonewille
2006-05-04 12:39:51 UTC
Permalink
Can you tell us more about that external?

Mark

--

Economy-x-Talk
Consultancy and Software Engineering
http://economy-x-talk.com
http://www.salery.biz

Salery is the easiest way to get your own web store on-line: http://
www.salery.biz/salery.html
Post by David Burgun
I've used a combination of RunRev to run the GUI and a C/C++
External to do the image processing. This combination works really
well giving you the ease and speed of implementation in RunRev and
the speed of C/C++ where it counts.
All the Best
Dave
Viktoras Didziulis
2006-05-04 13:11:40 UTC
Permalink
Hi,

can anyone give any hint on how (and if) is it possible to arrange a
dsn-less connection from transcript. I have a bunch of text files that
represent a simple relational database. Does Revolution have any internal
SQL module (like Perl's dbi), so I could sql-query text tables directly
without any connection to external drivers? Or via external
ODBC/MDAC/ADODB/whatever driver (like Microsoft Text Driver (*.txt; *.csv)),
but without registering the database for the system, so I can distribute it
with the executable and run anywhere without any pre-configuration.

As always, thank you all very much for your help!
Best wishes
Viktoras
Mark Smith
2006-05-04 13:29:12 UTC
Permalink
Of course, when I wrote 'Revolution', I meant 'Transcript', but now
Transcript is called Revolution, I can pretend I was right all along!

Best,

Mark
Post by David Burgun
Post by Mark Smith
A little out of my depth in saying this, but I don't think
Revolution would be optimal for writing large and complex image
manipulation routines, for example.
I'll leave it there, as I have no experience of VB, so perhaps
others can offer useful comparisons.
I've used a combination of RunRev to run the GUI and a C/C++
External to do the image processing. This combination works really
well giving you the ease and speed of implementation in RunRev and
the speed of C/C++ where it counts.
All the Best
Dave
_______________________________________________
use-revolution mailing list
Please visit this url to subscribe, unsubscribe and manage your
http://lists.runrev.com/mailman/listinfo/use-revolution
Bob Warren
2006-03-08 15:45:28 UTC
Permalink
Post by Mark Smith
Post by Haitham Abdulla
VB .NET has the Tree Component which makes you able to build something
similar to the trees of folders and files in Windows Explorer. It
is very
easy to use and you can expand and add items into the tree
dynamically. Is
there something similar in Revolution? Is it easy to do such thing?
Not built in, but I think there are a couple of tree view components
from users of this list
-------------------------------------------------------------------
Haitham:

Please visit the following webpage for details of file/picture chooser
widgets written in Rev:

http://www.howsoft.com/runrev/stacks.htm

These widgets do, of course, include HD trees.

The standalone widgets exist for Windows XP/2000 and Ubuntu Linux. In
view of the fact that I do not possess sufficient machines for testing
versions for MAC and other flavours of Linux, I intend to release the
source stacks so that other developers can make the adaptions for these
platforms. I shall be releasing the stacks within the next few days.

What this means for you personally, apart from using the widgets as they
stand, is that you can adapt the HD treeviews as you want.

I don't know whether or not other programmers would find it easy or
difficult to produce HD treeviews in Rev. The fact is, that so far they
don't seem to have done it very much. Certainly, for me, the development
of these stacks was non-trivial to say the least. (On the other hand, it
was my first real attempt at producing an application in Rev. In actual
fact, I did it in VB6 first, and then "translated" it into Transcript.)

I believe that one other programmer has produced a treeview widget
fairly recently (but NOT for the HD), which you can add to or subtract
from. If you look back on the Use-Rev Lists, you are sure to find it

Regards,
Bob Warren
Ken Ray
2006-03-08 18:46:41 UTC
Permalink
Post by Garrett Hylltun
put fontNames() into varTempPreProcess
put the number of lines of varTempPreProcess into varTemp
put 1 into varCounter
repeat varTemp times
put line varCounter of varTempPreProcess into varTempFont
if the fontLanguage of varTempFont is "ANSI" then
put varTempFont & return after varFontMenuBuild
end if
put varCounter + 1 into varCounter
end repeat
sort lines of varFontMenuBuild
This could be shortened thusly:

put "" into varFontMenuBuild
repeat for each line varTempFont in fontNames()
if the fontLanguage of varTempFont = "ANSI" then put varTempFont & \
CR after varFontMenuBuild
end repeat
delete char -1 of varFontMenuBuild -- remove trailing CR
sort lines of varFontMenuBuild

Just curious... any particular reason you need just the ANSI font names if
the list of fonts returned by fontNames() is what's installed in the
computer?

If not, then it's even easier:

put fontNames() into varFontMenuBuild
sort lines of varFontMenuBuild


Ken Ray
Sons of Thunder Software
Web site: http://www.sonsothunder.com/
Email: ***@sonsothunder.com
Garrett Hylltun
2006-03-08 19:35:13 UTC
Permalink
Ken Ray wrote:

[snip]
Post by Ken Ray
Just curious... any particular reason you need just the ANSI font names if
the list of fonts returned by fontNames() is what's installed in the
computer?
put fontNames() into varFontMenuBuild
sort lines of varFontMenuBuild
I would end up with font names that I believe are in unicode characters
and did not display well in Rev. And I do not know how to resolve that
at this time :-(

Example:

Geneva CE
Monaco CE
Times CE
Helvetica CE
Courier CE
ÉqÉâÉMÉmäpÉS Pro W6
ÉqÉâÉMÉmäpÉS Pro W3
ÉqÉâÉMÉmä€ÉS Pro W4
ÉqÉâÉMÉmñæí© Pro W6
ÉqÉâÉMÉmñæí© Pro W3
ª™Œƒœ???
ÉqÉâÉMÉmäpÉS Std W8
Geeza Pro Bold
Lucida Grande CE

Lines 6 through 12 show as characters above the 159 character range and
are not readable on my English setup here. I assume that the fonts on
those lines are unicode.

-Garrett
Devin Asay
2006-03-08 22:26:33 UTC
Permalink
<snip>
I would end up with font names that I believe are in unicode
characters and did not display well in Rev. And I do not know how
to resolve that at this time :-(
Geneva CE
Monaco CE
Times CE
Helvetica CE
Courier CE
ÉqÉâÉMÉmäpÉS Pro W6
ÉqÉâÉMÉmäpÉS Pro W3
ÉqÉâÉMÉmä€ÉS Pro W4
ÉqÉâÉMÉmñæí© Pro W6
ÉqÉâÉMÉmñæí© Pro W3
ª™Œƒœ???
ÉqÉâÉMÉmäpÉS Std W8
Geeza Pro Bold
Lucida Grande CE
Lines 6 through 12 show as characters above the 159 character range
and are not readable on my English setup here. I assume that the
fonts on those lines are unicode.
Try this, Garrett:

on mouseUp
put empty into fld "fontList"
repeat with i = 1 to number of lines in the fontNames
put uniencode(line i of the fontNames,"Japanese") & uniencode
(cr,"ANSI") after fld "fontList"
end repeat
set the textFont of line 1 to -1 of fld "fontList" to the textFont
of fld "fontList","Japanese"
end mouseUp

This gets it *mostly* right, I think.

Devin


Devin Asay
Humanities Technology and Research Support Center
Brigham Young University
Devin Asay
2006-03-09 00:09:37 UTC
Permalink
I'm in obsessive mode with unicode. Here's the new and improved version:

on mouseUp
put empty into fld "fontList"
put the fontNames into fNames
sort lines of fNames by word 1 of each
put fnames
repeat for each line tLine in fNames
if char 1 of tLine is "#" then
put uniencode(tLine,"Korean") & uniencode(cr,"ANSI") after fld
"fontList"
else
put uniencode(tLine,"Japanese") & uniencode(cr,"ANSI") after
fld "fontList"
end if
end repeat
delete char -2 to -1 of fld "fontList"
set the textFont of line 1 to -1 of fld "fontList" to the textFont
of fld "fontList","Japanese"
set the scroll of fld "fontList" to 0
end mouseUp

There still may be some problems, but since I can't read Chinese or
Japanese, I have to trust that those font names came out properly.
Post by Chipp Walters
on mouseUp
put empty into fld "fontList"
repeat with i = 1 to number of lines in the fontNames
put uniencode(line i of the fontNames,"Japanese") & uniencode
(cr,"ANSI") after fld "fontList"
end repeat
set the textFont of line 1 to -1 of fld "fontList" to the
textFont of fld "fontList","Japanese"
end mouseUp
This gets it *mostly* right, I think.
Devin Asay
Humanities Technology and Research Support Center
Brigham Young University
Garrett Hylltun
2006-03-09 00:17:04 UTC
Permalink
But isn't it just easier to filter out the unicode fonts and just list
the ANSI fonts like I did in my original post?

I'm just not sure of the need to actually list the unicode fonts, unless
you're providing support in a program for these languages.

-Garrett
Post by Chipp Walters
on mouseUp
put empty into fld "fontList"
put the fontNames into fNames
sort lines of fNames by word 1 of each
put fnames
repeat for each line tLine in fNames
if char 1 of tLine is "#" then
put uniencode(tLine,"Korean") & uniencode(cr,"ANSI") after fld
"fontList"
else
put uniencode(tLine,"Japanese") & uniencode(cr,"ANSI") after fld
"fontList"
end if
end repeat
delete char -2 to -1 of fld "fontList"
set the textFont of line 1 to -1 of fld "fontList" to the textFont of
fld "fontList","Japanese"
set the scroll of fld "fontList" to 0
end mouseUp
There still may be some problems, but since I can't read Chinese or
Japanese, I have to trust that those font names came out properly.
Post by Chipp Walters
on mouseUp
put empty into fld "fontList"
repeat with i = 1 to number of lines in the fontNames
put uniencode(line i of the fontNames,"Japanese") &
uniencode(cr,"ANSI") after fld "fontList"
end repeat
set the textFont of line 1 to -1 of fld "fontList" to the textFont
of fld "fontList","Japanese"
end mouseUp
This gets it *mostly* right, I think.
Devin Asay
Humanities Technology and Research Support Center
Brigham Young University
_______________________________________________
use-revolution mailing list
Please visit this url to subscribe, unsubscribe and manage your
http://lists.runrev.com/mailman/listinfo/use-revolution
Devin Asay
2006-03-09 00:59:11 UTC
Permalink
Post by Garrett Hylltun
But isn't it just easier to filter out the unicode fonts and just
list the ANSI fonts like I did in my original post?
I'm just not sure of the need to actually list the unicode fonts,
unless you're providing support in a program for these languages.
You're probably right, although support for unicode fonts in Rev
fields is free, since Rev just leverages the OS's unicode
capabilities. Besides, rendering the font names in unicode was a
challenge that had taken on a life of its own. It had to be beaten. ;-)

Now I can go back to whatever productive work I was doing before.

Devin

Devin Asay
Humanities Technology and Research Support Center
Brigham Young University
Devin Asay
2006-03-09 01:07:46 UTC
Permalink
Okay, this is the FINAL final version. I've been programming in
Revolution for almost five years, and today is the first time I've
noticed the fontLanguage function. I love this language!

on mouseUp
put empty into fld "fontList"
put the fontNames into fNames
sort lines of fNames by word 1 of each
put fnames
repeat for each line tLine in fNames
put uniencode(tLine,the fontlanguage of tLine) & uniencode
(cr,"ANSI") after fld "fontList"
end repeat
delete char -2 to -1 of fld "fontList"
set the textFont of line 1 to -1 of fld "fontList" to the textFont
of fld "fontList","Unicode"
set the scroll of fld "fontList" to 0
end mouseUp

I promise I'm done now.

Devin
Post by Chipp Walters
on mouseUp
put empty into fld "fontList"
put the fontNames into fNames
sort lines of fNames by word 1 of each
put fnames
repeat for each line tLine in fNames
if char 1 of tLine is "#" then
put uniencode(tLine,"Korean") & uniencode(cr,"ANSI") after
fld "fontList"
else
put uniencode(tLine,"Japanese") & uniencode(cr,"ANSI") after
fld "fontList"
end if
end repeat
delete char -2 to -1 of fld "fontList"
set the textFont of line 1 to -1 of fld "fontList" to the
textFont of fld "fontList","Japanese"
set the scroll of fld "fontList" to 0
end mouseUp
<snip>

Devin Asay
Humanities Technology and Research Support Center
Brigham Young University
Richard Gaskin
2006-03-09 02:41:37 UTC
Permalink
Post by Devin Asay
Okay, this is the FINAL final version. I've been programming in
Revolution for almost five years, and today is the first time I've
noticed the fontLanguage function. I love this language!
on mouseUp
put empty into fld "fontList"
put the fontNames into fNames
sort lines of fNames by word 1 of each
put fnames
repeat for each line tLine in fNames
put uniencode(tLine,the fontlanguage of tLine) &
uniencode(cr,"ANSI") after fld "fontList"
end repeat
delete char -2 to -1 of fld "fontList"
set the textFont of line 1 to -1 of fld "fontList" to the textFont of
fld "fontList","Unicode"
set the scroll of fld "fontList" to 0
end mouseUp
Good work. Now what do we do to get a Font menu to display the font
names correctly?

--
Richard Gaskin
Managing Editor, revJournal
_______________________________________________________
Rev tips, tutorials and more: http://www.revJournal.com
Kenji Kojima
2006-03-09 14:24:24 UTC
Permalink
Now what do we do to get a Font menu to display the font names
correctly?
Japanese sample:
go url "http://www.kenjikojima.com/runrev/handbook/download/
jpnFontmenu.rev"


--
Kenji Kojima
CHIBI NINJA free:
http://www.kenjikojima.com/chibinin/
Richard Gaskin
2006-03-09 19:31:51 UTC
Permalink
Post by Kenji Kojima
Now what do we do to get a Font menu to display the font names
correctly?
go url
"http://www.kenjikojima.com/runrev/handbook/download/jpnFontmenu.rev"
Nice work -- thanks.

Is there a way to do that for mixed Unicode encodings, so that we could
show each font in its own language?
--
Richard Gaskin
Fourth World Media Corporation
___________________________________________________________
***@FourthWorld.com http://www.FourthWorld.com
Stephen Barncard
2006-03-09 19:42:29 UTC
Permalink
Aha! I see this again in the Japanese Font menu just mentioned.

Sometimes combo boxes look really strange - like the field part in
the control has huge table-like borders plus a 'barber-pole' graphic
behind it (usually used for progress indication). A real mess and one
can't read the field text. Has this been reported?


sqb
--
stephen barncard
s a n f r a n c i s c o
- - - - - - - - - - - -
J. Landman Gay
2006-03-09 20:28:18 UTC
Permalink
Post by Stephen Barncard
Aha! I see this again in the Japanese Font menu just mentioned.
Sometimes combo boxes look really strange - like the field part in the
control has huge table-like borders plus a 'barber-pole' graphic behind
it (usually used for progress indication). A real mess and one can't
read the field text. Has this been reported?
Yes. I saw it once (and bugzillaed it), and it has come into the tech
queue a couple of times too. One of the RR people also reports he's seen
it. The problem is -- no one can reproduce it at will, and restarting
the app clears the problem. If you get a recipe, do tell. I haven't been
able to reproduce it again since it happened that one time, and I don't
know what triggered it.

By the way, it isn't just combo boxes. I saw it in the dictionary and
inspector.
--
Jacqueline Landman Gay | ***@hyperactivesw.com
HyperActive Software | http://www.hyperactivesw.com
Mark Wieder
2006-03-10 05:45:44 UTC
Permalink
Jacque-
Post by J. Landman Gay
Yes. I saw it once (and bugzillaed it), and it has come into the tech
I got it and BZed it as well, but I couldn't reproduce it.
--
-Mark Wieder
***@ahsoftware.net
Dan Shafer
2006-03-08 18:56:47 UTC
Permalink
Haltham.....

(Keep in mind as you read this that although I'm a language junkie and I've
done a bit of work in VB, though not recently, I'm really a Mac guy so some
other Windows developers here may very well declare me to be all wet. I
would bow to their judgement.)

Revolution's largest claim to fame is clearly that it allows the creation of
cross-platform standlone applications from a single development platform. If
that's an important factor for you, then obviously VB variants aren't going
to be the answer because you cannot create OS X or Linux/Unix apps from it.
If, however, you are purely a Windows developer and if you're already
steeped in VB syntax, methodologies and architecture, then my guess is
you'll find yourself well-served in the long run by staying with VB.

A lot of what you are looking for in Rev isn't built in but as others have
shown in their answers here, creating the functionality in Rev is close to
trivial. But the programming paradigm in Revolution with its Transcript
xTalk language is so substantially different from the approaches taken by VB
that twisting your head around it may prove challenging. That challenge is
definitely worthwhile if you plan to create cross-platform software but if
you don't, I'm not sure it's worth it.


--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dan Shafer, Information Product Consultant and Author
http://www.shafermedia.com
Get my book, "Revolution: Software at the Speed of Thought"
Stephen Barncard
2006-03-08 19:19:09 UTC
Permalink
On the other hand, many of us here have toiled with other languages
for years, but found Transcript the most natural of all - you can
literally 'think' the routines and write them.
Post by Dan Shafer
Haltham.....
that twisting your head around it may prove challenging. That challenge is
definitely worthwhile if you plan to create cross-platform software but if
you don't, I'm not sure it's worth it.
--
stephen barncard
s a n f r a n c i s c o
- - - - - - - - - - - -
Andre Garzia
2006-03-08 19:20:01 UTC
Permalink
Haltham,

another nice features of Rev that I don't find in the standard
computer languages out there are:

* Avoid the write-compile-debug cycle. Your stack is always ready,
your code too. Just change the tool and interact with it. If it
explodes, change the tool and fix it. This might appear silly at
first glance but this is one huge time saver. Using tradicional
languages you might end up building tons of buggy standalones as you
debug your app. With Rev things are just more productive. For
example, Rob had this huge 90mb stack that took some minutes to
build. If he had to build it everytime he wanted to test something,
he'd end up loosing time...

* Its easy to create custom tools to help you code. As you get more
used to us and this list, you'll see that many developers end up
building their own palletes and environment to suit their tastes.
It's not like ActiveX and VCL controls of windows. It's like simple
tools built with Rev to help you work the way you want to work. Scott
Rossi for example built some very nice alignment, gradient and color
tools to suit his taste. I have my own set of network tools. I never
saw VB developers building such tools as easy as we do here.

* Revolution is fun and powerfull. Revolution has some 'new' concepts
that tradicional coders might need to learn such as how stack works,
the message path, all about custom properties and other features. But
those features enable you to create very powerfull tools very fast.
The stacks being able to load and use other stacks across networks
make it very easy to share code and to work in groups, it also enable
you to create auto-update tools very easily. The message path that
allows you to dispatch and listen to messages making your code flow
in ways that C/C++ coders can't do and Custom Properties, your cool
way to store all kinds of things. I've seen pdfs, fonts, all packed
inside little props of buttons ready to being unpacked as needed or
copied to other stacks, it's not like other languages containers.
Custom Props are a way to tune an object to your tastes and allied to
the message path system allows you to build beautiful softwares that
are really easy to understand and mantain (which is always productive
wise).

* Oh, did we talked about cross platform yet? :-)

Cheers and welcome
Andre
Post by Dan Shafer
Haltham.....
(Keep in mind as you read this that although I'm a language junkie and I've
done a bit of work in VB, though not recently, I'm really a Mac guy so some
other Windows developers here may very well declare me to be all wet. I
would bow to their judgement.)
Revolution's largest claim to fame is clearly that it allows the creation of
cross-platform standlone applications from a single development platform. If
that's an important factor for you, then obviously VB variants
aren't going
to be the answer because you cannot create OS X or Linux/Unix apps from it.
If, however, you are purely a Windows developer and if you're already
steeped in VB syntax, methodologies and architecture, then my guess is
you'll find yourself well-served in the long run by staying with VB.
A lot of what you are looking for in Rev isn't built in but as
others have
shown in their answers here, creating the functionality in Rev is close to
trivial. But the programming paradigm in Revolution with its
Transcript
xTalk language is so substantially different from the approaches taken by VB
that twisting your head around it may prove challenging. That
challenge is
definitely worthwhile if you plan to create cross-platform software but if
you don't, I'm not sure it's worth it.
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dan Shafer, Information Product Consultant and Author
http://www.shafermedia.com
Get my book, "Revolution: Software at the Speed of Thought"
Mikey
2006-03-08 19:49:46 UTC
Permalink
Post by Dan Shafer
A lot of what you are looking for in Rev isn't built in but as others have
shown in their answers here, creating the functionality in Rev is close to
trivial. But the programming paradigm in Revolution with its Transcript
xTalk language is so substantially different from the approaches taken by VB
that twisting your head around it may prove challenging. That challenge is
definitely worthwhile if you plan to create cross-platform software but if
you don't, I'm not sure it's worth it.
I would tend to agree with and disagree with this statement at the
same time. On the one hand, one of the things that is really great
about all of the HC derrivatives is that you have access to, and can
change, almost anything you want at any time. It makes customizing
the environment or adding onto it easy, and dare I say, fun.

I would disagree with the statement aht the language is so different
that wrapping your head around it can be challenging, and might not be
worth it. The advantage that Transcript and all xTalk languages have
is that the paradigm is really trivial BECAUSE it is so different than
most modern languages - it is, IMHO, more natural, and therefore
easier to learn. The language itself is conversational, so the syntax
is very similar to English grammar, the vocabulary is nearly obvious
set the color of me to blue
get the rect of me
put item 3 of theList into address

Revolution's grandfather, HyperCard made the task of building
prototypes a trivial enterprise. Revolution is also easy to use to
build prototypes. The overhead that is usually associated with
building a project is for the most part abssent. You don't have to
cast and instantiate anything. Types are context-implied (see my
previous example). In short it is REALLY easy to build something
quickly.

Transcript's ability to parse strings (and make the code required to
parse strings) means that one of the most onerous tasks in computing
is very easy to achieve with minimal effort. In development studies,
the two most common problems that programmers face are parsing and
communication (either between projects, devices, or programs). All of
these functions are straghtforward and simple.

I would rate Revolution's learning curve (to the point where you can
be productive) as low-medium. Once you understand things like
"inheritence path" and the basic grammar you should be able to pick up
RR in no time.
--
On the first day, God created the heavens and the Earth
On the second day, God created the oceans.
On the third day, God put the animals on hold for a few hours,
and did a little diving.
And God said, "This is good."
Kay C Lan
2006-03-09 14:15:10 UTC
Permalink
Post by Mikey
Revolution's grandfather, HyperCard made the task of building
prototypes a trivial enterprise. Revolution is also easy to use to
build prototypes. The overhead that is usually associated with
building a project is for the most part abssent. You don't have to
cast and instantiate anything. Types are context-implied (see my
previous example). In short it is REALLY easy to build something
quickly.
So is this good or bad?

Last month I visited my brother and took my mountain bike so we could ride
some trails. For various reasons my bike had road tyres on it so when I
arrived I fitted some new nobby tyres.

I enjoy cycling and have one of those cyclecomputers so I can record my
rides. Unfortunately I'd long lost the manual for the cyclecomputer so
couldn't modify the tyre diameter to reflect the new tyres. If you hit
80kmph you don't want it to only say 78.5:-) So for a couple of days I just
jotted down the ride details on a piece of paper.

Then one day when I had two hours to spare I whipped up a quick stack that
consisted of two buttons - one to select the tyre size in the computer, the
other to select the tyre size on the bike. Then 10 fields, basically 6
fields to enter the data in and 4 fields to show the 'corrected' data.
Fields like 'Time' didn't need correcting.

The longest part of the whole process was finding (on the internet, where I
could have found the procedure to enter the new diameter into my
cyclecomputer) and typing the 52 standard tyre sizes into a custom property,
the single property being used by both buttons, and then creating the switch
statement to relate these tyre sizes to their specific diameters!

The next longest part was organising to transfer the data into the stack
which stores the record of all my rides - a stack I created about 3 months
ago to takeover from an AppleWorks spreadsheet:-)

The fields and buttons only took minutes to place and size and the single
function, a simple percentage adjustment which was used by all fields that
needed correcting, took only a little longer. Could have saved on typing if
I wasn't so partial for very descriptive variable names like
tMyTyreSizeStoredInCyclecomputer

Of course I do get a real kick out of the comments I get from my brother
(always ribbing me about Macs being toys, he sells U$80,000 - 140,000+
software for a living) - for a Mac user you sure seem to tinker with the
insides a lot.

So my problem with this is, I must produce one of these every couple of
weeks - OoooHhh look a problem, I could write a stack to solve that - but I
never actually FINISH anything because I've 'discovered' another problem I
could solve with REV!

I never get around to building proper menus, the aesthetic leave a lot to be
desired and I could count on one hand how many standalones I've actually
produced. I have illusions of grandeur, that one day I'll make something for
someone else, which is why I entered all 52 tyre sizes rather than just the
two I needed.

And I know I'm not the only one, I take great reassurance from the sporadic
post I read of people who run everything within the IDE because their
solutions are only for them!

So consider yourself warned;-)
Dan Shafer
2006-03-10 21:48:19 UTC
Permalink
Thanks for sharing that delightful story, Kay. I'm sure it resonates with a
LOT of us.

On 3/9/06, Kay C Lan <***@gmail.com> wrote:


--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dan Shafer, Information Product Consultant and Author
http://www.shafermedia.com
Get my book, "Revolution: Software at the Speed of Thought"
Dan Shafer
2006-03-10 21:43:15 UTC
Permalink
Just by way of explanation....

I was responding to the specific user's specific question. If you come from
a high comfort level in VB and you are building Windows-only apps, then the
result is likely as I describe. For anyone whose situation does not fit that
profile, my comment is less applicable or even totally wrong and irrelevant.
Post by Mikey
Post by Dan Shafer
A lot of what you are looking for in Rev isn't built in but as others
have
Post by Dan Shafer
shown in their answers here, creating the functionality in Rev is close
to
Post by Dan Shafer
trivial. But the programming paradigm in Revolution with its Transcript
xTalk language is so substantially different from the approaches taken
by VB
Post by Dan Shafer
that twisting your head around it may prove challenging. That challenge
is
Post by Dan Shafer
definitely worthwhile if you plan to create cross-platform software but
if
Post by Dan Shafer
you don't, I'm not sure it's worth it.
I would tend to agree with and disagree with this statement at the
same time.
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dan Shafer, Information Product Consultant and Author
http://www.shafermedia.com
Get my book, "Revolution: Software at the Speed of Thought"
Chipp Walters
2006-03-08 22:20:11 UTC
Permalink
Haitham (and others):

While there is not Font Dialog Box, it took me only 5 minutes to create one.

You can too. It's easy.

Create a stack called "fontTest", then create a subStack called
"answerFont". Stack "answerFont" will be the dialog box. Stack
"fontTest" is the stack from which it will be called.

Create a button named "Pick a Font" on stack "fontTest" and set the
script of it to:

on mouseUp

--> LOADS 'answerFont' INTO MEMORY
start using stack "answerFont"

--> CALLS THE answerFont FUNCTION FROM STACK "answerFont"
put answerFont() into tFont

--> UNLOADS STACK "answerFont"
stop using stack "answerFont"

--> CHECKS TO SEE IF A FONT WAS RETURNED
if tFont is "" then exit to top

--> DISPLAY THE FONT RETURNED
answer tFont
end mouseUp

Then on the "answerFont" substack, add a single list field named
"theFonts" and a "Cancel" and "OK" button.

Script of Cancel Button:

on mouseUp
set the dialogData to ""
close this stack
end mouseUp

Script of OK button:

on mouseUp
put the hilitedLines of fld "theFonts" into tLineNum
if tLineNum is empty then
beep
answer information "Please choose a font!"
exit mouseUp
end if
set the dialogData to line tLineNum of fld "theFonts"
close this stack
end mouseUp

Script of the "answerFont" stack:

function answerFont
modal stack "answerFont"
return the dialogData
end answerFont

on openStack
put the fontNames into tFontList
sort tFontList
put tFontList into fld "theFonts"
end openStack

That's all there is to it! And that's why it's not necessary to have a
Font Dialog Box as it can be created in just a few minutes! :-)

This font dialog box is very portable and can be used in any project.
All you have to do is copy the subStack "answerFont" to your mainStack
and then insert the following code whenever you want your user to choose
a font (for instance a choose font button):

on mouseUp
start using stack "answerFont"
put answerFont() into tFont
stop using stack "answerFont"

--> DO SOMETHING WITH tFont HERE
end mouseUp

-Chipp
Post by Haitham Abdulla
VB .NET has some great built-in components and I want to ask whether
a. Font Dialog Box
b. Color Dialog Box
c. Save Dialog Box
d. Print Dialog Box
Garrett Hylltun
2006-03-09 03:03:35 UTC
Permalink
Based on some of my own code and code shared by Chipp Walters, I put
together a font dialog that removes unicode fonts from the list, and
then represents each font in it's own font in the list.

Uploaded to the "user spaces" as "Stack: fontDialogBasic" and "Title:
Basic font dialog example"

If you have problems using the "user spaces", download from here:
http://www.paraboliclogic.com/misc/fontDialogBasic.rev

Thanks Chipp for code that started this. :-)

-Garrett
Scott Morrow
2006-03-09 07:20:38 UTC
Permalink
Nice job, Garrett! What a slick little tool.

-Scott Morrow

Elementary Software
(Now with 20% less chalk dust !)
web http://elementarysoftware.com/
email ***@elementarysoftware.com

-----------------------------------------------------------------
Post by Garrett Hylltun
Based on some of my own code and code shared by Chipp Walters, I
put together a font dialog that removes unicode fonts from the
list, and then represents each font in it's own font in the list.
Uploaded to the "user spaces" as "Stack: fontDialogBasic" and
"Title: Basic font dialog example"
http://www.paraboliclogic.com/misc/fontDialogBasic.rev
Thanks Chipp for code that started this. :-)
-Garrett
Bob Warren
2006-03-09 01:32:10 UTC
Permalink
Post by Haitham Abdulla
When we want to produce the program (or application) that is created by
Revolution, we can produce it as EXE file (in windows). But what if we
need to make some kind of Installation or Setup? Can we do it?
What about if the users want to uninstall our program (or software)?
Can they?
------------------------------------------------------------------
For a demo INNO setup of a Rev standalone, navigate to:-

http://www.howsoft.com/runrev/downloads/

- and download the file:

Picture Chooser Widget for Windows XP or 2000_setup.exe

It includes an uninstall.

Cheers,
Bob Warren
Dan Shafer
2006-03-10 21:45:11 UTC
Permalink
There is also a wonderful InstallGadget Rev app that wraps the INNO
installer nicely. Available from Sweat Technologies:
http://www.sweattechnologies.com/InstallGadget/
Post by Bob Warren
Post by Haitham Abdulla
When we want to produce the program (or application) that is created by
Revolution, we can produce it as EXE file (in windows). But what if we
need to make some kind of Installation or Setup? Can we do it?
What about if the users want to uninstall our program (or software)?
Can they?
------------------------------------------------------------------
For a demo INNO setup of a Rev standalone, navigate to:-
http://www.howsoft.com/runrev/downloads/
Picture Chooser Widget for Windows XP or 2000_setup.exe
It includes an uninstall.
Cheers,
Bob Warren
_______________________________________________
use-revolution mailing list
Please visit this url to subscribe, unsubscribe and manage your
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"
Richard Gaskin
2006-03-10 22:42:14 UTC
Permalink
Post by Haitham Abdulla
When we want to produce the program (or application) that is
created by Revolution, we can produce it as EXE file (in
windows). But what if we need to make some kind of Installation
or Setup? Can we do it?
You can use any common installer system for that just like you would
anything else.

I used to use Wise Install, and while I think it's a wonderful tool I
needed tighter integration with my automated build system so I'm writing
my own installer. Only a couple days' work and I'm almost done.

In fact, the Rev 2.7 installer was also made with Rev.

--
Richard Gaskin
Managing Editor, revJournal
_______________________________________________________
Rev tips, tutorials and more: http://www.revJournal.com
Continue reading on narkive:
Loading...