delphi实现计算器源码-完整版

合集下载

delphi源码

delphi源码

Delphi源码1. 简介Delphi是一种面向对象的编程语言,由Borland公司于1995年推出。

它基于Object Pascal语言,并结合了图形化用户界面设计和RAD(快速应用程序开发)工具。

Delphi主要用于Windows平台上的应用程序开发,特别适用于快速构建桌面应用程序。

Delphi的源码是指Delphi程序的源代码文件。

在Delphi 中,我们可以通过源码文件来编写程序的逻辑和功能。

这些源码文件包含了程序的各个模块和单元的实现代码,以及相应的声明和定义。

2. Delphi源码文件格式Delphi源码文件通常以.pas为扩展名,表示Pascal源码文件。

每个源码文件通常对应一个单元(Unit),用于实现一个代码模块。

在Delphi中,一个工程可以由多个单元组成,这些单元可以相互引用和调用。

Delphi源码文件以UTF-8编码保存,可以使用任何文本编辑器打开和编辑。

在Delphi的集成开发环境(IDE)中,我们可以使用Delphi自带的代码编辑器来编写和编辑源码文件,它提供了丰富的代码提示和自动补全功能,以提高开发效率。

3. Delphi源码的语法Delphi的源码是基于Object Pascal语言的,具有类似于其他编程语言的基本语法。

以下是一些Delphi源码的语法特点:3.1 变量声明在Delphi中,我们可以使用var关键字来声明变量。

例如:vari: Integer;s: string;3.2 过程和函数Delphi中可以定义过程(Procedure)和函数(Function)来实现一段可复用的代码逻辑。

过程和函数可以有参数和返回值。

例如:procedure ShowMessage(message: string);beginMessageBox(0, PChar(message), '提示', MB_OK); end;function Add(x, y: Integer): Integer;beginResult := x + y;end;3.3 类和对象Delphi是一种面向对象的编程语言,支持类和对象的概念。

delphi 用TList实现的简单计算器

delphi 用TList实现的简单计算器

interfaceusesWindows, Messages, SysUtils, Variants, Classes, Dialogs, Math, Graphics, Controls, Forms, StdCtrls;typeTForm1 = class(TForm)edt1: TEdit;btn10: TButton;btn1: TButton;btn2: TButton;btn3: TButton;btn4: TButton;btn5: TButton;btn6: TButton;btn7: TButton;btn8: TButton;btn9: TButton;btnEqual: TButton;btn12: TButton;btnC: TButton;btn14: TButton;procedure FormCreate(Sender: TObject);procedure FormDestroy(Sender: TObject);procedure opInput(Sender: TObject);procedure btnEqualClick(Sender: TObject);procedure btnCClick(Sender: TObject);function isDigit(s: string): Boolean;procedure numInput(Sender: TObject);//procedure numOpInput(Sender: TObject);private{}end;{自定义的TMyList类}TMyList = class(TList)end;varForm1: TForm1;List: TMyList;tempStr: string;implementation{$R *.dfm}{创建}procedure TForm1.FormCreate(Sender: TObject);beginList := TMyList.Create;edt1.Text := '';end;{释放}procedure TForm1.FormDestroy(Sender: TObject);beginList.Free;end;{判断一个字符串是否为数字}function TForm1.isDigit(s: string): Boolean;vari: Integer;beginResult := True;for i := 1 to Length(s) dobeginif not(s[i] in ['0'..'9','.']) thenResult := False;end;end;{输入数字处理}procedure TForm1.numInput(Sender: TObject);beginif(edt1.Text = '') or (string(st^) = '+') or (string(st^) = '*') then beginedt1.Text := (Sender as TButton).Caption;endelsebeginedt1.Text := edt1.Text + (Sender as TButton).Caption;end;tempStr := edt1.Text;end;{操作符处理}procedure TForm1.opInput(Sender: TObject);beginif isDigit(tempStr) and (tempStr <> '') thenbeginnew(str);str^ := tempStr;List.Add(str);tempStr := '';end;if List.Count = 0 thenbeginShowMessage('输入无效,请先输入数字');exit;//跳出本过程endelsebeginedt1.Text := (Sender as TButton).Caption;New(str);str^ := edt1.Text;List.Add(str);edt1.Clear;end;end;{等号处理list}procedure TForm1.btnEqualClick(Sender: TObject); var//tempResult: Extended;temp: Extended;tempStr1, tempStr2: string;i: Integer;beginnew(str);str^ := tempStr;List.Add(str);edt1.Clear;tempStr := '';if List.Count = 0 thenShowMessage('empty list')elsebeginfor i := 0 to List.Count - 1 dobegintempStr1 := string(List.Items[i]^);if tempStr1 = '+' thenbegintempStr1 := string(List.Items[i - 1]^);tempStr2 := string(List.Items[i + 1]^);New(str);str^ := FloatToStr(StrToFloat(tempStr1) + StrToFloat(tempStr2));List.Delete(i + 1);List.Insert(i + 1, str);end;if tempStr1 = '*' thenbegintempStr1 := string(List.Items[i - 1]^);tempStr2 := string(List.Items[i + 1]^);New(str);temp := StrToFloat(tempStr1) * StrToFloat(tempStr2);str^ := FloatToStr(temp);List.Delete(i + 1);List.Insert(i + 1, str);end;end;edt1.Text := string(List.Items[List.Count - 1]^);List.Clear;New(str);str^ := edt1.Text;List.Add(str);//ShowMessageFmt('count=%d',[List.Count]);end;end;procedure TForm1.btnCClick(Sender: TObject);beginif List.Count = 0 thenShowMessage('list为空,不用清空');List.clear;edt1.Text := '';end;end.。

迷你计算器源码—完整版(Builder C++ 6.0)

迷你计算器源码—完整版(Builder C++ 6.0)

#include <vcl.h>#pragma hdrstop#include <math.h>#include "Unit1.h"//---------------------------------------------------------------------------#pragma package(smart_init)#pragma resource "*.dfm"TForm1 *Form1;float temp1;float temp2;int flag,i;double a[9999999];//---------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner): TForm(Owner){}//---------------------------------------------------------------------------void __fastcall TForm1::FormCreate(TObject *Sender){Form1->Edit1->Clear();//清除文本框中的内容temp1=0;temp2=0;flag=0; //变量赋初值}//---------------------------------------------------------------------------void __fastcall TForm1::Button1Click(TObject *Sender){Form1->Edit1->Text=Form1->Edit1->Text+Form1->Button1->Caption; a[i++]=FloatToStr(Form1->Button1->Caption) ;//单击1 按钮}//---------------------------------------------------------------------------void __fastcall TForm1::Button5Click(TObject *Sender){Form1->Edit1->Text=Form1->Edit1->Text+Form1->Button5->Caption; //单击2 按钮}void __fastcall TForm1::Button9Click(TObject *Sender){Form1->Edit1->Text=Form1->Edit1->Text+Form1->Button9->Caption; //单击3按钮}//---------------------------------------------------------------------------void __fastcall TForm1::Button2Click(TObject *Sender){Form1->Edit1->Text=Form1->Edit1->Text+Form1->Button2->Caption; //单击4 按钮}//---------------------------------------------------------------------------void __fastcall TForm1::Button6Click(TObject *Sender){Form1->Edit1->Text=Form1->Edit1->Text+Form1->Button6->Caption; //单击5 按钮}//---------------------------------------------------------------------------void __fastcall TForm1::Button10Click(TObject *Sender){Form1->Edit1->Text=Form1->Edit1->Text+Form1->Button10->Caption; //单击6 按钮}//---------------------------------------------------------------------------void __fastcall TForm1::Button3Click(TObject *Sender){Form1->Edit1->Text=Form1->Edit1->Text+Form1->Button3->Caption; //单击7 按钮}//---------------------------------------------------------------------------void __fastcall TForm1::Button7Click(TObject *Sender){Form1->Edit1->Text=Form1->Edit1->Text+Form1->Button7->Caption; //单击8 按钮}//---------------------------------------------------------------------------void __fastcall TForm1::Button11Click(TObject *Sender){Form1->Edit1->Text=Form1->Edit1->Text+Form1->Button11->Caption; //单击9 按钮}//---------------------------------------------------------------------------void __fastcall TForm1::Button4Click(TObject *Sender){Form1->Edit1->Text=Form1->Edit1->Text+Form1->Button4->Caption; //单击0 按钮}//---------------------------------------------------------------------------void __fastcall TForm1::Button12Click(TObject *Sender){flag=1; //设置加法标志temp1=StrToFloat(Form1->Edit1->Text); //为变量temp1 赋值Form1->Edit1->Clear(); //清空文本框}//---------------------------------------------------------------------------void __fastcall TForm1::Button13Click(TObject *Sender){flag=2; //设置减法标志temp1=StrToFloat(Form1->Edit1->Text); //为变量temp1 赋值Form1->Edit1->Clear(); //清空文本框}//---------------------------------------------------------------------------void __fastcall TForm1::Button14Click(TObject *Sender){flag=3; //设置乘法标志temp1=StrToFloat(Form1->Edit1->Text); //为变量temp1 赋值Form1->Edit1->Clear(); //清空文本框}//---------------------------------------------------------------------------void __fastcall TForm1::Button15Click(TObject *Sender){flag=4; //设置除法标志temp1=StrToFloat(Form1->Edit1->Text); //为变量temp1 赋值Form1->Edit1->Clear(); //清空文本框}//---------------------------------------------------------------------------void __fastcall TForm1::Button8Click(TObject *Sender){switch (flag){Form1->Edit1->Clear(); //清空文本框case 1: temp2=StrToFloat(Edit1->Text)+StrToFloat(temp1);//进行加法运算break;case 2: temp2=StrToFloat(temp1)-StrToFloat(Edit1->Text);//进行减法运算break;case 3: temp2=StrToFloat(Edit1->Text)*StrToFloat(temp1);//进行乘法运算break;case 4: temp2=StrToFloat(temp1)/StrToFloat(Edit1->Text);//进行除法运算}Edit1->Text=FloatToStr(temp2);//显示运算结果}//---------------------------------------------------------------------------void __fastcall TForm1::Button16Click(TObject *Sender){Form1->Edit1->Clear();//清除文本框中的内容temp1=0;temp2=0;flag=0;//变量赋初值}//---------------------------------------------------------------------------void __fastcall TForm1::Button17Click(TObject *Sender){Form1->Edit1->Text=Form1->Edit1->Text+Form1->Button17->Caption; //单击1 按钮}//---------------------------------------------------------------------------void __fastcall TForm1::Button18Click(TObject *Sender){Form1->Edit1->Text=Form1->Edit1->Text+Form1->Button18->HelpKeyword; //单击‘+’按钮}//---------------------------------------------------------------------------void __fastcall TForm1::Button19Click(TObject *Sender){Form1->Edit1->Text=Form1->Edit1->Text+Form1->Button19->HelpKeyword; //单击‘-’按钮}//---------------------------------------------------------------------------void __fastcall TForm1::Button20Click(TObject *Sender){Form1->Edit1->Text=Form1->Edit1->Text-a[i--];//单击'←'按钮}//---------------------------------------------------------------------------。

各种位运算经验(源码用delphi示例)

各种位运算经验(源码用delphi示例)

二进制中的1有奇数个还是偶数个我们可以用下面的代码来计算一个32位整数的二进制中1的个数的奇偶性,当输入数据的二进制表示里有偶数个数字1时程序输出0,有奇数个则输出1。

例如,1314520的二进制101000000111011011000中有9个1,则x=1314520时程序输出1。

vari,x,c:longint;beginreadln(x);c:=0;for i:=1 to 32 dobeginc:=c + x and 1;x:=x shr 1;end;writeln( c and 1 );end.但这样的效率并不高,位运算的神奇之处还没有体现出来。

同样是判断二进制中1的个数的奇偶性,下面这段代码就强了。

你能看出这个代码的原理吗?varx:longint;beginreadln(x);x:=x xor (x shr 1);x:=x xor (x shr 2);x:=x xor (x shr 4);x:=x xor (x shr 8);x:=x xor (x shr 16);writeln(x and 1);end.为了说明上面这段代码的原理,我们还是拿1314520出来说事。

1314520的二进制为101000000111011011000,第一次异或操作的结果如下:00000000000101000000111011011000XOR 0000000000010100000011101101100---------------------------------------00000000000111100000100110110100得到的结果是一个新的二进制数,其中右起第i位上的数表示原数中第i和i+1位上有奇数个1还是偶数个1。

比如,最右边那个0表示原数末两位有偶数个1,右起第3位上的1就表示原数的这个位置和前一个位置中有奇数个1。

对这个数进行第二次异或的结果如下:00000000000111100000100110110100XOR 000000000001111000001001101101---------------------------------------00000000000110011000101111011001结果里的每个1表示原数的该位置及其前面三个位置中共有奇数个1,每个0就表示原数对应的四个位置上共偶数个1。

delphi编写简单的计算器[参考]

delphi编写简单的计算器[参考]

delphi编写简单的计算器简单的计算器代码unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Edit1: TEdit;Label1: TLabel;Button1: TButton;Button2: TButton;Button3: TButton;Button4: TButton;Button5: TButton;Button6: TButton;Button7: TButton;Button8: TButton;Button9: TButton;Button10: TButton;Button11: TButton;Button12: TButton;Button13: TButton;Button14: TButton;Button15: TButton;Button16: TButton;procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button7Click(Sender: TObject); procedure Button8Click(Sender: TObject); procedure Button9Click(Sender: TObject); procedure Button10Click(Sender: TObject); procedure Button12Click(Sender: TObject); procedure Button13Click(Sender: TObject); procedure Button14Click(Sender: TObject); procedure Button15Click(Sender: TObject); procedure Button16Click(Sender: TObject); procedure Button11Click(Sender: TObject); procedure FormCreate(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;n:integer;temp1:extended;key:boolean;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject); beginif key=truethenedit1.Text:=edit1.Text+'1'elsebeginedit1.Clear;key:=true;edit1.Text:='1';end;end;procedure TForm1.Button2Click(Sender: TObject); beginif key=truethenedit1.Text:=edit1.Text+'2'elsebeginedit1.Clear;key:=true;edit1.Text:='2';end;end;procedure TForm1.Button3Click(Sender: TObject);beginif key=truethenedit1.Text:=edit1.Text+'3'else beginedit1.Clear;key:=true;edit1.Text:='3';end; end;procedure TForm1.Button4Click(Sender: TObject); beginif key=truethenedit1.Text:=edit1.Text+'4'else beginedit1.Clear;key:=true;edit1.Text:='4';end; end;procedure TForm1.Button5Click(Sender: TObject); beginif key=truethenedit1.Text:=edit1.Text+'5'else beginedit1.Clear;key:=true;edit1.Text:='5';end; end;procedure TForm1.Button6Click(Sender: TObject); beginif key=truethenedit1.Text:=edit1.Text+'6'else beginedit1.Clear;key:=true;edit1.Text:='6';end; end;procedure TForm1.Button7Click(Sender: TObject); beginif key=truethenedit1.Text:=edit1.Text+'7'else beginedit1.Clear;key:=true;edit1.Text:='7';end; end;procedure TForm1.Button8Click(Sender: TObject); beginif key=truethenedit1.Text:=edit1.Text+'8'else beginedit1.Clear;key:=true;edit1.Text:='8';end; end;procedure TForm1.Button9Click(Sender: TObject); beginif key=truethenedit1.Text:=edit1.Text+'9'else beginedit1.Clear;key:=true;edit1.Text:='9';end; end;procedure TForm1.Button10Click(Sender: TObject);beginif key=truethenedit1.Text:=edit1.Text+'0'else beginedit1.Clear;key:=true;edit1.Text:='0';end; end;procedure TForm1.Button12Click(Sender: TObject);beginedit1.clear;end;procedure TForm1.Button13Click(Sender: TObject);//var n:integer;// temp1:string;beginn:=1;temp1:=strtofloat(edit1.text);edit1.Clear ;end;procedure TForm1.Button14Click(Sender: TObject);//var n:integer;// temp1:string;beginn:=2;temp1:=strtofloat(edit1.text);edit1.Clear ;end;procedure TForm1.Button15Click(Sender: TObject);//var n:integer;// temp1:string;beginn:=3;temp1:=strtofloat(edit1.text);edit1.Clear ;end;procedure TForm1.Button16Click(Sender: TObject);//var n:integer;// temp1:string;beginn:=4;temp1:=strtofloat(edit1.text);edit1.Clear;end;procedure TForm1.Button11Click(Sender: TObject);var //n:integer;// temp1:string;temp2,temp3:extended;begintemp3:=strtofloat(edit1.Text);begincase n of1:temp2:=temp1+temp3;2:temp2:=temp1-temp3;3:temp2:=temp1*temp3;4:if temp3=0thenbeginshowmessage('除数不能为0!');exit;endelse begintemp2:=temp1/temp3;end;end;edit1.text:=floattostr(temp2);key:=false;end;end;procedure TForm1.FormCreate(Sender: TObject); beginkey:=true;end;end.。

delphi DLL注入完整源码

delphi DLL注入完整源码

DLL注入完整源码1.interface2.es4.Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,Dialogs,5.StdCtrls, tlhelp32;6.{type7.TProcessEntry32 = record8.dwSize: DWORD; //大小tUsage: DWORD;10.th32ProcessID: DWORD; //线程的pid11.th32DefaultHeapID: DWORD;12.th32ModuleID: DWORD;tThreads: DWORD; //线程数14.th32ParentProcessID: DWORD; //父线程15.pcPriClassBase: integer;16.dwFlags: DWORD;17.szExeFile: array[0..MAX_PATH - 1] of char; //进程名称18.end; } ///说明某个进程TProcessEntry32 结构19.type20.TtoDllFrm = class(TForm)21.Button1: TButton;22.procedure Button1Click(Sender: TObject);23.private24.{ Private declarations }25.public26.{ Public declarations }27.end;28.29.var30.toDllFrm: TtoDllFrm;31.32.implementation33.34.{$R *.DFM}35.36.procedure FindAProcess (const AFilename: string; const PathMatch: Boolean; varProcessID: DWORD); //自定义一个查找a进程的过程,获得pid37.var38.lppe: TProcessEntry32; // 该进程的结构39.SsHandle: Thandle; // 该进程的句柄40.FoundAProc, FoundOK: boolean; //是否找到41.begin42.ProcessID :=0; //初始pid数值43.SsHandle := CreateToolHelp32SnapShot(TH32CS_SnapProcess, 0);44.//创建进程快照即进程的瞬时列表表单TH32CS_SnapProcess,0 表示进程列表45.//返回进程列表的句柄46.lppe.dwSize := SizeOf(TProcessEntry32);47.//在调用Process32First API之前,需要初始化lppe记录的大小,48.郁闷测试几个小时,没有初始白忙活近一天,始终找不到错误49.FoundAProc := Process32First(Sshandle, lppe);50.//将进程列表的第一个进程信息读入ppe记录中,并判断是否读入成功.51.52.while FoundAProc do //读入成功,进行下面处理53.begin54.if PathMatch then55.FoundOK := AnsiStricomp(lppe.szExefile, PChar(AFilename)) = 056.// AnsiStricomp 返回2字符串类型的比较结果相同时返回057.else58.FoundOK := AnsiStricomp(PChar(ExtractFilename(lppe.szExefile)),PChar(ExtractFilename(AFilename))) = 0;59.//比较获得的参数和返回的ExtractFilename(lppe.szExefile) 值看是否为0.60.if FoundOK then61.begin62.ProcessID := lppe.th32ProcessID;63.break; //找到后,退出循环64.end;65.FoundAProc := Process32Next(SsHandle, lppe);66.///否则继续找直到找到67.end;68.CloseHandle(SsHandle); // 释放句柄69.end;70./71.function EnabledDebugPrivilege(const bEnabled: Boolean): Boolean;72.//关于提高线程访问权限的提权并不是什么进程都可以访问73.//访问不了那是权限不够就提权吧74.//这一部分我也没有弄懂,注释以后在++75.var76.hToken: THandle;77.tp: TOKEN_PRIVILEGES;78.a: DWORD;79.const80.SE_DEBUG_NAME = 'SeDebugPrivilege'; //最高权限81.begin82.Result := False;83.if (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES,hToken))84.//第一参数是要修改访问权限的进程句柄85.//第二个参数指定你要进行的操作类型,要修改令牌我们要指定第二个参数为TOKEN_ADJUST_PRIVILEGES86.//第三个参数就是返回的访问令牌指针87.88.89.then90.begin91.tp.PrivilegeCount := 1;92.LookupPrivilegeValue(nil, SE_DEBUG_NAME, tp.Privileges[0].Luid);93.//返回特权名LUID//修改进程的权限,在此处为修改本进程成为具有退出系统的权限94.//第一个参数是系统的名称,如果是本地系统只要指明为NULL就可以了,95.//第三个参数就是返回LUID的指针,第二个参数就是指明了权限的名称,96.if bEnabled then97.tp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED98.else99.tp.Privileges[0].Attributes := 0;100. a := 0;101.AdjustTokenPrivileges(hToken, False, tp, SizeOf(tp), nil, a);102.//第一个参数是访问令牌的句柄;103.//第二个参数决定是进行权限修改还是除能(Disable)所有权限104.//第三个参数指明要修改的权限105.//第四个参数是结构PreviousState的长度,如果PreviousState为空,该参数应为NULL106.//第五参数也是一个指向TOKEN_PRIVILEGES结构的指针,存放修改前的访问权限的信息,可空107.108.Result := GetLastError = ERROR_SUCCESS;109.CloseHandle(hToken);110.end;111.end;112.113.114.function AttachToProcess(const HostFile, GuestFile: string; const PID: DWORD =0): DWORD; //自定义注入函数115.var116.hRemoteProcess: THandle; //远程线程句秉117.dwRemoteProcessId: DWORD; //远程线程pid118.cb: DWORD;119.pszLibFileRemote: Pointer; //一个指针指向远程dll的地址120.iReturnCode: Boolean; //返回值作判断用121.TempVar: DWORD;122.pfnStartAddr: TFNThreadStartRoutine; //lib函数地址123.pszLibAFilename: PwideChar; //一个指向文件名124.begin125.Result := 0;126.EnabledDebugPrivilege(True); //提权127.Getmem(pszLibAFilename, Length(GuestFile) * 2 + 1);128.//申请内存内存的大小由Length(GuestFile) * 2 + 1 决定129.StringToWideChar(GuestFile, pszLibAFilename, Length(GuestFile) * 2 +1);130.if PID > 0 then131.dwRemoteProcessID := PID132.else133.FindAProcess(HostFile, False, dwRemoteProcessID);134.hRemoteProcess := OpenProcess(PROCESS_CREATE_THREAD + {允许远程创建线程}135.PROCESS_VM_OPERATION + {允许远程VM操作}136.PROCESS_VM_WRITE, {允许远程VM写}137.FALSE, dwRemoteProcessId);138.cb := (1 + lstrlenW(pszLibAFilename)) * sizeof(WCHAR);139.pszLibFileRemote := PWIDESTRING(VirtualAllocEx(hRemoteProcess, nil, cb, MEM_COMMIT, PAGE_READWRITE));140.//申请内存,并指向内寸地址并付值141.TempVar := 0;142.iReturnCode := WriteProcessMemory(hRemoteProcess, pszLibFileRemote, pszLibAFilename, cb, TempVar);143.//写入成功,将返回一个不为0-de 值144.if iReturnCode then145.begin146.pfnStartAddr := GetProcAddress(GetModuleHandle('Kernel32'), 'LoadLibraryW');147.//GetProcAddress函数检索指定的动态链接库(DLL)中的输出库函数地址148.//GetModuleHandle函数可以返回此句柄149.TempVar := 0;150.Result := CreateRemoteThread(hRemoteProcess, nil, 0, pfnStartAddr, pszLibFileRemote, 0, TempVar);151.//新生成的线程分配的线程Id 即TempVar152.end;153.Freemem(pszLibAFilename);154.end;155.156.procedure TtoDllFrm.Button1Click(Sender: TObject);157.begin158.AttachToProcess('Explorer.exe',extractfilepath(paramstr(0))+'Project2.dll');159.//其中Project2.dll是想要注入到Explorer.EXE的进程,Explorer.exe也可以是别的进程.160.end;161.end.。

delphi编写简单的计算器

delphi编写简单的计算器
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure TForm1.Button11Click(Sender: TObject);
var //n:integer;
// temp1:string;
temp2,temp3:extended;
begin
temp3:=strtofloat(edit1.Text);
begin
procedure TForm1.Button8Click(Sender: TObject);
begin
if key=true
then
edit1.Text:=edit1.Text+&#39;8&#39;
else beg
in
var
Form1: TForm1;
n:integer;
temp1:extended;
key:boolean;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
if key=true
begin
if key=true
then
edit1.Text:=edit1.Text+&#39;3&#39;

delphi的一些程序代码

delphi的一些程序代码

1. 程序实现求最大公约数。

procedure TForm1.Button1Click(Sender: TObject);varm,n,t,r:longword;beginm:=strtoint(edit1.Text);n:=strtoint(edit2.Text);if m<=n then begint:=m;m:=n;n:=t;end;repeatr:=m mod n;m:=n;n:=r;until r=0;Label3.Caption:=inttostr(m);end;2. 程序实现求最小公倍数。

procedure TForm1.Button1Click(Sender: TObject);var m,n,i,j:integer;beginm:=strtoint(edit1.Text);n:=strtoint(edit2.Text);j:=compare(m,n);if m=j then m:=n;for i:=1 to j do beginif (i*m) mod j=0 then break;end;edit3.Text:=inttostr(i*m);end;function pare(a:integer;b:integer):integer; beginif a<=b then compare:=aelse compare:=b;end;procedure TForm1.Button2Click(Sender: TObject);beginedit1.text:='';edit2.text:='';edit3.text:='';end;3 程序计算Sin(X)函数的值(不用delphi object pascal 内部函数) procedure TForm1.Button1Click(Sender: TObject);var done,n,negative:integer;x,sinx,pow,x1,factor:real;beginx:=strtofloat(edit1.Text );done:=1;n:=1;factor:=1;negative:=1;pow:=x;sinx:=pow/(factor*negative);while done=1 do beginn:=n+2;pow:=pow*x*x;negative:=negative*(-1);factor:=factor*n*(n-1);x1:=pow/(factor*negative);if (abs(x1)<1e-3) then done:=0else sinx:=sinx+x1;end;edit2.Text :=floattostr(sinx);end;4. 程序实现打印九九乘法表。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

private{ Private declarations }protected// procedure CreateParams(var Params: TCreateParams);override; public{ Public declarations }end;TRightEdit = class(TEdit)protectedprocedure CreateParams(var Params : TCreateParams);override; end;typeoperator = (Emp,add,sub,mul,divid); //空、加、减、乘、除varFrmCounter: TFrmCounter;MyRightEdit: TRightEdit;operate: Operator = emp;operate1: Operator = emp; //记录上一次用户按下的运算符Pointed: Boolean = False; //是否输入小数点temp: string = '';tempnum: Real = 0.0;implementation{$R *.dfm}//重载TRightEdit的CreateParams自定义编辑框的一些样式procedure TRightEdit.CreateParams(var Params : TCreateParams); begininherited;Params.Style := params.Style + ES_Right;end;//创建窗体时初始化一些参数procedure TFrmCounter.FormCreate(Sender: TObject);beginMyRightEdit := TrightEdit.Create(nil);with MyRightEdit dobeginparent := panel1;text := '0.';MyRightEdit.Height := 100;Align := alTop;Enabled := False;ReadOnly := True;show;end;end;//清零的响应函数procedure TFrmCounter.SBClearClick(Sender: TObject);beginPointed := False;MyRightEdit.Text := '0.';TempNum := 0.0;Operate := emp;temp := '';end;//数字键输入响应函数procedure TFrmCounter.SpeedButton1Click(Sender: TObject);varStrWidth: Integer;beginif (temp = '')or(Operate <> emp) thenTempNum := StrToFloat(MyRightEdit.Text);if Operate <> emp thenMyRightEdit.Text := '0.';Temp := Trim(MyRightEdit.Text);StrWidth := Length(temp);if Sender is TSpeedButton thenbeginif Operate <> emp thenbeginMyRightEdit.Text := '0.';Operate := emp;end;if Pointed = False thenbeginif StrToFloat(MyRightEdit.Text) = 0 thenMyRightEdit.Text := FloatToStr(StrToFloat(MyRightEdit.Text)+StrToInt(TSpeedButton(Sender).Caption))+'.'else beginInsert(Trim(TspeedButton(Sender).Caption),temp,StrWidth);MyRightEdit.Text := temp;end;endelse beginInsert(Trim(TSpeedButton(Sender).Caption),temp,StrWidth+1);MyRightEdit.Text := temp;end;end;end;//正负符号响应函数procedure TFrmCounter.SpeedButton13Click(Sender: TObject);beginif Operate <> emp thenbeginTempNum := StrToFloat(MyRightEdit.Text);MyRightEdit.Text := '0.';Operate := emp;end;if StrToFloat(MyRightEdit.Text) > 0 thenbeginMyRightEdit.Text := FloatToStr(-StrToFloat(MyRightEdit.Text));if Pos('.',Trim(MyRightEdit.Text))=0 thenMyRightEdit.Text := FloatToStr(StrToFloat(MyRightEdit.Text))+'.'; endelse if StrToFloat(MyRightEdit.Text)<0 thenbeginMyRightEdit.Text := FloatToStr(abs(StrToFloat(MyRightEdit.Text)));if Pos('.',Trim(MyRightEdit.Text))=0 thenMyRightEdit.Text := FloatToStr(StrToFloat(MyRightEdit.Text))+'.'; end;end;//小数点的输入procedure TFrmCounter.SpeedButton14Click(Sender: TObject);beginif Operate <> emp thenbeginOperate := emp;MyRightEdit.Text := '0';end;if Pointed = True thenBeepelsePointed := True;end;//显示运算结果procedure TFrmCounter.SpeedButton19Click(Sender: TObject);beginif (Operate = emp)and(Trim(temp)<>'') thenbegincase Operate1 ofadd: beginMyRightEdit.Text := FloatToStr(StrToFloat(MyRightEdit.Text)+TempNum);end;sub: beginMyRightEdit.Text := FloatToStr(TempNum-StrToFloat(MyRightEdit.Text));end;mul: beginMyRightEdit.Text := FloatToStr(TempNum*StrToFloat(MyRightEdit.Text));end;divid: beginif StrToFloat(MyRightEdit.Text)<>0 thenMyRightEdit.Text := FloatToStr(TempNum/StrToFloat(MyRightEdit.Text))elseApplication.MessageBox('除数不能为零。

','提示',64);end;end;end;Operate1 := emp;Pointed := False;if Pos('.',Trim(MyRightEdit.Text))=0 thenMyRightEdit.Text := Trim(MyRightEdit.Text)+'.';end;procedure TFrmCounter.SpeedButton12Click(Sender: TObject);beginSpeedButton19.OnClick(Sender);Operate := add;Operate1 := add;end;procedure TFrmCounter.SpeedButton17Click(Sender: TObject);beginSpeedButton19.OnClick(Sender);Operate := sub;Operate1 := sub;end;procedure TFrmCounter.SpeedButton6Click(Sender: TObject); beginSpeedButton19.OnClick(Sender);Operate := mul;Operate1 := mul;end;procedure TFrmCounter.SpeedButton10Click(Sender: TObject); beginSpeedButton19.OnClick(Sender);Operate := divid;Operate1 := divid;end;procedure TFrmCounter.SBBackspaceClick(Sender: TObject);varStrWidth: Integer;temp: string;beginif Operate = emp thenbeginif Trim(MyRightEdit.Text)<>'0.' thenbeginif Length(Trim(MyRightEdit.Text))>2 thenbeginTemp := Trim(MyRightEdit.Text);StrWidth := Length(Trim(MyRightEdit.Text));if (StrToFloat(MyRightEdit.Text)<9)and(StrWidth = 3) thenbeginMyRightEdit.Text := '0.';Pointed := False;endelse beginif Pointed = False thenDelete(Temp,StrWidth-1,1)else beginif Copy(temp,StrWidth,1)='.' thenPointed := FalseelseDelete(Temp,StrWidth,1);end;if Trim(temp) = '.' thenPointed := False;MyRightEdit.Text := temp;end;endelse beginPointed := False;MyRightEdit.Text := '0.';end;end;endelseBeep;end;end.。

相关文档
最新文档