概要:別ウインドウの利用。
メインウインドで入力した値に別ウインドで選択した処理をして出力する。
<作業>
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 │
Form2->ShowModal(); float x,y; x=StrToFloat(input->Text); y=Henkan(StrToInt(Form2->RadioGroup1->ItemIndex),x); output->Caption=FloatToStr(y);
パーツ | プロパティ | 値 | |
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); } } //---------------------------------------------------------------------------