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

funfunfun30

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


「TextMorph」もやっちゃうです。

「TextMorph」は「StringMorph」を継承しているかと思いきや
実は「RectangleMorph」を継承してるのね。
だから「backGroundColor」とか「borderWidth」とか設定できるってわけよ。

■クラスを作る

「TextMorph」を親にしてクラスを作るです。
--------------------------------------------
TextMorph subclass: #TestMorph24
	instanceVariableNames: ''
	classVariableNames: ''
	poolDictionaries: ''
	category: 'MyMorph'
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )

Uploaded Image: image32.jpg


インスタンスをだしてみるです。
--------------------------------------------
TestMorph24 new openInWorld
--------------------------------------------
Alt + d ( Cmd + d )

Uploaded Image: image33.jpg


「StringMorph」とそんなに変わんないね。

Uploaded Image: image34.jpg


メソッドを追加します。
初めに表示するテキストと枠の大きさ、背景色、枠線の太さを変えるです。
--------------------------------------------
initialize
	super initialize.
	self contentsWrapped: 'abc'.
	self extent: 150@20. 
	self backgroundColor: (Color r: 1.0 g: 1.0 b: 0.8).
	self borderWidth: 1.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )

Uploaded Image: image35.jpg


インスタンスをだしてみる
--------------------------------------------
TestMorph24 new openInWorld
--------------------------------------------
Alt + d ( Cmd + d )

Uploaded Image: image36.jpg


「StringMoph」と違って「TextMorph」ってフォント、サイズ、スタイルの設定の仕方が
なんかややこしいっす。っていうかよくわからんです。
まあ入力がメインの利用が主な気もするので後でメニューで設定すればいいんだけど。
(ブラウジングしてたらあたまがゆでだこになっちまった。
 また今度再挑戦するです。)

Uploaded Image: image37.jpg



■ドラッグできるテキストモーフにする

「TextMorph」ってドラッグするのにいちいちAlt+ドラッグしなきゃ移動できなしょ?
「TextMorph」を「RectangleMorph」のサブモーフにして
端っこをドラッグしていつでもお気軽に移動出来るようにするです。
ってことで「RectangleMorph」を親にしてクラスを定義しまする。
--------------------------------------------
RectangleMorph subclass: #TestMorph25
	instanceVariableNames: ''
	classVariableNames: ''
	poolDictionaries: ''
	category: 'MyMorph'
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )

Uploaded Image: image38.jpg


「RectangleMorph」に「TextMorph」を「addMorph」しまする。
で、ここのミソは「#shrinkWrap」ね。
テキストの分量にあわせて「RectangleMorph」もサイズを合わせてくれるってわけでするよ。
--------------------------------------------
initialize
	| tm |
	super initialize.
	self color: (Color r: 0.8 g: 1.0 b: 0.8).
	self borderWidth: 3.
	self borderColor: (Color r: 0.8 g: 0.9 b: 0.8).
	self hResizing: #shrinkWrap.		
	self vResizing: #shrinkWrap.	

	tm _ TextMorph new.
	tm contentsWrapped: 'abc'.
	tm extent: 100@20. 
	tm backgroundColor: (Color r: 1.0 g: 1.0 b: 1.0).

	self addMorph: tm.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )

Uploaded Image: image39.jpg


インスタンスをだしてみる
--------------------------------------------
TestMorph25 new openInWorld
--------------------------------------------
Alt + d ( Cmd + d )


淡い水色の部分をつまむとドラッグ移動ができるです。

Uploaded Image: image40.jpg



■多角形モーフの形に添って流し込めるテキストモーフを作る。

「TextMorph」を「PolygonMorph」のサブモーフにするです。
ってことで「PolygonMorph」を親にしてクラスを定義します。
--------------------------------------------
PolygonMorph subclass: #TestMorph26
	instanceVariableNames: ''
	classVariableNames: ''
	poolDictionaries: ''
	category: 'MyMorph'
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )

Uploaded Image: image41.jpg


ここでのミソは「fillingOnOff」で流し込みの設定のとこね。
変形ハンドルは表示にしておきます。
--------------------------------------------
initialize
	| tm |
	super initialize.
	vertices _ Array with: 0@0 with: 100@0 with: 100@100.
	self makeClosed; addHandles.
	self color: (Color r: 0.8 g: 0.8 b: 1.0 alpha: 0.5).
	self borderWidth: 0.

	tm _ TextMorph new.
	tm contentsWrapped: 'text'.
	tm fillingOnOff.

	self addMorph: tm.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )

Uploaded Image: image42.jpg


インスタンスをだしてみる
--------------------------------------------
TestMorph26 new openInWorld
--------------------------------------------
Alt + d ( Cmd + d )

Uploaded Image: image44.jpg


あ、Sift+クリックで変形ハンドルのON/OFFができるよん。

Uploaded Image: image45.jpg




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







■ MEMO ■

Links to this Page