제가 방금 만든 계산기 소스입니다...
가장 기본적인 사칙연산만 할수 있는거요
델파이 공부하시는 여러분들 열심히 하세요
열심히 하시면 길이 보일꺼예요....
그담에 이 계산기 업그레이드하실려면 말씀해주세요^^
.
.
.
소스 여기에 붙입니다.
소스보시면 폼은 쉽게 제작할수 있을겁니다.^^
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.