BCB Client

- C++ Builderを用いたWindowsプログラミングメモ -

TButton [標準ボタン]

今回は標準のボタン(TButton)です。
これが無いと、なにかと始まりません...

基本は設定してクリックイベントを設定するだけなので
ちょっと気になってたけど使ってないプロパティを試してみる。


◆標準ボタン(TButton)のプロパティ

 [Cancel]      trueにするとESCキーを押せばOnClickイベントを呼べる。
                フォーカスがあたって無くても呼ばれてました。

 [ModalResult] モーダルのフォーム上にボタンを設置して、このプロパティを
                mrNone以外にするとOnClickイベントを使わずに設定した戻り値で
                閉じる事が出来る。
                設定できる値:
                mrOk,mrCancel,mrAbort,mrRetry,mrIgnore,mrYes,mrNo,mrAll,mrNoToAll,mrYesToAll


というわけで、ModalResultを試してみた。


まずは、Form1上にモーダルフォームのForm2を表示する為のボタンを配置します。
tbutton_01.png








次にメニューの、ファイル -> 新規作成 -> フォームからForm2を作成し、
今回試してみるボタンを配置します。
ボタンの[ModalResult]プロパティは、mrNone以外で何か設定してみます。
tbutton_02.png









OnClickイベントで、Form2->ShowModal();を呼び、
戻り値でModalResultの値を判定します。
Form2側はボタンのプロパティ以外、設定しなくても良いです。




<Unit1.cpp>
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------
// モーダルでForm2を表示する
void __fastcall TForm1::Form2BtnClick(TObject *Sender)
{
	// Form2を表示
	int ret = Form2->ShowModal();

	// モーダルフォームの戻り値で判定
	switch( ret ){
	case mrOk:
		ShowMessage("mrOk:OK");
		break;
	case mrCancel:
		ShowMessage("mrCancel:キャンセル");
		break;
	case mrAbort:
		ShowMessage("mrAbort:中止");
		break;
	case mrRetry:
		ShowMessage("mrRetry:再試行");
		break;
	case mrIgnore:
		ShowMessage("mrIgnore:無視");
		break;
	case mrYes:
		ShowMessage("mrYes:はい");
		break;
	case mrNo:
		ShowMessage("mrNo:いいえ");
		break;
	case mrAll:
		ShowMessage("mrAll:すべて");
		break;
	case mrNoToAll:
		ShowMessage("mrNoToAll:すべていいえ");
		break;
	case mrYesToAll:
		ShowMessage("mrYesToAll:すべてはい");
		break;
	default:
		ShowMessage("不明");
		break;
	}
}
//---------------------------------------------------------------------------




<Unit2.cpp>
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------




使い道があるかは分からんけど
とりあえずこれで。

[ トップ | 一覧 | 前へ | 次へ ]

  • トップ
  • 一覧
  • リンク
  • 掲示板

Copyright © BCB Client. All Rights Reserved. Template by ネットマニア