ホームページ>開発ツール>サンプル2
サンプル2
EditFieldCbn 1.0a2
REALbasic4.0.3-J + Carbon環境(Mac OS X等)で、他のアプリとの間でコピー&ペーストした際に、スタイル情報が正しく継承されるEditFieldクラスを試作してみました。
(あくまで勉強目的で作成した試作品です。そのままで実用に耐える訳ではありませんし、検証も十分とは言えませんので、ご注意下さい。)

注)画面は1.0a1(Mac OS 9.0.4 + CarbonLib J1-1.5)のものです。
本クラスはフリーウェアです。ご自由に改造していただいて構いません。
サンプルはREALbasic 4.0.3Jで作成しました。
【謝辞】
スタイル情報とBinHex値の取り出し方については、藤田 稜氏の解説を参考にさせていただきました。ここに、有用な情報を公開されている氏に感謝の意を表します。
また、フォント名とフォントIDの相互変換は「REALbasicとFutureBASICで使おう Toolbox最新活用テクニック」(水野貴明・重松修共著)を参照させていただきました。重ねて感謝の意を表します。
【概要】
- スタイル付きテキストを他のアプリからペーストしても、スタイル情報が正しく継承されることを目指しています。
- スタイル付きテキストを他のアプリにコピーしても、スタイル情報が正しく継承されることを目指しています。(ただし、一部問題あり。既知の問題点を参照。)
- Carbon環境でのみ動作します。(Classic環境では通常のEditFieldとして動作します。)
- 外部とのインターフェイスは以下のとおりです。
・SetTextAndStyleCbn:SetTextAndStyleメソッドと互換性があります。
・TextStyleDataCbn:TextStyleDataプロパティと互換性があります。
【既知の問題点】
以下の各点について、詳しい情報また対処法をご存じの方は、お知らせいただけると幸いです。
- ペースト先がCocoaアプリの場合、一部の(というか多くの)フォントはフォント名が正しく伝わりません(本クラスでは、システムフォントに置き換わります)。これはRb4.0固有の問題というよりは、Carbon ⇒ Cocoa全般に起こる現象のようです。
- フォント名をSelTextFontでは正しく取得できないため、対策を施してありますが、理論的裏づけがないため、誤動作するおそれがあります。
【既知の障害】
- 上記のフォント名取得に関連して、一時的にクリップボードを使用しているため、連続してペーストしたい場合等に支障をきたす場合があります。(あらかじめクリップボードの内容を退避して、後で戻す等の処置を加えた方がいいでしょう。)
【ソースについての注意事項】
- エラー処理は最低限しか行っていません。必要に応じて追加して下さい。
- 高速化のための工夫は特にしていません。必要に応じてアルゴリズムを見直して下さい。またはプラグイン化して下さい。
- cutメニューには対応していません。必要に応じて追加して下さい。(部分cutに対応するためには、スタイル情報の再作成が必要です。)
- 上記各点について、作者はサポートいたしません。
【検証済環境】
- Mac OS X 10.1.5
- Mac OS 9.0.4 + CarbonLib J1-1.5
- (Mac OS X 10.2以降は未検証)
【更新履歴】
v1.0a2
・SetTextAndStyleCbnを連続して実行すると、テキストが累積してしまう不具合を修正した。
v1.0a1
・新規作成
【解凍についてのご注意】
ファイルは、StuffIt5.5(MacBinary)形式で圧縮されています。ダウンロード後、StuffIt Expander等で解凍して下さい。
EditFieldCbn 1.0a2(約16KByte)をダウンロード
[Home]
[MacSoft]
[Donation]
[History]