サンプル3

概要:別ウインドウの利用。
メインウインドで入力した値に別ウインドで選択した処理をして出力する。

<作業>
1.新規プロジェクトを開始する。
2.フォームのCaptionを変更(表参考)
3.スピードバーの[フォームの作成]をクリックし、新しいフォームを作成する。
4.ユニット1をUsample31、ユニット2をUdia31、プロジェクトをsample31で保存。
5.メインフォーム(フォーム1)にボタン1つ、ビットマップボタン1つ、エディットボックス1つ、パネルを2つ置く。
6."Udia31.h"をインクルードする。
7.button1をダブルクリック、イベントハンドラの記述。
Form2->ShowModal();
8.フォーム2のBorderStyleプロパティをbsDialogにする。
9.フォーム2のPositionプロパティをpoScreenCenterにする。
10.フォーム2のCaptionプロパティを「設定」にする。
11.フォーム2にラジオグループを置く。
12.ラジオグループをクリック。
13.Itemプロパティの省略記号をクリック、次のように入力。

   │	*2     │                                                                
   │	*5     │                                                                
   │	*10    │                                                                

14.ItemIndexを「0」に設定。
15.設定ボタンのOnClickイベントハンドラ記述。
	Form2->ShowModal();
	float x,y;
	x=StrToFloat(input->Text);
	y=Henkan(StrToInt(Form2->RadioGroup1->ItemIndex),x);
	output->Caption=FloatToStr(y);

16.ここで、Henkan関数を記述
17.フォーム2にビットマップボタンを2つ置く。
18.設定ボタンのonClickイベントハンドラをソースのように書き改める。
パーツ プロパティ
Edit1 Text (なし)
Edit1 Name input
Edit1 TabOrder 0
Panel1 Caption 変換します
Panel1 Name memo
Panel2 Caption
Panel2 Name output
Button1 Caption 設定&変換
BitBtn1 Kind bkOk
BitBtn2 Kind bkClose
//Usamp31.cpp
//ダイアログを使ったプログラム

//---------------------------------------------------------------------------
#include 
#pragma hdrstop

#include "Usamp31.h"
#include "Udia31.h"

//---------------------------------------------------------------------------
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------

float Henkan(int type,float x)
{
	float yy;

    switch(type)
    {
    	case 0:yy=x*2;break;
        case 1:yy=x*5.0;break;
        case 2:yy=x*10.0;break;

    }

    return(yy);
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
 	int Val=Form2->ShowModal();

    float x,y;

    if(Val==mrOk)
    {
    x=StrToFloat(input->Text);

    y=Henkan(StrToInt(Form2->RadioGroup1->ItemIndex),x);

    output->Caption=FloatToStr(y);
    }


}
//---------------------------------------------------------------------------

C++Builder入門トップ