|
RE: User interfaces | getting started: msg#00102lang.smalltalk.squeak.beginners
Hi Darren, Welcome to the list. I'm glad you have been reading about classes and methods that should help. There is no console type application for Squeak. The closest thing we have to a console app is the Transcript, but the Transcript does not accept input. We also have inspectors, browsers and a workspace with act much like the input side but they too are not really like the console you may be expecting. I agree with your path though, you want to get into the logic and flow of the program without having to worry about GUI itself. Here is how you might do that. You create classes that represent your domain. For a contact list you might create a contact and a contactBook. Something simple like Object subclass: #Contact instanceVariableNames: 'name email phoneNumber' Object subclass: #LittleBlackBook instanceVariableNames: 'contacts' You should create accessors and mutators for the instanceVariables on Contact and LittleBlackBook. LittleBlackBook >> initialize contacts := OrderedCollection new. Now what you need is a way to add contacts. LittleBlackBook >> addContactNamed: aName email: anEmail phoneNumber: aPhoneNumber "create a contact and add it to the list of contacts" self contacts add: (Contact name: aName email: anEmail phoneNumber: aPhoneNumber). Contact class >> name: aName email: anEmail phoneNumber: aPhoneNumber "Return to the sender a new instance of contact with this information" ^self new name: aName; email: anEmail; phoneNumber: aPhoneNumber; yourself. Ok so very simply you can create instances of your book by starting from the workspace and then using the inspectors for modifying your instance and getting feedback. This feedback is different from a console but it does give you a good feeling for objects. >From a workspace you would do: LittleBlackBook new Now highlight that, right click -> inspect it. What you get back is an inspector. This is an instance of your class LittleBlackBook. Notice that you can click on the ivars and see their contents. #contacts is currently empty. On the inspector of LittelBlackBook you can now type: self. #self refers to the instance itself. If you type self, highlight it and inspect it you get the same instance back again. It's not a copy it's the same instance, what ever you do to one will be reflected in the other since they are the same instance. The method we wrote can be called by using #self. Try this by typing this in the inspector window of your instance of LittleBlackBook. (you can close the second inspector). self addContactNamed: 'Darren White' email: 'bobblebob@xxxxxxxxx' phoneNumber: nil. You can just highlight it and do it. Now check out the contacts ivar. It now has a contact in it. If you inspect the contact you will see that you have a collection and if you inspect the first item in the collection you will see that you have an instance of Contact, with your info in it. It's not a console but there is nothing that a console can do that you can not reproduce by adding new methods to your instance. Happy Coding! Ron Teitelbaum President / Principal Software Engineer US Medical Record Specialists ________________________________________ From: Darren White Hello, This is my first post here. I have been exploring the squeak environment and smalltalk syntax for a few weeks now. Usually when learning a new programming language I create a small programs such as a contacts list. First I may do it with a console front end then play around with a GUI and widgets. I have got to the stage with squeak where I want to do that but I can't see how to proceed. For a console type program how do I proceed and for a GUI program what is the main form/frame/window to hold the components. So the main thing I'm stuck with is the user interface, I have read enough to know how to create classes and their method bodies (though my code may be bad at this stage :-) ). Any advice would be most welcome, I can't wait to get stuck in! Darren
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | User interfaces | getting started, Darren White |
|---|---|
| Next by Date: | Re: User interfaces | getting started, Giuseppe Luigi Punzi Ruiz |
| Previous by Thread: | User interfaces | getting started, Darren White |
| Next by Thread: | Re: User interfaces | getting started, Giuseppe Luigi Punzi Ruiz |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |