作成した返信
-
著者投稿
-
MZPlatformユーザー会サイト管理者
参考までに、複合コンポーネントの作成方法につきましては、「複合コンポーネントチュートリアル」をご覧ください。
スタートメニューから「MZ Platform>ドキュメントインデックス」を開くと、Webブラウザでドキュメントの一覧が表示されますので、左側「チュートリアル」の7番目のリンクから開けます。
もしくは、インストールフォルダ内の「docs\tutorial」にPDFファイルが含まれています。MZPlatformユーザー会サイト管理者ダウンロード可能です。本Webサイト内にある会員限定のダウンロードページの下の方に、ツールキットの項目が追加されていますので、ご覧ください。
MZPlatformユーザー会サイト管理者先に最後のご質問への回答で、メソッドの引数として、intのところはInteger・Short・Longでも自動で変換すると思います。
次に本題ですが、グラフの表示項目数が指定されたデータ数より多い場合、スクロールバーが表示されず右側に空白が生じます。
一方、指定されたデータ数が表示項目数より多くなった時点で、スクロールバーが表示されて右側に空白を表示することはできなくなります。そのとき、表示開始位置に大きな値を指定しても、指定可能な最大値に自動修正されて、右端までスクロールされて右側に空白はないとお考え下さい。
ところで、ツールキットで配布しているIoTEdgeApp.mzaxでは、マイコンからシリアル通信で送信される値をリアルタイムに表示するために、折れ線グラフを使用して似たような表示を実現しております。右側に空白を作るために表示項目数を500など固定して、与えるデータの表側で行数が400などの閾値を超えたら先頭行を削除して、常に右側に空白を作る工夫をしております。ご参考までにお伝えしておきます。
- この返信は、 MZPlatformユーザー会 により、 5 年, 5 ヶ月 前 に編集されました。
- この返信は、 MZPlatformユーザー会 により、 5 年, 5 ヶ月 前 に編集されました。
MZPlatformユーザー会サイト管理者MZでは内部的に方式が異なるため、「コマンドボタンを押すと、DLLプログラムをバインドして処理が終われば解放する」ことができません。別アプリを起動することはできますが、ご希望の処理を実現するためには、少なくとも引数指定で起動する必要があり、そのためには起動対象のアプリをご自身で修正する必要があります。簡単ではないので、おすすめできません。
最も簡単な方法は、メール送信機能が必要な複数のアプリで個別にメール送信機能を作成することです。複合コンポーネントとして作成すれば、別のアプリにコピーペーストして同じ機能をすぐに追加することができます。
もしどうしても複合コンポーネントを共通化したいのであれば、複合コンポーネントをファイルとして保存して、外部参照機能で複数のアプリで共通化することは可能です。別アプリとして起動するより簡単ですが、やはり難易度は上がります。
外部参照については、下記リンク先のFAQをご覧ください。
https://ssl.monozukuri.org/mzplatform/faq/faq/faq_technical/general/general_a170.htmlMZPlatformユーザー会サイト管理者ご質問の意図がわかりませんので、確認させてください。「メール送信.mzax」を別アプリから起動したい特別な理由はありますか。その作り方は、ご希望の処理を実現するのに適さないと思います。
単純に、このサンプルアプリを編集すれば、ご希望の処理は実現できます。ビルダーで開いていただき、「送信ボタン」の処理をご覧いただければ、この中で差出人・送信先・件名・本文を指定してメールを送信していることがわかると思います。このボタンを複製して、それぞれのボタンに応じた内容で送信するように編集すれば完成しますので、ご検討ください。
MZPlatformユーザー会サイト管理者Sampleの「グラフ化」に含まれる「グラフデータ作成」複合コンポーネントのご質問として回答します。
各グラフコンポーネントは、所定の形式のテーブルデータを設定するとグラフが表示されます。作成するアプリケーションの中で、適切なテーブルデータを直接準備できれば、グラフデータ作成の複合コンポーネントは不要です。
一方、別の形式のデータからグラフ用のデータへの変換処理が必要な場合に、グラフデータ作成の複合コンポーネントが使える場合があります。何ができるかについては、複合コンポーネントの中身をご覧いただければ、ある程度コメントで説明が書いてあります。デメリットは特になくて、必要な処理がそのまま含まれていたら、自分で作成しなくてもすぐに使えることがメリットです。含まれていなかったら、自分で処理を作成する必要があります。
MZPlatformユーザー会サイト管理者1.
確かに、重ね合わせ系列グラフは他の単独のグラフと異なる動作となっています。指定した設定は通常保存されるのですが、データをクリアしたときにデータに関連する設定もクリアされるようになっています。一方、単独のグラフではデータをクリアしてもすべての設定が保存されています。同じ動作の方が良いのですが、内部処理の制限からこのように異なる動作になってしまっているのが現状です。これに関してはこちらで改善を検討しますが、現状ではデータ設定後に必要な設定をメソッドで実行する必要があります。データラベルの非表示であれば、「setChartLabelVisible(boolean,int)」を、他に数値軸の最大値や最小値も設定が必要です。必要なメソッドが不明な場合はお問い合わせください。
2.
すべてのグラフの色分けは自動でされますが、メソッドで指定することもできます。同様に、すべてのグラフの色は取得できると思います。重ね合わせ系列グラフも、グラフの色を取得できまして、メソッドは「getSeriesColor(int,int)」になります。引数は0から始まるグラフの番号と数値軸の番号(0か1)です。MZPlatformユーザー会サイト管理者参考までに修正したファイルをZIPファイルにして添付します。
添付ファイル:
MZPlatformユーザー会サイト管理者確かに添付ファイルでは再現しましたが、やはりこちらで同様に作成しても再現しないため、まだ原因はわかりません。
一方、いただいた添付ファイルの状態で対症療法的にエラーが生じないようにするには、2点修正が必要です。
1)円グラフの表示・非表示をメソッド「setVisble」で指定しない
2)円グラフのデータ設定時にメソッドで半径を指定し、データクリア時に半径を初期値に戻す生じているエラーはファイルからロードした時点で半径が設定できないという内容なので、ファイルに保存する半径は初期値にして、表示直前に半径を設定するように修正します。また、そのときの半径の最大値は円グラフコンポーネントのサイズに依存しますが、setVisbleで表示を制御すると内部的に正しいサイズが認識されず初期最大値との比較でエラーとなることがわかったので、使わないようにしてください。
MZPlatformユーザー会サイト管理者円グラフの円の半径の最大値は、メソッドや属性で指定した時点での円グラフコンポーネントのサイズに応じて変わります。
こちらで試した限りでは、初期サイズで半径175が上限となるようなので、200が上限であればどこかで指定して初期サイズから変更していますでしょうか。
また、半径を指定した時点ではエラーなく反映されて、その後アプリを再起動したときにエラーが出るという症状は再現できませんでした。通常は、自動的に描画可能な半径の最大値に自動で変更されると思いますが、何か特別な処理をしているでしょうか。
もし再現可能なサンプルのMZアプリを作成してこの掲示板に添付(ZIPファイルとして)していただければ、こちらでも確認してみます。
-
著者投稿