実行結果
電卓プログラム、動きましたぁ!!
ちょっと手抜きして、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;
