Dear Andrew,
Thanks for this post.  As an ignew (ignorant newbie or a modern igloo) I wanted 
to ask you to expand on your installation method, if you don't mind.

>And yes, I put the uninstall option in the menus somewhere.

How do you uninstall if you don't have an installer application to begin with? 
(I'm thinking of Windows, not Mac)

Do the files that you create during "self-generation" remain on the computer 
after the uninstallation method that you use?

Can code be added to an "uninstall" button on the About window, for example, of 
an application to uninstall (delete) the files created by your installation 
method?  Then, write and open a text file giving the user instructions on 
deleting the executable and its folder?

Sincerely,
Steven Hedgepeth


I'm not sure what other people think about this, but I usually prefer  to place 
my installing code in the application that is being  installed, and not have a 
separate installer.Sounds a bit crazy at first, but it makes the whole thing a 
lot  simpler for the user, and it makes creating the download files a lot  
easier for the developer.Basically, suppose you have a list of files that need 
to be placed in  various locations in order for your application to run.  When 
my  programs start, the first thing they do is check to make sure that  those 
files exist.  If they don't, then I write them out there myself  right then and 
there, right from my application.  That way, I get  error checking and 
installing done all at once.  Then, of course, I  provide an easy method of 
uninstalling the files.  This is where my  approach has it's problems, 
unfortunately.  I can see where a  standard system installer is a good idea 
(and about my previous post  about Mac users liking drag-and-drop 
installs, that's true, but OSX  does have a very cool installer program, also). 
 Especially on  Windows, a correct uninstall requires that resources in use by 
other  applications are NOT removed.  This is a bit hard to do if your  
installer is built into your application and is totally proprietary  and not 
linked to the system in any way.As for me, well, RB does such a fine job at 
making applications self  contained that I have never needed external shared 
libraries to be  installed.  Because of this, my method works just fine for me. 
 All  the files that I have ever needed to "install" for said program are  
completely proprietary and are used exclusively by said program.As for the 
programming, generally, the App.Open event launches a  thread that handles all 
startup routines.  The thread usually  executes in a blink of an eye, unless a 
hard drive needs to get fired  up, so there's no need for a status bar.  If any 
install is required,  however, I ask the user if they want my
  
program to start writing  stuff to their hard drive, and if they click yes, I 
do it and then  show the main window as a signal of completion.  Basically, if 
the  program runs, then the install is complete.  Any file that I could  need 
to write to the hard drive is stored inside the application by  means of 
dragging whatever resource I need onto the project pane of  the project.  From 
there, it is accessible from within your  executable as a string.  To write it 
to the hard drive, use a  textoutputstream for text files, or a binarystream 
for binary files,  and just tell which ever stream to write what you're trying 
to  write.  The data type of the data property of the Write method of  both the 
TextOutputStream and BinaryStream is a string.And yes, I put the uninstall 
option in the menus somewhere.  On OSX,  I put it in the application menu.By 
the way, MAC is short for MAC Address, and Mac is short for  Macintosh.  Just 
thought you'd want to know...Andrew Keller

_______________________________________________
Join Excite! - http://www.excite.com
The most personalized portal on the Web!


_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>

Reply via email to