テキストの入出力にチャレンジしてみました。お馴染み肥満度プログラムです。
まず最初は準備です。
フォームに、「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;