Path: utzoo!attcan!uunet!lll-winken!lll-tis!ames!mailrus!tut.cis.ohio-state.edu!oboe.cis.ohio-state.edu!hansell From: hansell@oboe.cis.ohio-state.edu (Timothy Hansell) Newsgroups: comp.lang.smalltalk Subject: Re: Quest. on Smalltalk Keywords: construction of messages at run time, reevaluation of system classes Message-ID: <29546@tut.cis.ohio-state.edu> Date: 14 Dec 88 17:12:45 GMT References: Sender: news@tut.cis.ohio-state.edu Organization: The Ohio State University Dept of Computer and Information Science Lines: 35 Here are some answers to your questions -- note: I am using ParcPlace Smalltalk-80... 1. There is a selector called 'perform:' that allows you to execute a selector that is specified by a string. ex: a perform: 'new'. would eventually send to new message to object a. More concrete examples of this selector and how it is used are contained in the class MouseMenuController and any of it's subclasses. If the selector takes arguments you just add with: for each argument. a perform: 'add:' with: anotherObject. a perform: 'add:after:' with: anotherObject with: yetAnotherObject. 2. Can you change system classes ?? yes.. In ParcPlace Smalltalk-80 you can change things so much the system will actually crash, without telling you that you are changing something important. Try the following in your image: open a browser... define the following class Object subclass: #Link... etc. with blank strings for the arguments for all of the instance variable stuff.. Your system will probably crash before you finish accepting the code. --NOTE: ParcPlace does not suggest that you modify system class, but if you do they suggest that you better know what you are doing. --tim