View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide

funfunfun26

PREV ------ ● TOP ● ------ NEXTUploaded Image: fmrph.jpg


ボタンを作ってみよ〜!!!

今度はボタンを作ってみることにしましょうかね。

■クラスを作る

SimpleButtonMorphを親にしまして新しくクラスを定義いたしましょう。
--------------------------------------------
SimpleButtonMorph subclass: #TestMorph17
	instanceVariableNames: ''
	classVariableNames: ''
	poolDictionaries: ''
	category: 'MyMorph'
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )

Uploaded Image: image.jpg


■インスタンスをだしてみる

確認の為Workspaceに下記のコードを書いてドゥーイット。

--------------------------------------------
TestMorph17 new openInWorld
--------------------------------------------
Alt + d ( Cmd + d )

Missing File (/zoo/uploads/image1.jpg)

何の設定もしていないボタンなので押してもハイライトするだけでする。

Uploaded Image: image2.jpg



■メソッドを追加ですな

初期設定をしましょうかいなっと。
ボタンに表示するラベルは「BEEP」
ボタンの色は黄色
ボタンのスタイルは「raised」

「target:」っていうのはメッセージを送る相手、今回は自分自身ね。
「actionSelector:」ってのは送るメッセージ(メソッド)ね。
「actWhen」はいつ実行するかだとおもうです。

--------------------------------------------
initialize
	super initialize.
	self label: ' BEEP '.
	self color: Color yellow.
	self borderColor: #raised.

	self target: self.
	self actionSelector: #beep.
	self actWhen: #buttonUp.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )

Uploaded Image: image3.jpg


--------------------------------------------
TestMorph17 new openInWorld
--------------------------------------------
Alt + d ( Cmd + d )

クリックするとビープ音がなります。

Uploaded Image: image4.jpg


いろいろ試してみると良いです。
--------------------------------------------
自分を削除する

self target: self.
self actionSelector: #delete.
--------------------------------------------


■ラウンチャボタンを作る

こんどはツールのランチャボタンをつくってみるです。
SimpleButtonMorphを親にしまして新しくクラスを定義いたしましょう。
--------------------------------------------
SimpleButtonMorph subclass: #TestMorph18
	instanceVariableNames: ''
	classVariableNames: ''
	poolDictionaries: ''
	category: 'MyMorph'
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )

Uploaded Image: image5.jpg



■メソッドを追加ですな

初期設定をしましょうかいなっと。
「target」は「Browser」
「actionSelector」は「#launchPartVia:label:」
「arguments」は「#prototypicalToolWindow #Browser」

--------------------------------------------
initialize
	super initialize.
	self label: ' BROWSER '.
	self color: Color red.
	self borderColor: #raised.

	self target: Browser.
	self actionSelector: #launchPartVia:label:.
	self arguments: #(#prototypicalToolWindow #Browser).
	self actWhen: #buttonUp.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )

Uploaded Image: image6.jpg


--------------------------------------------
TestMorph17 new openInWorld
--------------------------------------------
Alt + d ( Cmd + d )

Uploaded Image: image7.jpg


ボタンをクリックするとブラウザがたちあがります。

Uploaded Image: image8.jpg


いろいろ試してみてください。
--------------------------------------------
ワークスペースを出す
self target: Workspace
self actionSelector: #launchPartVia:label:
self arguments: #(#prototypicalToolWindow #Workspace)

トランススクリプトを出す
self target: TranscriptStream
self actionSelector: #launchPartVia:label:
self arguments: #(#openMorphicTranscript #Transcript)

ファイルリストを出す
self target: FileList
self actionSelector: #launchPartVia:label:
self arguments: #(#prototypicalToolWindow #'File List')

チェンジソーターを出す
self target: ChangeSorter
self actionSelector: #launchPartVia:label:
self arguments: #(#prototypicalToolWindow #'Change Set')
--------------------------------------------


PREV ------ ● TOP ● ------ NEXT







■ MEMO ■


Sunday, 29 February 2004, 10:22:03 pm
Window類はちょっと特殊ですな。ラウンチャボタンでtargetとかactionSelectorはどこみればいいかけっこうまよったです。で「Tools」フラップの各ツールのアイコンのハロをだして、デバッグハロで「inspect morph」を選択。出てきたインスペクタの左上のペインを見るとあるある・・・targetとactionSelector、argumentsが。--thoru




Links to this Page