ワークスペースで動かすコード達


  • デスクトップのキャプチャ
    Display writeBMPfileNamed: 'display.bmp'
    デスクトップのキャプチャを行ってdisplay.bmpに書き込む
  • クラスのセレクタ集合を得る.
    Class selectors.
    例をinspect itするとOrderedCollectionのセレクタを見ることができる
    例) OrderedCollection selectors.
  • クラス自身とそのスーパークラスを含むセレクタ集合を得る.
    Class allSelectors.
    例をinspect itするとOrderedCollectionのセレクタを見ることができる
    例) OrderedCollection allSelectors.
  • 指定したパスでエクスプローラを起動(Windows only).
    Win32Shell new shellExplore:'path'.
例) Win32Shell new shellExplore:'c:\Program Files'.
  • 検索ウィンドウを開く(Windows only).
    Win32Shell new shellFind: 'c:\'
  • morphを作ります.
    MorphのClass new openInHand.
    openInHandではmorphはマウス位置に出現して,左クリックで置く場所を決めます.
    例) ClockMorph new openInHand
  • morphを作ります
    MorphClass new openInWorld.
    openInWorldではmorphは適当な位置に出現します。
    例) ClockMorph new openInWorld
  • Preferences disable:#PreferenceSymbol OFFに設定
  • Preferences enable:#PreferenceSymbol ONに設定

    #Preferenceの設定を行います

    例) Preferences disable:#abbreviatedBrowserButtons
    例) Preferences enable:#abbreviatedBrowserButtons
  • morphを操作する Workspaceのwindow menuでcreate textual references to dropped morphsをONにしてmorphをworkspaceにドロップ
    例)trash1413 imageForm writeBMPfileNamed:'kawa.bmp'
  • 'Project'プロジェクトへ移動します.
    (Project named: 'Project') enter
  • ウィンドウタイトルを'memo'としたWorkspaceを起動.
    Workspace new openLabel: 'memo'
  • クラス名のClass Browserの起動.
    Browser newOnClass:クラス名
例)Browser newOnClass:OrderedCollection
  • ベンチマーク(benchmark)実行 下記コードをprint it
    0 tinyBenchmarks
  • Profileを実行します.
    TimeProfileBrowser onBlock: [計測したいコード]
例)TimeProfileBrowser onBlock:
   [ 20 timesRepeat: [ Transcript show: 100 factorial printString ]].
  • Squeakをフルスクリーンにします(Squeakのデスクトップのみ!).
    Display fullScreenMode: true. Display newDepth: Display depth
  • ショートカットキーヘルプを表示
    Utilities openCommandKeyHelp.
  • 有用な式を表示する(メニュー'World/Help/useful expressions'と同じです).
    Utilities openStandardWorkspace.

    一部抜粋

    Smalltalk recover: 10000.
    ChangeList browseRecentLog.
    ChangeList browseRecent: 2000.
    Preferences editAnnotations.
    Utilities reinstateDefaultFlaps. 
    Preferences resetCategoryInfo
  • デスクトップ背景画像を指定した画像ファイルに変更
    Form openAsBackground:'pekepeke.jpg'
  • waveファイルの再生(Windows only?)
    (SampledSound fromWaveFileNamed: 'c:\windows\media\chimes.wav') play
  • mp3ファイルの再生*1
    (StreamingMP3Sound onFileNamed: 'c:\temp\hogehoge.mp3') play
  • SoundLibrary*2の音を再生.
    | snd |
    (SampledSound soundLibrary) keysDo: [ :soundName |
    	snd := SampledSound  soundNamed: soundName.
    	snd play.
    	SoundPlayer waitUntilDonePlaying: snd.
    ] 
    
  • 指定したメソッドが実装されているクラスを列挙する.
    (Object systemNavigation allClassesImplementing: #fromUser) inspect
    
  • しゃべる!
    Speaker man say: 'Listen to my voice. I am a man speaking.'.
    Speaker whispery say: 'This is my whispery voice.'
    
    Speaker manWithHead say: 'This is my voice. Can you see my lips?'
    
  • グローバル変数の列挙
    Smalltalk keys select: [:k | ((Smalltalk at: k) isKindOf: Class) not]
       thenCollect: [:k | k -> (Smalltalk at: k) class]
    
  • 保存して終了
    Smalltalk snapshot: true andQuit: true
    
  • 文字列をSmalltalk式として実行
     Compiler evaluate: 'Transcript show: ''Smalltalk''; cr.'.
    
    Smalltalk式に変数を含めて評価したい場合:
    | x y z block function |
    function := 'x + y + z'.
    x := 1.
    y := 2.
    z := 3.
    block := Compiler evaluate: '[:x :y :z |', function, ']'.
    block value: x value: y value: z.
    
  • 全クラス名を列挙(hierarchySqueak.txtへ書き込み) *3
    (FileStream newFileNamed: 'hierarchySqueak.txt')
    	nextPutAll: Object printHierarchy; close
  • 指定クラスのクラス階層を得る(下記Smalltalk式をprint it)
    String printHierarchy
  • 全クラス数(下記式を'print it')
    Metaclass allInstances size
  • システムについて
    Smalltalk aboutThisSystem
  • 自IP番号を得る
    NetNameResolver localHostAddress
  • example methodを列挙する
    SystemNavigation new browseAllMethodsInCategory: #examples
  • Code Update *4
    Utilities updateFromServer
  • ゴミ箱を削除
    Utilities emptyScrapsBook
  • プロジェクトの階層を文字列で得る
    Project projectHierarchy
  • 全Workspaceの内容をファイル保存
    Workspace allInstancesDo: [:inst | inst saveContentsInFile].
  • 3.8(サブ)ディレクトリ内の画像を画像ライブラリに一気にインポート*5
    Imports default importImageDirectoryWithSubdirectories: 'c:\bin\NS7'
  • 'フォントのスタイルと大きさ'を表示
    TextStyle fontSizeSummary
  • ブロックのトレース(メソッド呼び出しと戻り値)をTranscriptに表示
    ContextPart trace: [3 factorial]
     3 factorial
      2 factorial
       1 factorial
        0 factorial ^1
       1 factorial ^1
      2 factorial ^2
     3 factorial ^6
    nil DoIt
    
  • 歌う?!
    (DECTalkReader silentNightVoice1 pitchBy: 0.5) playOn: KlattVoice new delayed: 1000
  • クラス新規作成
    createClassName := 'CClass'.
    categoryName := 'MyTest-Base'.
    Object subclass: createClassName asSymbol
    	instanceVariableNames: ''
    	classVariableNames: ''
    	poolDictionaries: ''
    	category: categoryName
    

コメント・つっこみ

文字列をSmalltalk式として実行

thoru (2005-04-19 04:52:33 (Tue))

「文字列をSmalltalk式として実行」ってのは、いいっすねえ!!わくわくでするな。こんなのあるんじゃないかと思ってたけどやっぱあるんですね。使いまわしそうで怖いおいらっす・・・(笑)。


*1 Winampより音質は悪いような
*2 予めインストールされている音源[splash,peaks,clink,croak,scratch,chirp,scritch,warble,scrape,camera,coyote,silence,motor]
*3 http://wiki.squeak.org/squeak/761
*4 http://wiki.squeak.org/squeak/22
*5 あまりやりすぎるとメモリを大量に使ってしまう

Last-modified: 2007-01-12 (金) 01:48:05 (4661d)