On 13 April 2011 16:16, laurent laffont <[email protected]> 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 ?
>
yes. because format of the class are not initialized properly.
this one works:
(Class new
superclass: StringMorph;
setFormat: StringMorph format;
compile: 'step self contents: Time now printString';
new)
openCenteredInWorld
>
> Laurent Laffont - @lolgzs
>
> Pharo Smalltalk Screencasts: http://www.pharocasts.com/
> Blog: http://magaloma.blogspot.com/
> Developer group: http://cara74.seasidehosting.st
>
--
Best regards,
Igor Stasenko AKA sig.