2002年秋にバージョン4.0が出て,ようやっとCarbon化されました…, OS X環境で使うと日本語文字があっちゃこっちゃで文字化けしてくれて,まともに使えたもんぢゃありませんでした。オブジェクトにOsaka等の日本語フォントを設定しても,頑なに化けたままです。

SC4 文字化けボタン一覧: OS X
バージョン4では,ボタンの種類が一気に増えました。それらの動作を見るために,ひとつプロジェクトを作ったわけですが… rectangleとpolygon以外は全滅death。
SC4 ボタン一覧: OS 9
Classic環境ではOK。しかしこれでは,何のためのCarbon化やら…

そんななか, SCUJの方がこの文字化けを劇的に改善する方法を見つけてくれました。その手順と効果を解説します。

SuperCard, SuperEditを改造

ほんのちょこっとなんだけど,アプリ本体に手を加えなければなりません。作業自体は簡単で, ResEdit等のリソース エディタがあればすぐにできます。ここでは, ResEditを使った方法を紹介します。

  1. SuperCardのアプリケーションを複製し, ResEditで開きます。Classic環境でもOKです。
    SuperCard 4.1.1 - ResEdit
  2. plstリソースのID: 0を開きます。
    plst ID = 0 from SuperCard 4.1.1
  3. 「Find」メニューの「Find ASCII...」を選びます。
    Change ASCII
  4. 「Find ASCII:」に“English”を,「Change To:」に“Japanese”を入力し,「Find Next」を押します。
    $1EF-$1F2に“English”が見つかった。
  5. 図のように“English”という文字列が選択されたら,「Change」を押します。
    “Japanese”で置換。
  6. 「File」メニューの「Save」を選んで変更を保存し, 1. のウインドウを閉じます。

Developer Editionを使っている人は,同じ方法でSuperEditにも細工しておきましょう。

効き目はいかに?

改造したアプリケーションでさっきのプロジェクトを開くと…

SC4 日本語ボタン一覧: OS X
ほとんど直っています。ユーザがフォントを設定できないメッセージボックスやanswerダイアログでも,無事に日本語を表示できました。
メッセージボックス
answerダイアログ

唯一化けたままなのが,ラジオボタン。そのなかでも,「radiodata属性」を使ったものだけがこうなるのです。radiodata属性はSuperCard 4の新機能の1つで,1つのラジオボタン オブジェクトに“見かけ上”複数のラジオボタンをもたせることができます。“見かけ上”複数のラジオボタンは,オブジェクトの矩形内で自動的に左揃え,均等な縦間隔に並び,ユーザのクリック操作等に応じて自動的にうち1つだけがハイライトされます。これにより,設計時に複数のラジオボタンの位置を微調整したり,ハイライトの制御のためにスクリプトを書いてまわったりしなくてすむわけです。

見た目は同じラジオボタンでも,従来のように単一で表示させるのと, radiodataを使って複数並べるのとでは,内部処理が大きく違ってくるのでしょうか? もうひとこえなだけに,善処してもらいたいところです>Solutions Etcetera様。