با سلام
كسي سورس ماشين حساب ويندوز كه با دلفي نوشته شده باشه داره
قبلا راجع به این موضوع در قسمت دلفی بحث شده
به تاپیک مربوطه که در بالای قسمت برنامه نویسی هست مراجعه نمایید
با سلام
كسي سورس ماشين حساب ويندوز كه با دلفي نوشته شده باشه داره
اينجا رو يه نگاهي كن
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
با سلام
اينم يه هديه كوچولو از من به شما (سروس ماشين حساب در دلفي)
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
mojtaba802
20-03-2006, 07:53
کد ماشین حساب به شرح زیر است:
unit MachinHsab;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, XPMan, ComCtrls, ToolWin, Buttons;
type
TForm1 = class(TForm)
Edit1: TEdit;
B1: TBitBtn;
B2: TBitBtn;
B3: TBitBtn;
B4: TBitBtn;
B5: TBitBtn;
B6: TBitBtn;
B7: TBitBtn;
B8: TBitBtn;
B9: TBitBtn;
B0: TBitBtn;
Sub: TBitBtn;
BitBtn2: TBitBtn;
Mul: TBitBtn;
Div1: TBitBtn;
JZR: TBitBtn;
NotNum: TBitBtn;
Power: TBitBtn;
Mos: TBitBtn;
RM: TBitBtn;
WM: TBitBtn;
CM: TBitBtn;
C: TBitBtn;
Button1: TBitBtn;
Button2: TBitBtn;
BackSpace: TBitBtn;
Dot: TBitBtn;
procedure B1Click(Sender: TObject);
procedure B2Click(Sender: TObject);
procedure B0Click(Sender: TObject);
procedure B3Click(Sender: TObject);
procedure B4Click(Sender: TObject);
procedure B5Click(Sender: TObject);
procedure B6Click(Sender: TObject);
procedure B7Click(Sender: TObject);
procedure B8Click(Sender: TObject);
procedure B9Click(Sender: TObject);
procedure DotClick(Sender: TObject);
procedure AddClick(Sender: TObject);
procedure MulClick(Sender: TObject);
procedure Div1Click(Sender: TObject);
procedure CClick(Sender: TObject);
procedure Sub1Click(Sender: TObject);
procedure JZRClick(Sender: TObject);
procedure NotNumClick(Sender: TObject);
procedure PowerClick(Sender: TObject);
procedure MosClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure RMClick(Sender: TObject);
procedure WMClick(Sender: TObject);
procedure CMClick(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure B3MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure SubClick(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure B5MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure BackSpaceClick(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Op,CC,KK:Char;
Num,MR,R:Real;
implementation
uses StrUtils;
{$R *.dfm}
Procedure Calc;
begin
Num:=StrToFloat(form1.Edit1.Text);
Case Op of
'+':begin
R:=R+Num;
form1.Edit1.Text:=FloatToStr(R);
Op:='+';
end;
'-':begin
if KK='0' then begin R:=StrToFloat(form1.edit1.text); KK:='1'; CC:='1'; Op:='-'; exit; end;
R:=R-Num;
form1.Edit1.Text:=FloatToStr(R);
Op:='-';
end;
'*':begin
if KK='0' then begin R:=StrToFloat(form1.edit1.text); KK:='1'; CC:='1'; Op:='*'; exit; end;
R:=R*Num;
form1.Edit1.Text:=FloatToStr(R);
Op:='*';
end;
'/':begin
if KK='0' then begin R:=StrToFloat(form1.edit1.text); KK:='1'; CC:='1'; Op:='/'; exit; end;
if Num=0 then
ShowMessage('ÚÏÏ ÕÝÑ ÈÑÇÈÑ ÈÇ ãÎÑÌ ÔÏå æ ÊÞÓíã Çã˜Çä ÐíÑ äíÓÊ')
else
begin
R:=R/Num;
form1.Edit1.Text:=FloatToStr(R);
Op:='/';
end;
end;
'S':begin
R:=Sqrt(Num);
form1.Edit1.Text:=FloatToStr(R);
Op:='S';
end;
'@':Begin
R:=1/Num;
Form1.Edit1.Text:=FloatToStr(R);
Op:='@';
end;
'N':begin
R:=Num*(-1);
form1.Edit1.Text:=FloatToStr(R);
Op:='N';
end;
'X':begin
if KK='0' then begin R:=StrToFloat(form1.edit1.text); KK:='1'; CC:='1'; Op:='X'; exit; end;
R:=R*R;
form1.Edit1.Text:=FloatToStr(R);
Op:='X';
end;
end;
CC:='1'; KK:='1';
end;
procedure TForm1.B1Click(Sender: TObject);
begin
if CC='0' then
Edit1.Text:=Edit1.Text+'1'
else
begin
Edit1.Clear;
Edit1.Text:=Edit1.Text+'1'
end;
CC:='0';
end;
procedure TForm1.B2Click(Sender: TObject);
begin
if CC='0' then
Edit1.Text:=Edit1.Text+'2'
else
begin
Edit1.Clear;
Edit1.Text:=Edit1.Text+'2'
end;
CC:='0';
end;
procedure TForm1.B0Click(Sender: TObject);
begin
if CC='0' then
Edit1.Text:=Edit1.Text+'0'
else
begin
Edit1.Clear;
Edit1.Text:=Edit1.Text+'0'
end;
CC:='0';
end;
procedure TForm1.B3Click(Sender: TObject);
begin
if CC='0' then
Edit1.Text:=Edit1.Text+'3'
else
begin
Edit1.Clear;
Edit1.Text:=Edit1.Text+'3'
end;
CC:='0';
end;
procedure TForm1.B4Click(Sender: TObject);
begin
if CC='0' then
Edit1.Text:=Edit1.Text+'4'
else
begin
Edit1.Clear;
Edit1.Text:=Edit1.Text+'4'
end;
CC:='0';
end;
procedure TForm1.B5Click(Sender: TObject);
begin
if CC='0' then
Edit1.Text:=Edit1.Text+'5'
else
begin
Edit1.Clear;
Edit1.Text:=Edit1.Text+'5'
end;
CC:='0';
end;
procedure TForm1.B6Click(Sender: TObject);
begin
if CC='0' then
Edit1.Text:=Edit1.Text+'6'
else
begin
Edit1.Clear;
Edit1.Text:=Edit1.Text+'6'
end;
CC:='0';
end;
procedure TForm1.B7Click(Sender: TObject);
begin
if CC='0' then
Edit1.Text:=Edit1.Text+'7'
else
begin
Edit1.Clear;
Edit1.Text:=Edit1.Text+'7'
end;
CC:='0';
end;
procedure TForm1.B8Click(Sender: TObject);
begin
if CC='0' then
Edit1.Text:=Edit1.Text+'8'
else
begin
Edit1.Clear;
Edit1.Text:=Edit1.Text+'8'
end;
CC:='0';
end;
procedure TForm1.B9Click(Sender: TObject);
begin
if CC='0' then
Edit1.Text:=Edit1.Text+'9'
else
begin
Edit1.Clear;
Edit1.Text:=Edit1.Text+'9'
end;
CC:='0';
end;
procedure TForm1.DotClick(Sender: TObject);
begin
if CC='0' then
Edit1.Text:=Edit1.Text+'.'
else
begin
Edit1.Clear;
Edit1.Text:=Edit1.Text+'.'
end;
CC:='0';
end;
procedure TForm1.AddClick(Sender: TObject);
begin
if Op=' ' then Op:='+';
Op:=Op;
Calc;
Op:='+';
end;
procedure TForm1.MulClick(Sender: TObject);
begin
if Op=' ' then Op:='*';
Op:=Op;
Calc;
Op:='*';
end;
procedure TForm1.Div1Click(Sender: TObject);
begin
if Op=' ' then Op:='/';
Op:=Op;
Calc;
Op:='/';
end;
procedure TForm1.CClick(Sender: TObject);
begin
Op:=' ';
Edit1.Clear;
Num:=0;
R:=0;
Edit1.Text:='0.0';
CC:='1'; KK:='0';
end;
procedure TForm1.Sub1Click(Sender: TObject);
begin
if Op=' ' then Op:='#';
Op:=Op;
Calc;
Op:='#';
end;
procedure TForm1.JZRClick(Sender: TObject);
begin
if Op=' ' then Op:='S';
Op:=Op;
Calc;
Op:='S';
Calc;
end;
procedure TForm1.NotNumClick(Sender: TObject);
begin
if Op=' ' then Op:='N';
Op:=Op;
Calc;
Op:='N';
Calc;
end;
procedure TForm1.PowerClick(Sender: TObject);
begin
if Op=' ' then Op:='X';
Op:=Op;
Calc;
R:=StrToFloat(Edit1.Text);
Op:='X';
Calc;
end;
procedure TForm1.MosClick(Sender: TObject);
begin
Calc;
Op:='?';
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Op:=' ';
Num:=0; R:=0; KK:='0';
end;
procedure TForm1.RMClick(Sender: TObject);
begin
if Op=' ' then Op:='R';
Op:=Op;
Calc;
Edit1.Text:=FloatToStr(MR);
end;
procedure TForm1.WMClick(Sender: TObject);
begin
if Op=' ' then Op:='W';
Op:=Op;
Calc;
MR:=StrToFloat(Edit1.Text);
end;
procedure TForm1.CMClick(Sender: TObject);
begin
if Op=' ' then Op:='#';
Op:=Op;
Calc;
MR:=0;
end;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
label L;
begin
Case Key Of
8:BackSpaceClick(Self);
96:B0Click(Self);
97:B1Click(Self);
98:B2Click(Self);
99:B3Click(Self);
100:B4Click(Self);
101:B5Click(Self);
102:B6Click(Self);
103:B7Click(Self);
104:B8Click(Self);
105:B9Click(Self);
13:begin Calc; Op:='?'; end;
107:AddClick(Self);
109:SubClick(Self);
106:MulClick(Self);
110:begin if Pos('.',Edit1.Text)<>0 then exit; DotClick(Self); end;
111:Div1Click(Self);
end;
end;
procedure TForm1.B3MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Edit1.SetFocus;
end;
procedure TForm1.SubClick(Sender: TObject);
begin
if Op=' ' then Op:='-';
Op:=Op;
Calc;
Op:='-';
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
if Op=' ' then Op:='+';
Op:=Op;
Calc;
Op:='+';
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if Op<>' ' then Op:='@';
Op:=Op;
Calc;
Op:='@';
Calc;
end;
procedure TForm1.B5MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Edit1.SetFocus;
end;
procedure TForm1.BackSpaceClick(Sender: TObject);
begin
if Edit1.Text='' then Edit1.Text:='0.0';
if StrToFloat(Edit1.Text)=0 then Exit;
Edit1.Text:=LeftBStr(edit1.Text,length(edit1.Text)-1);
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if Pos('.',Edit1.Text)<>0 then exit;
if CC='0' then
Edit1.Text:=Edit1.Text+'.'
else
begin
Edit1.Clear;
Edit1.Text:=Edit1.Text+'.'
end;
CC:='0';
end;
end.
خداحافظ :biggrin:
vBulletin , Copyright ©2000-2024, Jelsoft Enterprises Ltd.