Q56:メニュー画面をボタンからメニューバーにしてプログラム作成の練習をしております。次の5箇所についてご教示お願いします。
@プログラムを起動してから一定時間毎に経過時間をテキストフィールドに表示したい。
Aテキストフィールドをラベルのようなスタイルにしたい(凹みのない)。
(または、ラベルに@の経過時間を表示したい)
B添付の構成で、CADViewerを起動するときボタンを押した数だけアプリケーションが起動してしまう(特定回数までとしたい)。
CMZCheckerを起動するときにCADViewerが起動していたら終了(MZCheckerから)させたい。
Dメニュー画面にデータファイルを選択しておき、その後起動するアプリケーションに渡す方法。
A56:
@一定時間毎にということで[タイマー]コンポーネントをお使い頂くのが宜しいかと存じます。タイマーが動作する間隔は「属性情報」から「IntialDelay(起動してから初回動作までの間隔)、Delay(以後の動作の間隔)」の設定で変更できます。
『アプリケーション開発チュートリアル応用編L10』で[タイマー]を使った例をご紹介していますので、どうぞご覧下さい。また、簡単なサンプルアプリケーションも本文末尾の関連ファイル「経過時間の取得.mzax」に掲載致しましたので、ご参考になれば幸いです。
Aテキストフィールドの見た目を変更することは属性の設定からではできませんので、[ラベル]に文字列を設定する方が簡単です。関連ファイルのサンプルで[ラベル]を使用しました。
BCPFLoader.exeまたはMZChecker.exeを[外部プログラム通信]コンポーネントを使って起動していますが、その際EXEファイル自身が呼んでいるJAVAのプロセスまではMZPlatform側から切断する設定ようになっていないため、どうしてもそのまま残ってしまう状態になっています。
DCADViewerあるいはMZCheckerではアプリケーションを実行後、アプリケーション内でファイルを選択するようになっているため、難しいかと存じます。
[文字列格納変数]を使うと、2つの文字列を連続した一つの文字列とすることができるので、EXEファイルのパスの後ろにファイル名を続けて書いて起動できるもの(AcrobatReaderやPFLoader)では実現できます。
[文字列格納変数]の「メソッド:指定した文字列と連結して置き換える(String)」を使います。
簡単なサンプルファイル「ファイル選択開く.mzax」を掲載致しますので、どうぞご覧下さい。
最後に上記B、C、Dの解決方法として、CADViewerのファイルの内容を現在のファイルの内容に追加してしまうと、幾らか改変が容易になり、実現可能かとも存じます。
但し、MZChekerの場合ファイルサイズが大きいので、追加することはお勧めしません。
また、追加の際にはそのままでも結構ですが、判り易く別階層の「複合コンポーネント」に纏めて追加する方法があります。
関連ファイル:経過時間の取得.mzax、ファイル選択開く.mzax (※このファイルは、ZIP形式に圧縮してあります。)