Laurent I'm not sure that this it the good way to create classes If you want a shorter form check how this is done in coral. Stef On Apr 13, 2011, at 4:16 PM, laurent laffont wrote:
This works:
counter := Class new superclass: Object; addInstVarNamed: 'counter'; compile: 'initialize counter := 0'; compile: 'counterString ^ counter asString'; compile: 'increment counter := counter + 1. self changed:#counterString'; compile: 'decrement counter := counter - 1. self changed:#counterString'; new.
(UITheme builder newColumn: { UITheme builder newLabelFor: counter getLabel: #counterString getEnabled: nil. UITheme builder newRow: { UITheme builder newButtonFor: counter action: #increment label: '+' help: nil. UITheme builder newButtonFor: counter action: #decrement label: '-' help: nil. } }) openInWindowLabeled: 'Counter example'.
This one crashes the VM (tried on PharoOneClick 1.2 OSX, Cog and StackVM):
(Class new superclass: StringMorph; compile: 'step self contents: Time now printString'; new) openCenteredInWorld
Any idea ?
Laurent Laffont - @lolgzs
Pharo Smalltalk Screencasts: http://www.pharocasts.com/ Blog: http://magaloma.blogspot.com/ Developer group: http://cara74.seasidehosting.st