PDA

نسخه کامل مشاهده نسخه کامل : درخواست كد ماشين حساب در دلفي



zhila
26-10-2005, 09:29
با سلام
كسي سورس ماشين حساب ويندوز كه با دلفي نوشته شده باشه داره

مهمان
27-10-2005, 22:49
قبلا راجع به این موضوع در قسمت دلفی بحث شده

به تاپیک مربوطه که در بالای قسمت برنامه نویسی هست مراجعه نمایید

Mahiar0
19-02-2006, 17:47
با سلام
كسي سورس ماشين حساب ويندوز كه با دلفي نوشته شده باشه داره
اينجا رو يه نگاهي كن
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

Mavix
21-02-2006, 19:49
با سلام

اينم يه هديه كوچولو از من به شما (سروس ماشين حساب در دلفي)

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

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: