● バグは友達(13)2003年04月21日

  このコラムは、MOSAの会員にのみ配布されているデベロッパー向けの
  デジタルマガジンMOSADeNのに掲載された記事です。ほぼ一ヶ月遅れで
  ここに掲載されて行きます

〜 勘違いによるつかの間の喜び 〜

DTSから届いた2度目の回答によると、次のようにEditUnicodeTextコントロールと同じ矩形サイズのMLTEテキストエリアを定義すれば、そこから得たTXNObjectを使いテキスト内容を消せるというのです!筆者が「ええ?」と驚愕したのは、言うまでもありません。



つまり、TXNObjectを得ることができれば、次の2つのAPIを利用してEditUnicodeTextコントロールのテキスト内容を削除することが可能なわけです。

TXNSelectAll( theTextObject );
TXNClear( theTextObject );

筆者は、「同じ矩形サイズを指定した時に限りコントロール側のTXNObjectが返るのかな?」と想像し、さっそく手順を試してみましたが、何度試してもコントロールに重なる別入力エリアが作られるだけで、肝心のTXNObjectを得ることは出来ません。まあ、そうなるのが普通なのですが、再度DTSに「勘違いでは?」と尋ねてみても「可能です!」とサンプルアプリまで送られて来ました。そこまで言われたら再チャレンジだと気を取り直し、届いたサンプルアプリを動かしてみても、やはり結果は同じままです。

結局、実現されないことを証明するためのサンプルアプリをこちらから送付し、ようやく勘違いであることを認識してもらいました(どっちがDTSなのだ)。こうした紆余曲折の結果、DTS側から得られた最終回答は「将来的にはGetControlData()でTXNObjectを得られるようにする予定もあるが現状は不可能」と言う内容でした(堅いなぁ〜)。

問題の原因が「バグ」なので、DTS側にはまったく責任は無いのですが、結局問題は解決されないまま残りました。このままだと、バグが直るまでEditUnicodeTextコントロールへの切り替えは延期です。ここへ来て、ついに捜査は行き詰まってしまいました。

つづく

copyright 2003 Ottimo, Inc. All rights reserved
無断転載・引用禁止
Contact Us: koike@ottimo.co.jp