Q&A

  • 가장 기본적인 사칙연산 계산기 소스입니다.......도움되시길^^
제가 방금 만든 계산기 소스입니다...

가장 기본적인 사칙연산만 할수 있는거요

델파이 공부하시는 여러분들 열심히 하세요

열심히 하시면 길이 보일꺼예요....

그담에 이 계산기 업그레이드하실려면 말씀해주세요^^

.

.

.

소스 여기에 붙입니다.

소스보시면 폼은 쉽게 제작할수 있을겁니다.^^



unit U_MCal;



interface



uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, NumInp, ExtCtrls;



type

TF_MCal = class(TForm)

Panel1: TPanel;

Btn_7: TButton;

Btn_8: TButton;

Btn_9: TButton;

Btn_6: TButton;

Btn_5: TButton;

Btn_4: TButton;

Btn_00: TButton;

Btn_1: TButton;

Btn_0: TButton;

Btn_2: TButton;

Btn_3: TButton;

Btn_clear: TButton;

Btn_deosem: TButton;

Btn_kopsem: TButton;

Btn_BBelsem: TButton;

Btn_nanusem: TButton;

Btn_off: TButton;

edit: TNumInp;

Btn_neon: TButton;

Btn_Bspace: TButton;

procedure Btn_1Click(Sender: TObject);

procedure Btn_2Click(Sender: TObject);

procedure Btn_3Click(Sender: TObject);

procedure Btn_4Click(Sender: TObject);

procedure Btn_5Click(Sender: TObject);

procedure Btn_6Click(Sender: TObject);

procedure Btn_9Click(Sender: TObject);

procedure Btn_8Click(Sender: TObject);

procedure Btn_7Click(Sender: TObject);

procedure Btn_0Click(Sender: TObject);

procedure Btn_00Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Btn_clearClick(Sender: TObject);

procedure Btn_offClick(Sender: TObject);

procedure Btn_deosemClick(Sender: TObject);

procedure Btn_kopsemClick(Sender: TObject);

procedure Btn_BBelsemClick(Sender: TObject);

procedure Btn_nanusemClick(Sender: TObject);

procedure Btn_neonClick(Sender: TObject);

procedure Btn_BspaceClick(Sender: TObject);

procedure FormKeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);



private

{ Private declarations }

public

{ Public declarations }

end;



var

F_MCal: TF_MCal;

op : char;

p1,p2 : string;

implementation



{$R *.DFM}



procedure TF_MCal.Btn_1Click(Sender: TObject);

begin



if op = '@' then

begin

p1 := p1 + '1';

edit.value := strtofloat(p1);

end

else

begin

p2 := p2 + '1';

edit.value := strtofloat(p2);

end;



end;



procedure TF_MCal.Btn_2Click(Sender: TObject);

begin



if op = '@' then

begin

p1 := p1 + '2';

edit.value := strtofloat(p1);

end

else

begin

p2 := p2 + '2';

edit.value := strtofloat(p2);

end;



end;



procedure TF_MCal.Btn_3Click(Sender: TObject);

begin



if op = '@' then

begin

p1 := p1 + '3';

edit.value := strtofloat(p1);

end

else

begin

p2 := p2 + '3';

edit.value := strtofloat(p2);

end;





end;



procedure TF_MCal.Btn_4Click(Sender: TObject);

begin



if op = '@' then

begin

p1 := p1 + '4';

edit.value := strtofloat(p1);

end

else

begin

p2 := p2 + '4';

edit.value := strtofloat(p2);

end;



end;



procedure TF_MCal.Btn_5Click(Sender: TObject);

begin



if op = '@' then

begin

p1 := p1 + '5';

edit.value := strtofloat(p1);

end

else

begin

p2 := p2 + '5';

edit.value := strtofloat(p2);

end;



end;



procedure TF_MCal.Btn_6Click(Sender: TObject);

begin



if op = '@' then

begin

p1 := p1 + '6';

edit.value := strtofloat(p1);

end

else

begin

p2 := p2 + '6';

edit.value := strtofloat(p2);

end;



end;



procedure TF_MCal.Btn_7Click(Sender: TObject);

begin



if op = '@' then

begin

p1 := p1 + '7';

edit.value := strtofloat(p1);

end

else

begin

p2 := p2 + '7';

edit.value := strtofloat(p2);

end;



end;



procedure TF_MCal.Btn_8Click(Sender: TObject);

begin



if op = '@' then

begin

p1 := p1 + '8';

edit.value := strtofloat(p1);

end

else

begin

p2 := p2 + '8';

edit.value := strtofloat(p2);

end;



end;



procedure TF_MCal.Btn_9Click(Sender: TObject);

begin



if op = '@' then

begin

p1 := p1 + '9';

edit.value := strtofloat(p1);

end

else

begin

p2 := p2 + '9';

edit.value := strtofloat(p2);

end;



end;



procedure TF_MCal.Btn_0Click(Sender: TObject);

begin



if op = '@' then

begin

p1 := p1 + '0';

edit.value := strtofloat(p1);

end

else

begin

p2 := p2 + '0';

edit.value := strtofloat(p2);

end;



end;



procedure TF_MCal.Btn_00Click(Sender: TObject);

begin



if op = '@' then

begin

p1 := p1 + '00';

edit.value := strtofloat(p1);

end

else

begin

p2 := p2 + '00';

edit.value := strtofloat(p2);

end;



end;



procedure TF_MCal.FormCreate(Sender: TObject);

begin



op := '@';

p1 := '0';

p2 := '0'



end;



procedure TF_MCal.Btn_clearClick(Sender: TObject);

begin



op := '@';

p1 := '0';

p2 := '0';

edit.value := 0;



end;



procedure TF_MCal.Btn_offClick(Sender: TObject);

begin



close;



end;



procedure TF_MCal.Btn_deosemClick(Sender: TObject);

begin



op := '+';



end;



procedure TF_MCal.Btn_kopsemClick(Sender: TObject);

begin



op := '*';



end;



procedure TF_MCal.Btn_BBelsemClick(Sender: TObject);

begin



op := '-';



end;



procedure TF_MCal.Btn_nanusemClick(Sender: TObject);

begin



op := '/';



end;



procedure TF_MCal.Btn_neonClick(Sender: TObject);

begin



if op = '+' then begin



edit.value := strtofloat(p1) + strtofloat(p2);



end;



if op = '-' then begin



edit.value := strtofloat(p1) - strtofloat(p2);



end;



if op = '*' then begin



edit.value := strtofloat(p1) * strtofloat(p2);



end;



if op = '/'then begin



if (strtofloat(p1) = 0 ) or (strtofloat(p2) = 0) then



edit.value := 0



else



edit.value := strtofloat(p1) / strtofloat(p2);



end;

end;



procedure TF_MCal.Btn_BspaceClick(Sender: TObject);



var i : integer;



begin



if op = '@' then begin



i := length(p1);

i := i - 1;



if i > 0 then



p1 := copy(p1,1,i);

edit.value := strtofloat(p1);

end



else begin



i := length(p2);

i := i - 1;



if i > 0 then



p1 := copy(p1,1,i);

edit.value := strtofloat(p2);



end;



end;



procedure TF_MCal.FormKeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

var i : integer;

begin



case key of



VK_NUMPAD1 : Btn_1Click(sender);

VK_NUMPAD2 : Btn_2Click(sender);

VK_NUMPAD3 : Btn_3Click(sender);

VK_NUMPAD4 : Btn_4Click(sender);

VK_NUMPAD5 : Btn_5Click(sender);

VK_NUMPAD6 : Btn_6Click(sender);

VK_NUMPAD7 : Btn_7Click(sender);

VK_NUMPAD8 : Btn_8Click(sender);

VK_NUMPAD9 : Btn_9Click(sender);

VK_NUMPAD0 : Btn_0Click(sender);

106 : Btn_kopsemClick (sender); //Numpad *

107 : Btn_deosemClick (sender); //Num pad +

109 : Btn_BBelsemClick(sender); //Num pad -

111 : Btn_nanusemClick(sender); //Num pad /

27 : Btn_clearClick (sender); //esc key

8 : Btn_BspaceClick (sender); //Bspace key

13 : Btn_neonClick (sender); //Num pad enter



end;



end;





end.

0  COMMENTS