StringGrid

概要:StringGridを用い、sin関数を計算、結果をStringGridする。

<作業>

・ボタン配置
・プログラム終了用にビットマップボタン1つ配置。プロパティーはbkClose。
・StringGridを置く。
・fixedcols=0とすると、列の固定型セルが消える。
・ColCountを3に設定。列が3列になる。
・列の見出しを付ける。左端から、回数・x・f(x)と表示させる。
これはフォーム生成時に書き込めばよいのでOnCreateイベントハンドラにソースを書く。
OnCreateイベントハンドラは、フォームそのもののダブルクリックでよい。
void __fastcall TForm1::FormCreate(TObject *Sender)
{
	StringGrid1->RowCount = 1;	// 見出し表示のために1行確保

	StringGrid1->Cells[0][0]="回数";
	StringGrid1->Cells[1][0]="x";
	StringGrid1->Cells[2][0]="sin(x)";

}
・計算の繰り返し回数入力用にEditを配置。Textプロパティーをとりあえず1にする。
・Labelを用い、Edit1が「繰り返し回数入力用フィールド」であることを示す。
・xの刻み幅入力用にEditを配置。Textプロパティーをとりあえず45にする。
・Labelを用い、Edit2が「刻み幅[deg]入力用フィールド」であることを示す。
・ボタン1を押すと計算し、表示するようする。ボタン1のイベントハンドラの記述。
ボタン1をダブルクリック。
・sin関数を使用するので、 をインクルードしておく。
・フォームのCaptionを”StringGrid”に。

ソース

以下、ソース。

/**************************************************************************** StringGridの使用 sin計算による ****************************************************************************/ //--------------------------------------------------------------------------- #include #include #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { StringGrid1->RowCount = 1; // 見出し表示のために1行確保 StringGrid1->Cells[0][0]="回数"; StringGrid1->Cells[1][0]="x"; StringGrid1->Cells[2][0]="sin(x)"; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { int i,max; float kizami; float x = 0.0; // [rad] max = StrToInt (Edit1->Text); // 繰り返し回数を取得 kizami = StrToFloat ( Edit2->Text )*3.14159/180.0; // [rad] StringGrid1->RowCount = max+1; // 何行表示するかを決定 // max+1行 for ( i=1; i<=max; i++ ) { StringGrid1->Cells[0][i]=IntToStr(i); // 繰り返し回数 StringGrid1->Cells[1][i]=FloatToStr(x*180.0/3.14159);// 角度を表示 StringGrid1->Cells[2][i]=FloatToStr(sin(x)); // sin値を表示 x += kizami; } }

C++Builder入門トップ