テキストの入出力にチャレンジしてみました。お馴染み肥満度プログラムです。
まず最初は準備です。
フォームに、「Label」を4つ、「Edit」を5つ、「RadioGroup」を1つ、「BitBtn」を1つ、貼り付け、位置を調整します。
LabelのCaptionには文字(下記イメージ)を入力し、Editの初期文字列は削除します。
BitBtnの「Kind」プロパティで「bkOK」を選択します。
RadioGroupは、Itemsプロパティをダブルクリックすると、文字列を設定するダイアログが出ますので、「男性」と入力し、Enterをクリック「女性」と入力し、Enterをクリックします。
実行結果
プログラム(プロシジャーのみ)
procedure TfrmBMI.btnOKClick(Sender: TObject);
Type
//Gender型を宣言(maleかfemaleしかとらない)
Gender = (male,female);
var
//変数の宣言
//Extended型は10バイトの実数値
height,
weight,
BMI,
max,
min :Extended;
sex :Gender;
begin
//性別をチェックする
case RadioGroup1.ItemIndex of
0 : sex := male;
1 : sex := female;
else
ShowMessage('性別を入力してください');
end;
//データの取り込みと計算
height := StrToFloat(Edit1.Text) / 100;
weight := StrToFloat (Edit2.Text);
BMI := weight / (height * height);
Edit4.Text := FloatToStrF(BMI, ffFixed,4,2);
//判定
case sex of
male: begin
if (BMI >= 0 ) and (BMI <19 ) then
begin
Edit3.Text := '体重が少なすぎます'
end;
if (BMI >= 19) and (BMI <=24) then
begin
Edit3.Text := '体重は正常範囲です'
end;
if (BMI >= 24) and (BMI <=29.4) then
begin
Edit3.Text := '体重が多すぎます'
end;
if (BMI >=29.4) then begin
Edit3.Text := '肥満傾向が顕著です。'
end;
//正常範囲の計算
max := 24 * height * height;
min := 19 * height * height;
Edit5.Text := '正常範囲:' + IntToStr(Round(min)) +
'Kg ---' + IntToStr(Round(max)) + 'kg';
end;
female: begin
if (BMI >= 0 ) and (BMI <18.2 ) then
begin
Edit3.Text := '体重が少なすぎます'
end;
if (BMI >= 18.2) and (BMI <=23) then
begin
Edit3.Text := '体重は正常範囲です'
end;
if (BMI >= 23) and (BMI <=29.4) then
begin
Edit3.Text := '体重が多すぎます'
end;
if (BMI >=29.4) then begin
Edit3.Text := '肥満傾向が顕著です。'
end;
//正常範囲の計算
max := 23 * height * height;
min := 18.2 * height * height;
Edit5.Text := '正常範囲:' + IntToStr(Round(min)) +
'Kg ---' + IntToStr(Round(max)) + 'kg';
end;
end;
end;

