« CodeWarriorからXcodeへ | メイン | TMPGEnc 3.0 XPress Ver.3.3.1.101 »

2005年7月18日

CodeWarriorからXcodeへ 2

カテゴリー: プログラミング

昨日の続きです。今までリソースベースだったScrubDelete Xの設定ダイアログをInterface BuilderのNibベースに変更してみました。結論から言うと、Interface Builderで各コントロールにSignatureとIDを設定しておいて、プログラムからGetControlID()で取得するという方法でやりました。Carbon Eventには以前から対応してあったので、これで最小限の変更で済みました。見た目は以前とほとんど変わりませんが、古くさいリソースとおさらばできてなんだか気持ちがいいですね(笑)

ところで、このSignatureとIDってどういうふうに使い分けるべきなんですかね。自由に使えばいいんでしょうか。悩んだ挙げ句、とりあえずSignatureは使わずにIDのほうに以前の'DITL'リソースのアイテム番号を入れました。リソースからの移植の場合は、これでヘッダファイルの修正が最小限で済みますね。

他にもまだ分からないことがあります。Interface Builderには複数のラジオボタンが連なったラジオグループというオブジェクトがあります。便利そうなのでぜひこれを使いたかったのですが、これってボタンの数が奇数の場合はどうするんですかね。ScrubDelete Xには5個のグループがあるんですよね(^^;) Cocoa用(?)の場合はダブルクリックで選択して非表示にできますが、Carbon用ではだめなようです。結局どうやるのか分からなかったので、とりあえず単独のラジオボタンで(つまり従来どおり)やってしまいました。

また、例えばあるチェックボックスをオフにしときに他のコントロールをDeactivateControl()するような処理がうまくいきません。単純なミスはしてないと思うのですが、変化しないんですよね。この件はまだあまり調べていないんですが、今日は時間切れ。また今度。


関連リンク
CodeWarriorからXcodeへ (2005年07月17日)
・CodeWarriorからXcodeへ 2 (2005年07月18日)
CodeWarriorからXcodeへ 3 (2005年07月25日)
CodeWarriorからXcodeへ 4 (2005年07月26日)



コメント

よろしければコメントしてください。

※メールアドレス以外の項目はこのページ上に公開されます。個人情報などの入力にはご注意ください。




保存しますか?


「投稿」ボタンを押してから書き込み完了までに多少時間がかかる場合があります。ご了承ください。