教えて下さった皆様、
ありがとうございました。 ヒントをもとに勉強させていただきます。 「サクサクSmallTalk」、もう品切れだそうですね。 幸い1冊あったので買って読んでいます。 依存性については、いかにもオブジェクト指向らしい 仕組みだと、うれしくなります。 そこでまた一つ、教えて下さい。 PluggableTextMorphをキャンセルするため、 左上に×印のマークがありますが、 あれをつくる方法です。 よろしくお願い致します。 久保 道 |
やまもとです。
> PluggableTextMorphをキャンセルするため、 > 左上に×印のマークがありますが、 どうやらPluggableListとウィンドウ(SystemWindow)を 混同されているのでわ? で、久保さんの投稿をきっかけに おいらもPluggableListがよくわからんちんで いままでなかなか使えなかったのですが これをきっかけに再お勉強、再トライしてみますた。 左がサブクラスを表示するPluggableListMorphで 右ペインが左ペインで選択したクラスのメソッドを表示する PluggableTextMorphでする。 それらをSystemWindowにaddMorphしています。 TestWindow new initialize openAViewOnMe でWindowがひらくです。 とりあえず思ったとおりにはどうさしているのですが 問題がありましたらごめん。<ご指摘大歓迎。 ここにソースコード書くの勇気いりまする・・・・(汗) 以下ソースコード。 'From Squeakland.396-Nihongo7.29 of 18 March 2005 [latest update: #100] on 7 April 2006 at 4:55:52 pm'! Object subclass: #TestWindow instanceVariableNames: 'list selectedIndex contents' classVariableNames: '' poolDictionaries: '' category: 'ThoruTest'! !TestWindow methodsFor: 'as yet unclassified' stamp: 'ty 4/5/2006 20:04'! contents ^ contents! ! !TestWindow methodsFor: 'as yet unclassified' stamp: 'ty 4/5/2006 19:50'! initialize list _ (Collection withAllSubclasses collect: [ :each | each name]) asSortedCollection: [ :a :b | a = b]. selectedIndex _ 1.! ! !TestWindow methodsFor: 'as yet unclassified' stamp: 'ty 4/5/2006 19:50'! list ^list! ! !TestWindow methodsFor: 'as yet unclassified' stamp: 'ty 4/5/2006 19:50'! listIndex ^selectedIndex! ! !TestWindow methodsFor: 'as yet unclassified' stamp: 'ty 4/6/2006 00:23'! listIndex: anInteger selectedIndex _ anInteger. contents _ (Smalltalk at: (list at: selectedIndex)) organization allMethodSelectors asString. self changed: #listIndex. self changed: #contents! ! !TestWindow methodsFor: 'as yet unclassified' stamp: 'ty 4/5/2006 20:12'! listMenu: aMenu | targetClass differentMenu className | className _ list at: selectedIndex ifAbsent: [ ^aMenu add: 'nothing selected' target: self selector: #beep ]. targetClass _ Smalltalk at: className ifAbsent: [ ^aMenu add: 'that class is history!!!!' target: self selector: #beep ]. differentMenu _ DumberMenuMorph new. differentMenu add: 'browse' target: targetClass selector: #browse; add: 'inspect' target: targetClass selector: #inspect; add: 'explore' target: targetClass selector: #explore. ^ differentMenu! ! !TestWindow methodsFor: 'as yet unclassified' stamp: 'ty 4/5/2006 20:16'! openAViewOnMe | window aListMorph aTextMorph | aListMorph _ PluggableListMorph on: self list: #list selected: #listIndex changeSelected: #listIndex: menu: #listMenu:. aListMorph color: Color white. aTextMorph _ PluggableTextMorph on: self text: #contents accept: #acceptContents readSelection: nil menu: nil. window _ SystemWindow labelled: 'ThoruTest'. window color: Color white; setWindowColor: (Color r: 0.645 g: 0.645 b: 1.0); addMorph: aListMorph frame: (0@0 corner: 0.3@1); addMorph: aTextMorph frame: (0.3@0 corner: 1@1). window extent: 400@200. ^ window openInHand ! ]style[(13 399 104 100)f2b,f2,f4,f2! ! ------------------------------- Thoru Yamamoto mail : [hidden email] www: http://www.thoruman.com ------------------------------- |
やまもとです
>> PluggableTextMorphをキャンセルするため、 >> 左上に×印のマークがありますが、 >どうやらPluggableListとウィンドウ(SystemWindow)を >混同されているのでわ? 「PluggableTextMorphとSystemWindow」をですね・・・。 ------------------------------- Thoru Yamamoto mail : [hidden email] www: http://www.thoruman.com ------------------------------- |
Free forum by Nabble | Edit this page |