実行結果
電卓プログラム、動きましたぁ!!
ちょっと手抜きして、Editに名前をつけなかったりはしましたが・・・なんとか動きました。
独力ではありませんが(^^; ナッキーさまのプログラムをマネしてみただけです。
今回はちょいと長かったのですが、2日でやっつけました。
いまのところそんなに難しい部分は出てきませんので、なんとか理解の範囲内です。
プログラム
procedure TForm1.btnTasuClick(Sender: TObject); //演算ボタン[+]が押されたときラベルに+と表示 //Edit1と2の色を変更する begin lblEnzan.Caption := '+'; Edit1.Color := clYellow; Edit2.Color := clWhite; end; //クリアボタンが押されたとき初期化する procedure TForm1.btnClearClick(Sender: TObject); begin Edit1.Text := ''; Edit2.Text := ''; Edit3.Text := ''; Edit1.Color := clWhite; Edit2.Color := clYellow; Edit3.Color := clYellow; lblEnzan.Caption := ''; lblEqual.Visible := False; end; procedure TForm1.btnCloseClick(Sender: TObject); begin Close; end; procedure TForm1.btnCopyClick(Sender: TObject); //コピーボタンを押したとき、計算結果をクリップボードに保存 begin Edit3.SelectAll; Edit3.CopyToClipboard; btnClearClick(Sender);//クリアボタンを呼び出す Edit1.PasteFromClipboard; end; procedure TForm1.btnHikuClick(Sender: TObject); begin lblEnzan.Caption := '-'; Edit1.Color := clYellow; Edit2.Color := clWhite; end; procedure TForm1.btnKakeruClick(Sender: TObject); begin lblEnzan.Caption := '×'; Edit1.Color := clYellow; Edit2.Color := clWhite; end; procedure TForm1.btnKeisanClick(Sender: TObject); var Num1 : Integer; Num2 : Integer; Ans : Double; //計算ボタンを押したとき begin // StrToIntDefは文字列型から整数型へ変換する関数 Num1 := StrToIntDef(Edit1.Text,0); Num2 := StrToINtDef(Edit2.Text,0); //ラベルのキャプションで判断して計算する if lblEnzan.Caption = '+' then Ans := Num1 + Num2 else if lblEnzan.Caption = '-' then Ans := Num1 - Num2 else if lblEnzan.Caption = '×' then Ans := Num1 * Num2 else if lblEnzan.Caption = '÷' then Ans := Num1 / Num2 else Ans := Num1; Edit2.Color := clYellow; Edit3.Color := clWhite; // FloatToStr は、実数型から文字列型へ変換する関数 Edit3.Text := FloatToStr(Ans); end; procedure TForm1.btnWaruClick(Sender: TObject); begin lblEnzan.Caption := '÷'; Edit1.Color := clYellow; Edit2.Color := clWhite; end; procedure TForm1.sbtn10Click(Sender: TObject); //数値0のボタンが押されたとき //演算記号が入ったら右側の入力ボックスに0を入れる //ヌル(空)の場合は、左側のボックスに0を入れる begin if lblEnzan.Caption = '' then Edit1.Text := Edit1.Text + '0' else Edit2.Text := Edit2.Text + '0'; end; procedure TForm1.sbtn1Click(Sender: TObject); //数値1のボタンが押されたとき begin if lblEnzan.Caption = '' then Edit1.Text := Edit1.Text + '1' else Edit2.Text := Edit2.Text + '1'; end; procedure TForm1.sbtn2Click(Sender: TObject); begin if lblEnzan.Caption = '' then Edit1.Text := Edit1.Text + '2' else Edit2.Text := Edit2.Text + '2'; end; procedure TForm1.sbtn3Click(Sender: TObject); begin if lblEnzan.Caption = '' then Edit1.Text := Edit1.Text + '3' else Edit2.Text := Edit2.Text + '3'; end; procedure TForm1.sbtn4Click(Sender: TObject); begin if lblEnzan.Caption = '' then Edit1.Text := Edit1.Text + '4' else Edit2.Text := Edit2.Text + '4'; end; procedure TForm1.sbtn5Click(Sender: TObject); begin if lblEnzan.Caption = '' then Edit1.Text := Edit1.Text + '5' else Edit2.Text := Edit2.Text + '5'; end; procedure TForm1.sbtn6Click(Sender: TObject); begin if lblEnzan.Caption = '' then Edit1.Text := Edit1.Text + '6' else Edit2.Text := Edit2.Text + '6'; end; procedure TForm1.sbtn7Click(Sender: TObject); begin if lblEnzan.Caption = '' then Edit1.Text := Edit1.Text + '7' else Edit2.Text := Edit2.Text + '7'; end; procedure TForm1.sbtn8Click(Sender: TObject); begin if lblEnzan.Caption = '' then Edit1.Text := Edit1.Text + '8' else Edit2.Text := Edit2.Text + '8'; end; procedure TForm1.sbtn9Click(Sender: TObject); begin if lblEnzan.Caption = '' then Edit1.Text := Edit1.Text + '9' else Edit2.Text := Edit2.Text + '9'; end;