フォーラムへの返信
-
投稿者投稿
-
MZPlatformユーザー会キーマスター
1.ボタン2個の方のパネルの配置が「手動配置」に設定されているためです。「横方向整列」にすると自動で調整されると思います。
2.パネルやGUI複合コンポーネントにつきましては、画面編集画面で「自動サイズ設定」にチェックがあれば、ボタン等のサイズが変更された時にパネル等のサイズも自動で調整されますが、その際にボタン等のサイズ変更はメソッド「setPreferredSize(Dimension)」をお使いください。引数のDimensionは寸法格納変数を用いて作成します。これで指定した後、パネル等のサイズが自動で調整されます。修正したサンプルを添付しますのでご確認ください。なお、フレームだけは、サイズの更新に別途メソッドを呼ぶ必要があります。
3.例えば寸法を別ファイルに保存しておいて、起動時にそのファイルを開いてサイズを更新するか、終了時にアプリケーションファイルを上書き保存するなどの工夫が必要です。
- この返信は6年、 1ヶ月前にMZPlatformユーザー会が編集しました。
MZPlatformユーザー会キーマスターご提供いただきありがとうございます。
MZPlatformユーザー会キーマスターお知らせいただきありがとうございます。
まずはボタンコンポーネントでご希望の処理が実現できるかお試しいただき、それと同等の機能でよければ追加を検討します。現時点でのコメントですが、左のマウスボタンでは結局ボタンが押されてしまいますので、右ボタンでポップアップメニューを出す方が現実的かと思います。
MZPlatformユーザー会キーマスター追加予定はありませんでしたが、ご要望があれば検討します。
そのイベントでどのような機能を実現したいかを、参考までにお知らせいただけますでしょうか。MZPlatformユーザー会キーマスター残念ながら、シリアル通信コンポーネント側でイベントを分岐させる機能はありません。
Arduino側のシリアル通信出力を独自にカスタマイズできるのであれば、出力する先頭の文字列に意味を持たせるなどして、データ生成イベント発生時にその先頭文字列で判定して分岐させることが考えられます。
MZPlatformユーザー会キーマスター状況次第で詳細はわかりませんが、読んでいる感じだとその結果は妥当だと思います。
基本的に、Arduino側は極力delayを短くしてください。挙動がおかしくなる場合はある程度の時間を確保した方がよいですが、特に制限がないのであれば、ほぼリアルタイムに反応してくれるようにした方が良いです。0.5秒待つということは、それだけ反応が遅くなるということです。止めたつもりなのにイベントが発生するのはそのせいです。マイコンとセンサの通信に多少時間を空けた方が良い場合もありますが、それでも50msとかだと思います。
MZのタイマー側は、どのぐらいの間隔でセンサーの値を更新したいかという設定になります。1秒間隔でほしいのか、0.1秒間隔でほしいのかを考えて設定してください。もっと長くて良いなら、長く設定すればよいです。問題になるのは短い場合で、Arduino側の処理時間がタイマーの間隔より長くなってしまうと、正常に動作しない感じになります。
MZPlatformユーザー会キーマスター論理値によるイベント分岐は、例えば論理積演算(AND)コンポーネントを用いて作成できます。
「論理値変換/左右オペランド設定後、演算を行う(String,String)」メソッドで、右オペランドを固定値でtrueとし、左オペランドに指定したい論理値を与えて実行すると、trueの場合には1番、falseの場合には0番のイベントが発生します。
MZPlatformユーザー会キーマスター繰返し制御(While)は適切に使うのが難しいコンポーネントですので、あまりおすすめできません。
代わりに、タイマーコンポーネントを使用してはいかがでしょうか。
ボタンを押したらタイマーを開始し、ボタンを押したらタイマーを停止することが可能で、タイマーのアクションは別スレッドになります。タイマーが動作する間隔がご希望通りにできるかは状況次第ですが、ぜひご検討ください。
MZPlatformユーザー会キーマスターおそらく思い込みで操作をしてしまっていると思います。どちらもドキュメントには書いていない方法です。画面左の「画像」を選択するとファイル選択ダイアログが開き、画像を選択すれば画像が表示されます。
MZPlatformユーザー会キーマスター「QRコード」と「マイクロQRコード」は別の方式になりまして、読み取れるかはアプリ側が対応しているかどうかに依存します。こちらでも試しましたが、一般的なスマホアプリでは対応していないと思われます。
参考までに、下記リンク先のアプリであれば読み取れるようです。
https://www.denso-wave.com/ja/system/qr/product/reader.htmlそのほか、2次元コードリーダー等の機器で読み取る場合もあると思いますが、こちらについても「マイクロQRコード」に対応している機器を使用する必要があります。
-
投稿者投稿