starting a program

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

starting a program

Hans Schueren
Hello ,

thank you for the answers.

I will "copy" the folder on USB stick in the first way.

Other options as github and launcher later.



It is a little bit strange to start a program.



There is one package.

Inside the package are two classes.


To start ONE class i do with      classname  new  classname.


But what must i do to start the whole programm ?


Normally , after i have started the complete program.  I have to save
the program as the "program image file".


Then this image will display the program when it is opened from the
pharo.exe file.


The program should run immediatelly in full screen mode.



This sounds strange questions.

Reply | Threaded
Open this post in threaded view
|

Re: starting a program

kilon.alios
Lets put some thing in order. 

The core principle is "Live code enviroment" 

not to be very philosophical about this, the bottom line is that you should not think a pharo app as a regular app, where the application is clearly separated from the environment. 

Instead you should think of it more like an organism , they are one unit interdependent. Everything is just objects and they are alive. No apps . No OS. No libraries . No source code. Not even asset files, like jpgs , svgs, icons etc. Everything are objects. 

 So "press to start" button does not make sense for pharo as it would for other programming languages. 

So how you start your application is completely dependant on you. You can create a window inside pharo and maximise it, or create a big morph and stich it. That morph will cover the entire pharo window and the user wont be able to make it go away , that means the user wont be able to have access to the Pharo IDE so your user wont be aware that what he has is the full Pharo system. He / She will see only the GUI of you application. 

You can dig to the specific by taking a look at Phratch which does exactly that (though Phratch also has a hidden option to resize the gui so it exposes the pharo desktop and it gives you access to the world menu). 

Its not hard though for example for my project Hyperion which is a simple vector graphics editor I made the window sticky so the user cannot move it by using the beSticky message, can it be any simpler than that ?   

I am sure Morph class has other methods as well to deal with such situations. Actually Morphic is very powerful stuff and praise should go to both Squeak and Pharo of course Self people that are behind its improvement and implementation. 

So I would say dont be afraid to experiment with morph methods , SystemWindow methods and all relevant classes you may find.  Usually the name of the methods should explain what the method does. If it does not fire up your workspace and experiment. You can also take a look at test cases if they are available.

If you want an actually example take a look at Phratch because its a really advanced lesson on how to do Pharo applications as standalones. 

Pharo also has startup utlilities for tasks you want to perform when you start your image and the ability to customise System Preferences of Pharo image so you can offer your user custom setting he can further customise to make the app behave exactly as he wants. 

Finally if you are not a fan of GUI or you dont need a GUI , Pharo is perfectly capable running as a terminal command , if you rename the executable as I said before you can make your own parameters. For example "myapp  -doTask1 ".

Pharo is extremely flexible. The more you know the more you can do. 

The entire system is hackable. Meaning you can modifying everything , even the language itself ,the vm, how it handles image files ,  you can integrate source files , image files, you name it. As long as you understand how the system works nothing stops you. 

On Mon, Oct 27, 2014 at 3:55 PM, Hans Schueren <[hidden email]> wrote:
Hello ,

thank you for the answers.

I will "copy" the folder on USB stick in the first way.

Other options as github and launcher later.



It is a little bit strange to start a program.



There is one package.

Inside the package are two classes.


To start ONE class i do with      classname  new  classname.


But what must i do to start the whole programm ?


Normally , after i have started the complete program.  I have to save the program as the "program image file".


Then this image will display the program when it is opened from the pharo.exe file.


The program should run immediatelly in full screen mode.



This sounds strange questions.