05092024

Last update2016/05/28 14:38

Back 現在地: Home パートナー segger-tools GUIBuilder

GUIBuilder

GUIBuilder

GUIBuilderのアプリケーションは、Cプログラミング言語の知識がなくてもダイアログを作成するためのツールです。代わりにソースコードを書くのウィジェットが配置され、ドラッグ&ドロップでサイズを決定することができます。追加のプロパティは、コンテキストメニューごと追加することができます。微調整は、ウィジェットのプロパティを編集することによって行うことができます。これは、Cプログラミング言語の知識を必要としません。ダイアログは、ユーザー定義のコードを追加することによって向上させることができるC言語のファイルとして保存することができます。もちろん、組み込みのユーザーコードとこれらのCファイルがGUIBuilderでロードして変更することができます。

はじめ

次の図は、GUIBuilderのグラフィカルユーザインタフェースの要素を示しています。

ウィジェットの選択バー

このバーは、GUIBuilderの使用可能なすべてのウィジェットが含まれています。彼らは、目的のウィジェット上またはエディタ領域にドラッグして選択バーにシングルクリックで追加することができます。

オブジェクトツリー

このエリアは、現在ロードされているすべてのダイアログとその子ウィジェットを示しています。それは応じてエントリーをクリックしてウィジェットを選択するために使用することができます。

ウィジェットのプロパティ

それは、各ウィジェットのプロパティを表示し、それらを編集するために使用することができます。

エディタ

エディタウィンドウは、現在選択されているダイアログを示しています。それは、ダイアログと、そのウィジェットを配置し、サイズを変更するために使用することができます。

はじめに

プロジェクトを開始する前に、GUIBuilderは、プロジェクトのパスを知っている必要があります。デフォルトでは、このは、GUIBuilderのアプリケーションのパスです。すべてのファイルがこのフォルダに保存されます。

プロジェクトパスの設定

最初の実行後は、GUIBuilderのディレクトリには、設定ファイルのGUIBuilder.iniが含まれています。このファイル内のプロジェクトのパスは、値のProjectPathを編集することで変更できます。

[設定] ProjectPath ="C:\ WORK \ MyProject\"

ダイアログの作成

以下はダイアログを作成する方法と、使用されるウィジェットのプロパティを変更する方法を示しています。

親ウィジェットを選択する

各ダイアログには、有効な親ウィジェットが必要になります。ので、親として機能することができるウィジェットで開始する必要があります。現在、この時点で使用できる2つのウィジェットがあります。

フレームウィンドウのウィジェットウィンドウウィジェット

上記の表では、ウィジェットの選択バーの応じてボタンを示しています。エディタにウィジェットを入手するためのボタンは、クリックされたエディタウィンドウにマウスでドラッグまたは"新規"メニューを使用して作成された単一にすることができます。

エディタのサイズ変更と配置

エディタ領域にウィジェットを配置した後、それは、マウスまたはキーボードの矢印キーを使って移動することができます。サイズ変更は、
マーカーをドラッグすることによって行うことができます。

ウィジェットのプロパティの変更

GUIBuilderの左下の領域では、プロパティのウィンドウが含まれています。新しいウィジェットを作成した後、それは、ウィジェットのデフォルトのプロパティを示します:名前、位置、大きさと余分なバイト。これらのプロパティは、ウィジェットのすべての種類の利用可能であり、削除できません。デフォルトのプロパティに反してすべての追加のプロパティは、コンテキストメニューによって削除することができます
応じて行が選択されている場合を押す。それは、Enterキーを押して(目的の行が選択し、ウィンドウにフォーカスがあるされている場合)または単一での値フィールドにクリックして、キーボードで選択できる値を変更するには。さらに右クリックでコンテキストメニューの"編集"エントリは、編集操作を開始するために使用することができます。中止の編集操作に使用することができます。

ウィジェットへの追加機能を追加する

オブジェクトツリーで目的のウィジェットまたは右クリックでエディタウィンドウ内のウィジェットのいずれかを右クリックで使用可能な関数でコンテキストメニューを取得することは行うことができます。機能を選択すると、ウィジェットに新しいプロパティを追加し、選択した関数の編集操作を開始します。数値またはアルファの数値の場合に編集操作は、プロパティウィンドウ内で行われます。

選択するフォント、テキストのアラインメントまたは色の場合には、別の選択ウィンドウが発生します。

アライメントの選択

アライメントの選択ダイアログでは、緑の前の選択されたアラインメントを示す。ボックス内でシングルクリックすると、新しい配置を選択します。は選択を中止します。

色の選択

色を選択するためのWindowsのデフォルトの色の選択ダイアログが発生します。

フォントの選択

フォント選択ダイアログは、GUIBuilderの使用可能なすべてのフォントが表示されます。目的のフォントが必要なフォントをシングルクリックで選択することができます。選択を中止します。

ウィジェットのプロパティの削除

これは、プロパティウィンドウのコンテキストメニューを使用したり、ウィジェットのプロパティ]ウィンドウで目的のプロパティにフォーカスがある場合キーを押すことによって簡単に行うことができます。

ウィジェットの削除

ウィジェットは、ウィジェットがエディタウィンドウでアクティブ化している場合キーを押すことにより削除することができます。また、オブジェクトのツリーウィンドウで選択してDELでキーを押すことにより削除することができます。

削除もそのすべての子ウィンドウを親ウィジェットを削除することに注意してください。

現在のダイアログボックス(複数可)を保存する

メニューエントリで"ファイル/保存..." 現在読み込まれているすべてのダイアログは、プロジェクトのフォルダに保存されます。プロジェクトフォルダを設定する方法の詳細についてはページ675"はじめに"を参照してください。

各ダイアログは、単一のCファイルとして保存されます。ファイル名は、親ウィジェットのウィジェット名によって自動的に生成されることに注意してください。ファイル名は次のように構築されています:

のDLG.c

例えば、ウィジェットの名前が'Framewinは'ファイルがFramewinDLG.cという名前が付けられます。

GUIBuilderの出力

GUIBuilderの結果上記のようにCのファイルのみです。以下は、ツールによって生成される少量のサンプルを示しています。

/************************************************* ******************** * * * SEGGERマイクロ社&Co KGリアルタイムマイクロコントローラアプリケーション用* *ソリューション* * * ********* ************************************************** *********** * * *によって生成されたC -ファイル:* * * * GUI_Builder emWinバージョン5.09のための* *コンパイルされた2011年3月23日、午前9時52分04秒* *(C)2011 SEGGERマイクロ社&Co。KGの* * * ******************************************* *************************** * * *インターネット:www.segger.comのサポート:
 このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。
  * * * *** ************************************************** ***************** * / / / USERのSTART(オプションで、追加が含まれて挿入)/ / USERのENDは#"DIALOG.h"を含む/********* ************************************************** ********** * *定義する* ************************************ ********************************** * /#ID_FRAMEWIN_0を定義する(GUI_ID_USER + 0x0A)を#defineのID_BUTTON_0(GUI_ID_USER + 0x0Bと)/ / USERのSTART(オプションで、追加を定義して挿入する)/ / USERのEND /********************************* ************************************ * *静的データ* ********* ************************************************** *********** * / / / USERのSTART(オプションで、追加の静的データを挿入する)/ / USER END /********************* ************************************************ * * _aDialogCreate * /静的なconst GUI_WIDGET_CREATE_INFO _aDialogCreate [] = {{、"Framewin"、ID_FRAMEWIN_0、0、0、320、240、0、0、0 FRAMEWIN_CreateIndirect}、{、"ボタン"、ID_BUTTON_0、5、5、80 BUTTON_CreateIndirect、 20、0、0、0}、/ / USER START(オプションで、追加のウィジェットを挿入する)/ / USERのEND}; /************************ ********************************************* * *静的コード* ************************************************** ******************** * / / / USERのSTART(オプションで、追加の静的なコードを挿入する)/ / USER END /************ ************************************************** ******* * * _cbDialog * /静的ボイド_cbDialog(WM_MESSAGE * PMSG){WM_HWIN hItem、int型のID、nCode社; / / USER START(オプションで追加の変数を挿入する)/ / USERのENDのスイッチ(PMSG -> MSGID) {ケースWM_INIT_DIALOG:/ /'Framewin"の/ /初期化/ / hItem = PMSG -> hWin、FRAMEWIN_SetTextAlign(hItem、GUI_TA_HCENTER | GUI_TA_VCENTER); FRAMEWIN_SetFont(hItem、GUI_FONT_24_ASCII);'ボタン'の/ / / /初期化/ / hItem = WM_GetDialogItem(PMSG -> hWin、ID_BUTTON_0); BUTTON_SetText(hItem、"私を押して..."); / / USERのSTART(さらにウィジェットの初期化のためのOpt.インサート追加コード)/ / USER ENDの休憩;ケースWM_NOTIFY_PARENT:ID =をWM_GetId(PMSG -> hWinSrc)= PMSG -> Data.v nCode社は、スイッチ(イド){ケースID_BUTTON_0:"ボタン"スイッチによって送信される/ /通知(nCode社){ケースがWM_NOTIFICATION_CLICKED:/ / USERのSTARTを(オプションでのコードを挿入する/ / USER ENDブレイク)通知メッセージに反応し、ケースはWM_NOTIFICATION_RELEASED:/ / USERには、/ / USER ENDブレーク(必要に応じて通知メッセージに反応するためのコードを挿入する)を起動し、/ / USER START(今後の通知処理のためのOpt.インサート追加コード)/ / USER END}休憩; / / USER START(必要に応じてさらにIDの追加コードを挿入する)/ / USERのEND}休憩; / / USER START(オプションで、追加のメッセージ処理を挿入する)/ / USERのENDのデフォルト:WM_DefaultProc(PMSG);休憩; }} /*********************************************** ********************** * *公開コード* *********************** *********************************************** * / / ************************************************** ******************* * * CreateFramewin * / WM_HWIN CreateFramewin(ボイド){WM_HWIN hWin; hWin = GUI_CreateDialogBox(_aDialogCreate、GUI_COUNTOF(_aDialogCreate)、&_cbDialog、WM_HBKWIN、0、 0);戻りhWin;} / / USER START(オプションで、追加の公開コードを挿入する)/ / USERのEND /***************************ファイルの****************************/の終わり

Cファイルの変更

サンプルコードに示すように、それはカスタムコードのための多くのセクションが含まれています。これらは、以下のセクションは次のとおりです。

/ / USERのSTART(オプションで挿入...)/ / USER END

これらの行の間の任意のコードを追加することを許可されます。コードの行の間に追加する必要があることに注意してください。コメント行自体を変更することはできません。以下は、それが動作する方法を示しています。

/ / USERのSTART(オプションで、追加が含まれて挿入)#ifndefのWIN32は##endifの/ / USER ENDが含まれています

Cのファイルを使用する方法

出力例が示すように、コードはダイアログを使用するすべてのコードが含まれていない場合、または他の言葉で、ディスプレイ上に表示しています。各ファイルには、<Widgetの名を()の作成という名前の末尾に作成ルーチンが含まれています。これらのルーチンは、応じてダイアログを作成します。単にそれらをディスプレイ上で発生するためにこれらのルーチンを呼び出します。

次のコードは、ディスプレイ上の前の出力サンプルのダイアログを描画する方法を示しています。

#"DIALOG.h"を含む/****************************************** *************************** * *外観* ******************* ************************************************** * * / WM_HWIN CreateFramewin(ボイド); /**************************************** ***************************** * *公開コード* **************** ************************************************** **** * / /******************************************* ************************** * * MainTaskする* / void MainTask(ボイド){WM_HWIN hDlg; GUI_Init(); / / / /コールの作成ダイアログ/ / hDlg = CreateFramewin()の関数/ / / / / /をhDlgを使って何をするかもしれません... / / / /プログラムは生き続ける... / /一方、(1){GUI_Delay(10);}}