テキストカラーコントロール(カスタムファームウェア専用)グローバル文字の色一括設定インタフェースすべてのテキストクラスコントロールのテキスト前景を動的に変更するコールバック関数で、個別に設定することはありません。典型的なシーンは、明るい背景に暗いテキスト、暗い背景に明るいテキスト、変数がグローバルテーマを制御する、昼/夜モードの切り替えです。
1.一括設定をサポートするコントロール
すべてのコントロールがこのインターフェースで色を付けることはできません。プログラマブル文字の色/描画色プロパティ{ぷろろめらぐたじすとのいろ/描画色プロパティ}参加者の参加:
| コントロールの種類 | 説明書は |
|---|---|
| 静的テキスト | 最も直接的な役割 |
| ビットステータスLED/マルチステータスLED | テーマごとにテキスト部分が変わる |
| ビットボタン/ワードボタン/ボタン | ボタンテキストボタン |
| 選択ボックス/ホイールセレクタのドロップダウン | オプション文字オプション文字 |
| RTC | 時間表示。 |

2.事前設定(2ステップ、必須)
ステップ1:コントロールグループ化機能をグローバルに有効にします。パス:エンジニアリングプロパティ→コントロールのグループ化→有効化これを無効にすると、グループIDを割り当てていても、実行時のすべてのコントロールはグループ関連のプロパティを無視します。
ステップ2:コントロールに有効なグループIDを割り当てます。カラーマネジメントに含める各コントロールについて、コントロールプロパティパネルで設定します。コントロールID0でなければなりません(0はデフォルトの無効な値で、“グループ化されていない”を意味します)。on_wgt_text_colorコールバックは、このIDでコントロールを区別します。
3. API:on_wgt_text_color(screen, control)
コントロール文字の色動的コールバック。システムはコントロールをリフレッシュするときにそれを呼び出し、戻り値をコントロールのテキスト色として取ります。
| パラメータ | タイプの種類 | 説明書は |
|---|---|---|
| screen | number | 複数のページで同じ名前のコントロールを区別するための現在の画面 ID |
| control | number | ターゲットコントロールID。Control ≠ 0の場合のみコールバックをトリガー |
戻り値:colornumberカラーテーマロジック全体がこの1つの機能に含まれます。
4.応用ケース:マルチステートライト切り替えテーマ
画像のレイアウト:1マルチステータスLED色切り替えスイッチ(状態0~4は5つのテーマ色に対応)を行い、画面 IDを0に設定します。テキスト着色をサポートするコントロール(テキスト、ボタン、インジケータ、ドロップダウンボックス、スクロールホイール、RTC)のバッチを置き、コントロールIDを5に統一的に設定します。
LuaはコールバックでLW 300 0レジスタの値をカラーインデックスとして読み込み、対応するRGB565 色値を返します。
function on_w_text_color screen、
ローカルカラー = 0 x 001 F - デフォルトのブルー
スクリーン== 0の場合
制御の場合= 5 then
local val = get_uint16 VT_LW、0 x 3000--カラーインデックス
val == 0の場合
カラー = 0 x 00 FF 【青】
elseif val == 1 then
カラー = 0 x 0 5 6 2 - 緑の
elseif val == 2 then
カラー = 0 x 042 9 - 深緑グリーン
elseif val == 3 then
カラー = 0 x 017 7 【青】
elseif val == 4 then
カラー = 0 x F 800 【赤】
End of Endシングル
End of Endシングル
End of Endシングル
print string.format "on_wgt_text_color % d、% d、% 04X" screen control color
戻り色の色
End of Endシングル仮想画面を実行し、色切り替えコントロールをポイントし、コントロールID 5のすべてのUI要素のテキスト色を同期して更新します。これが“ワンクリックテーマ切り替え”の効果です。
広州大彩科技Visual HMI開発ドキュメント(hmi-doc.gz-dc.com)LUAチュートリアル“テキストカラーコントロール”、著作権は大彩科技に帰属します。
Leave a Reply