フォーラムへの返信
-
投稿者投稿
-
MZPlatformユーザー会キーマスター
こちらで確認した限りでは、書いていただいたキーコードと修飾コードを指定して、F1キーで同様に操作ができました。もしかしたらご使用の環境によっては動作しないのかもしれません。
こちらでサンプルを修正したアプリのZIPファイルを添付しますので、展開して実行してF1キーを押してみていただけますでしょうか。
添付ファイル:
MZPlatformユーザー会キーマスター今回は良いですが、別の質問をする場合は別トピックを作成していただけると助かります。
フレームのキーイベントは、フレームそのものにフォーカスがある場合のみ発生するので、あまり実用上は機能しません。例えばボタンを押したり、フィールドにカーソルがあると、フレームのキーイベントは発生しないという感じになります。
ショートカットキーの機能を作成する場合は、キーイベントハンドラーを使います。サンプルアプリとそのドキュメントがありますので、まずはこれらをご確認いただいて、ご不明な点があればお問い合わせください。
C:\MZPlatform\3.6\AP_DATA\Sample\キーイベントハンドラー.mzax
C:\MZPlatform\3.6\docs\sample\サンプル(キーイベントハンドラー).pdfMZPlatformユーザー会キーマスター領域配置では5つの領域として、フレーム等のサイズに連動する中央の「Center」、幅方向のサイズに連動する上下の「North」と「South」、高さ方向のサイズに連動する左右の「West」と「East」があります。
画面編集画面でコンポーネントを手動で追加する際に、それぞれの領域を指定することでご希望の領域に部品を配置できます。ただし、それぞれの領域に複数の部品を配置したい場合には、それぞれの領域に「パネル」を配置して、その中に部品を配置する方が良いことが多いです。
なお、他の配置方法から領域配置に変更すると、すべてのコンポーネントが「Center」に追加された状態になるので、なかなかご希望の状態にはならないと思います。お手数ですが、一つ一つ手作業で画面配置していただく必要があります。
まずは上記の領域配置の使用方法をご確認いただき、ご不明な点があれば再度お問い合わせください。
MZPlatformユーザー会キーマスター帳票のテーブルの行は記載内容が多ければ折り返しで複数行表示されますが、指定位置での改行ができませんので、できないという回答になります。
もし、MZのテーブルで複数行をひとまとまりとして表現して、それを帳票のテーブルに表示することで代替が可能であれば、そのようなテーブルの作成方法については回答できます。帳票のテーブルは任意の位置に罫線が引けませんが、横方向の罫線を消してひとまとまりごとに行の背景色を変えて表示するなどの工夫をすれば、近いものが表現できるかもしれません。参考までに作成したサンプルアプリのZIPファイルを添付しますので、展開して確認していただけますでしょうか。
- この返信は4年、 8ヶ月前にMZPlatformユーザー会が編集しました。
添付ファイル:
MZPlatformユーザー会キーマスター時間計測コンポーネントで実現したいことができない場合は、カレンダーコンポーネントを使って同様の処理も実現できますし、それを使って独自の処理を実現することもできます。
文章を読んだ印象からこちらで処理を追加したサンプルを参考までに添付します。
ここの処理をこのようにしたいなど追加のご質問があればお知らせください。添付ファイル:
MZPlatformユーザー会キーマスター回答が遅くなり恐縮です。同じ製品を入手しましたが、下記の通りで良い結果は出ておりません。
PC:Windows 10 Pro
QRコードリーダー:Tera社製HW0002
MZ Platform 3.6のQRコードサンプル.mzaxで日本語のQRコード表示結果は、説明書通りの設定でExcelのみ読み取れまして、メモ帳・Word・MZアプリ(3.6)のテキストエリアは正しく入力できませんでした。MZのテキストフィールドで対応策をしても変わりませんでした。この機種はShift-JISの日本語QRコード対応とのことで、メモ帳とExcelおよび別設定でWordも対応とのことでしたが、説明書通りの設定ではExcel以外文字化けしました。この問い合わせフォームに入力する場合はWebブラウザの種類も関係すると思いますが、こちらの環境(新Edge)では文字化けしました。
同じ機器を使用してもこのように状況が異なることから、やはり使用環境にも依存することは確実です。Microsoft製ソフトウェアでも文字化けしていますので、MZ Platform側での対応は難しいと思います。
前述のように、同じ使用環境でMZ Platformのテキストフィールドで正常に読み取れる場合もありますので、もしそのような機器が入手できればご使用いただき、それ以外は日本語QRコードを使用しない方法をご検討いただいた方が良いと思います。
MZPlatformユーザー会キーマスターコンポーネント内部の処理を確認したところ、確かに中断や停止の処理の中で実行中かどうかの判定をせずに時間の加算をしていました。今後のリリース時に修正を検討します。
現状としては、ボタンを押せないようにして対処するしかないと思います。処理を追加したサンプルのZIPファイルを添付します。
添付ファイル:
MZPlatformユーザー会キーマスター残念ながら、MZアプリケーションでその機能を直接実現するためのコンポーネントはありません。
もし同様の機能を既存のコンポーネントの組み合わせで実現する場合、例えば入力されたパスワードの情報をPC上の外部ファイルかデータベースに記録して、照合することになります。
ただし、パスワードの情報を外部ファイルに記録すると他人も見られることになるので、セキュリティ上の問題があります。データベースへの記録では他人から見られにくくなりますが、やはり技術的には他人からも見られることになりますので、同様の問題があります。
以上の問題を認識した上で、アプリケーション実行中にパスワードを外部ファイルに保存するサンプルをZIPファイルにしたものを添付します。パスワード文字列そのものではなく変換後の文字列を特定のファイルに保存する処理を実現しましたので、必要に応じて参考にしていただければと思います。
添付ファイル:
MZPlatformユーザー会キーマスター一般的には、使用しているコンポーネントのデータをすべて初期値に設定して、画面部品コンポーネントの表示状態を初期状態に設定することになります。具体的に実現したいことがあればご説明をお願いします。
MZPlatformユーザー会キーマスターMZアプリケーションの処理の中で、そのアプリケーションそのものを再起動することはできないと思いますが、それらしい処理を実現することは可能です。
確かに、ボタンのアクションイベントの処理の中で、アプリケーションコンポーネントの「startApplication()」メソッドを呼ぶことで、アプリケーション開始イベントが発生します。つまり起動時の処理をもう一度実行することは可能です。
一方、どこかでアプリケーションコンポーネントの「アプリケーションを終了する()」メソッドを呼び出すと、実行中のプロセスそのものが完全に終了してしまいますので、それ以降の処理を記述していても実行されることはありません。
そのため、再起動のような処理を実現するためには、アプリケーション内のすべてのデータや値が起動時の状態となるような初期化用のサブルーチンなどを作成しておいて、ボタンを押したときにそれが実行されるようにします。
上記の方法では希望する動作が実現できないということがありましたら、こちらでも検討しますのでお知らせください。よろしくお願いします。
-
投稿者投稿