DELPHI计算器设计代码
Delphi代码标准文档
Delphi代码标准文档2004年5月目录1 前言 (3)2 源程序书写规范 (3)2.1通用源代码格式规则 (3)2.2 Object Pascal语句格式语句书写规范与用法 (4)3 命名规范 (9)3.1 过程(Procedure)与函数(Function) (9)3.2 常量(Constants)和变量(Variable) (10)3.3 类型(Type) (10)3.3.1 一般类型 (10)3.3.2 构造类型 (11)3.3.3 类类型(Class) (11)3.3.4 元件类型 (13)3.3.5 窗体与对话框类型 (15)3.3.6 数据模块类型 (17)3.4 文件 (18)3.4.1 项目文件 (18)3.4.2 窗体文件 (18)3.4.3 数据模块文件 (18)3.4.4 远程数据模块文件 (19)3.4.5 单元文件 (19)3.5 内置汇编 (21)4 源程序文档注释规范 (21)4.1. 注释文档的一般规范 (21)4.2 单元文件注释文档格式 (23)4.3 函数(属性)的注释文档格式 (25)5 delphi代码自动格式化工具 (27)6 代码标准文档更新 (27)1 前言本文档主要是为Delphi开发人员提供一个源代码书写标准,以及程序和文件的命名标准,使他们在编程时有一致格式可遵循。
这样,每个编程人员编写的代码能够被其他人理解。
2 源程序书写规范2.1通用源代码格式规则1). 缩进缩进就是每级间有两个空格。
不要在源代码中放置制表符。
这是因为,制表符的宽度随着不同的设置和代码管理实用程序(打印、文档及版本控制等)而不同。
通过使用Tools|Environment 菜单,在Environment Options 对话框的General页上,不要选中Use Tab Character 和Optional Fill 复选框,这样,制表符就不会被保存。
2). 边距边距设置为80个字符。
delphi计算器设计代码
varForm1: TForm1;Temp1 : string; //存放数值一和结果Clkd : boolean = false; //等号是否被按下过,默认为为按下过ClkJ : boolean = false; //数字键是否被按下过,默认为未按下过Temp2 : string; //存放数值二n : Integer;implementation{$R *.dfm}procedure TForm1.Button13Click(Sender: TObject);beginif Clkd = true thenbeginEdit1.Text := ''; //如果等号按下过,清空Edit1的内容Clkd := false; //还原等号状态值if Edit1.Text = '' thenEdit1.Text := '0' //如果Edit1内容为空,显示0elseEdit1.Text := Edit1.Text + '0'; //否则在Edit1内容的后一位显示0 endelseif ClkJ =true then //如果等号没有按下过,数字键按下过Edit1.Text := Edit1.Text + '0' //则在Edit1内容的后一位显示0elseEdit1.Text := '0'; //否则Edit1显示0ClkJ := true;Temp2 := Edit1.Text;end;procedure TForm1.Button9Click(Sender: TObject);beginif Clkd = true thenbeginEdit1.Text := ''; //如果等号按下过,清空Edit1的内容Clkd := false; //还原等号状态值if Edit1.Text = '' then //如果Edit1内容为空,显示1Edit1.Text := '1'elseEdit1.Text := Edit1.Text + '1'; //否则在Edit1内容的后一位显示1 endelseif ClkJ =true then //如果等号没有按下过,数字键按下过Edit1.Text := Edit1.Text + '1'elseEdit1.Text := '1';ClkJ := true;Temp2 := Edit1.Text;end;procedure TForm1.Button10Click(Sender: TObject);beginif Clkd = true thenbeginEdit1.Text := '';Clkd := false;if Edit1.Text = '' thenEdit1.Text := '2'elseEdit1.Text := Edit1.Text + '2';endelseif ClkJ =true thenEdit1.Text := Edit1.Text + '2'elseEdit1.Text := '2';ClkJ := true;Temp2 := Edit1.Text;end;procedure TForm1.Button11Click(Sender: TObject);beginif Clkd = true thenbeginEdit1.Text := '';Clkd := false;if Edit1.Text = '' thenEdit1.Text := '3'elseEdit1.Text := Edit1.Text + '3';endelseif ClkJ =true thenEdit1.Text := Edit1.Text + '3'elseEdit1.Text := '3';ClkJ := true;Temp2 := Edit1.Text;end;procedure TForm1.Button5Click(Sender: TObject); beginif Clkd = true thenbeginEdit1.Text := '';Clkd := false;if Edit1.Text = '' thenEdit1.Text := '4'elseEdit1.Text := Edit1.Text + '4';endelseif ClkJ =true thenEdit1.Text := Edit1.Text + '4'elseEdit1.Text := '4';ClkJ := true;Temp2 := Edit1.Text;end;procedure TForm1.Button6Click(Sender: TObject); beginif Clkd = true thenbeginEdit1.Text := '';Clkd := false;if Edit1.Text = '' thenEdit1.Text := '5'elseEdit1.Text := Edit1.Text + '5';endelseif ClkJ =true thenEdit1.Text := Edit1.Text + '5'elseEdit1.Text := '5';ClkJ := true;Temp2 := Edit1.Text;end;procedure TForm1.Button7Click(Sender: TObject); beginif Clkd = true thenbeginEdit1.Text := '';Clkd := false;if Edit1.Text = '' thenEdit1.Text := '6'elseEdit1.Text := Edit1.Text + '6';endelseif ClkJ =true thenEdit1.Text := Edit1.Text + '6'elseEdit1.Text := '6';ClkJ := true;Temp2 := Edit1.Text;end;procedure TForm1.Button1Click(Sender: TObject); beginif Clkd = true thenbeginEdit1.Text := '';Clkd := false;if Edit1.Text = '' thenEdit1.Text := '7'elseEdit1.Text := Edit1.Text + '7';endelseif ClkJ =true thenEdit1.Text := Edit1.Text + '7'elseEdit1.Text := '7';ClkJ := true;Temp2 := Edit1.Text;end;procedure TForm1.Button2Click(Sender: TObject); beginif Clkd = true thenbeginEdit1.Text := '';Clkd := false;if Edit1.Text = '' thenEdit1.Text := '8'elseEdit1.Text := Edit1.Text + '8';endelseif ClkJ =true thenEdit1.Text := Edit1.Text + '8'elseEdit1.Text := '8';ClkJ := true;Temp2 := Edit1.Text;end;procedure TForm1.Button3Click(Sender: TObject); beginif Clkd = true thenbeginEdit1.Text := '';Clkd := false;if Edit1.Text = '' thenEdit1.Text := '9'elseEdit1.Text := Edit1.Text + '9';endelseif ClkJ =true thenEdit1.Text := Edit1.Text + '9'elseEdit1.Text := '9';ClkJ := true;Temp2 := Edit1.Text;end;procedure TForm1.Button14Click(Sender: TObject); beginif Clkd = true thenbeginEdit1.Text := '';Clkd := false;if Edit1.Text = '' thenEdit1.Text := '.'elseEdit1.Text := Edit1.Text + '.';endelseif ClkJ =true thenEdit1.Text := Edit1.Text + '.'elseEdit1.Text := '.';ClkJ := true;Temp2 := Edit1.Text;end;procedure TForm1.Button4Click(Sender: TObject);beginn := 1; //加法运算符号Temp1 := Edit1.Text;Edit1.clear;end;procedure TForm1.Button8Click(Sender: TObject);beginn := 2; //减法运算符号Temp1 := Edit1.Text;Edit1.Clear;end;procedure TForm1.Button12Click(Sender: TObject);beginn := 3; //乘法运算符号Temp1 := Edit1.Text;Edit1.Clear;end;procedure TForm1.Button16Click(Sender: TObject);beginn := 4; //除法运算符号Temp1 := Edit1.Text;Edit1.Clear;end;procedure TForm1.Button17Click(Sender: TObject);beginEdit1.clear; //清空上次运行的数据end;procedure TForm1.Button18Click(Sender: TObject);beginForm1.close;end;procedure TForm1.Button15Click(Sender: TObject); //加减乘除运算过程begincase n of1: Temp1 := FloatToStr(StrToFloat(Temp1) + StrToFloat(Temp2));2: Temp1 := FloatToStr(StrToFloat(Temp1) - StrToFloat(Temp2));3: Temp1 := FloatToStr(StrToFloat(Temp1) * StrToFloat(Temp2));4: if StrToFloat(Edit1.Text) = 0 thenbeginTemp1 := '除法运算中,除数不能为0';exit;endelseTemp1 := FloatToStr(StrToFloat(Temp1) / StrToFloat(Temp2))//Edit1.Text := Result;// else//Edit1.Text := Temp1;end;Edit1.Text := Temp1;Clkd := true;end;end.。
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.。
delphi编写简单的计算器
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+'8'
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+'3'
delphi fft 程序代码
标题:深度解析Delphi中的FFT程序代码在Delphi中,FFT(快速傅里叶变换)算法是一种常用的数学计算方法,用于处理信号和图像处理、数据压缩、声音分析等领域。
本文将深度解析Delphi中的FFT程序代码,帮助读者全面理解并掌握这一重要的算法。
一、FFT简介快速傅里叶变换(FFT)是一种离散傅里叶变换(DFT)的快速算法,能够在计算机上高效地计算离散信号的频谱。
FFT算法在数字信号处理中得到广泛应用,是一种高效的频域分析方法。
在Delphi中,我们可以利用现成的FFT库或者自行编写FFT算法来实现信号的频域分析。
接下来,我们将对Delphi中常用的FFT程序代码进行深入讨论。
二、Delphi中的FFT程序代码在Delphi中,可以使用现成的FFT库来实现快速傅里叶变换,也可以自行编写FFT算法。
下面以调用现成的FFT库为例进行讨论。
1. 引入FFT库要在Delphi中进行FFT变换,首先需要引入FFT库。
可以在Delphi 的组件库中找到对应的FFT组件,或者下载第三方的FFT库,并在项目中引入相关的单元或者库文件。
2. 调用FFT函数一般来说,FFT库会提供FFT函数,我们可以通过调用这些函数来实现快速傅里叶变换。
在Delphi中,可以通过简单的函数调用来完成FFT变换,实现信号的频域分析。
以下是一个简单的示例代码:```delphivarSignal: TArray<Double>;FreqDomain: TArray<Complex>;begin// 初始化信号// ...// 进行FFT变换FFT(Signal, FreqDomain);// 处理频域数据// ...end;```以上代码演示了如何利用FFT库进行信号的频域分析,通过调用FFT 函数实现快速傅里叶变换,得到频域数据。
接下来我们将对FFT算法进行深入探讨。
三、FFT算法原理FFT算法是一种复杂的数学计算方法,其原理涉及到复数运算、递归计算等多个方面。
delphi 随机生成四则运算题目
delphi 随机生成四则运算题目在 Delphi 中,你可以使用随机数生成器来生成四则运算题目。
以下是一个简单的示例,演示如何生成两个随机数和一个随机运算符,然后计算结果:```delphiprogram RandomArithmeticQuestion;{$APPTYPE CONSOLE}usesSysUtils, Classes;vara, b, operatorChar, result: Integer;beginWriteLn('随机四则运算题目:');// 生成两个随机数a := RandomRange(1, 100);b := RandomRange(1, 100);// 生成一个随机运算符operatorChar := RandomRange(Ord('+'), Ord('-'));// 根据运算符计算结果case operatorChar ofOrd('+'): result := a + b;Ord('-'): result := a - b;Ord(''): result := a b;Ord('/'): result := a div b; // 注意:这里使用 div,因为 Delphi 没有直接支持整数除法操作符 '/'end;// 输出题目和答案WriteLn(Format('题目: %d %c %d = ?', [a, Chr(operatorChar), b])); WriteLn('答案: ' + IntToStr(result));end.```这个程序首先生成两个介于 1 和 100 之间的随机整数(`a` 和 `b`),然后选择一个随机的运算符(`+`、`-`、`` 或 `/`)。
根据运算符,程序计算结果并将题目和答案输出到控制台。
编写相应的Delphi程序分别实现以下科学计算功能
一、编写相应的Delphi程序,分别实现以下科学计算功能:3. 计算级数∑∞=1!3nnn,精确到10-6 .要点:取不断增大的n值,计算∑∞=1! 3nnn的值,比较值的变化。
2.定义一个学生成绩类来统计一次考试的成绩。
要求:(1)从records.txt 读入每个学生每门功课成绩。
(2)求出每个学生的总分并输出到文件mark.txt。
(3)求出每门功课的平均分并输出到文件average.txt提示:假设有90名学生,5门课。
定义数据成员数组mark[90][5] 表示90个学生5 门功课的成绩。
对每个要求设计一个公有函数,分别为Input(), Total(), Average()。
在主函数中分别调用这三个函数。
records.txt 的格式:陈大85 79 84 78 90王二89 92 73 89 80张三65 97 60 58 62李四85 86 84 82 83王五91 93 89 87 95…………………………………….mark.txt 的格式:姓名总分average.txt 的格式:科目编号(1-5)平均分2.加密和解密。
有一行电文(从文件coded.txt 读入,不超过1024个字符),已按下面规律译成了密码:A――>Z a――>zB――>Y b――>yC――>X c――>x……….. ………..即第1 个字母变成第26 个字母,第2 个字母变成第25 个字母,第i 个字母变成第(26-i+1) 个字母,非字母字符时不变。
要求编出程序,将密码还原成原文,并输出密码和原文到文件decode.txt 。
文件code.txt 的格式:R zn z xloovtv hgfwvmg uiln wvkzignvmg lu xlnkfgvi zkkorxzgrlm.文件decode.txt 格式:密文:R zn z xloovtv hgfwvmg uiln wvkzignvmg lu xlnkfgvi zkkorxzgrlm.原文:I am a college student from department of computer application.。
Delphi代码编写标准详解
Delphi编写标准指南一、序言二、通用源代码格式规则2.1 缩格2.2 页边空格2.3 Begin...End 配对三、Object Pascal3.1 括号3.2 保留字和关键字3.3 过程和函数(例程)3.3.1 命名/格式化3.3.2 形式参数3.3.2.1 格式化3.3.2.2 命名3.3.2.3 参数的排序3.3.2.4 常量参数3.3.2.5 名称的冲突3.4 变量3.4.1 变量的命名和格式3.4.2 局部变量3.4.3 全局变量的使用3.5 类型3.5.1 大写约定3.5.1.1 浮点指针类型3.5.1.2 枚举类型3.5.1.3 变数和ole变数类型3.5.2 结构类型3.5.2.1 数组类型3.5.2.2 记录类型3.6 语句3.6.1 if 语句3.6.2 case 语句3.6.2.1 一般性话题3.6.2.2 格式3.6.3 while 语句3.6.4 for 语句3.6.5 repeat 语句3.6.6 with 语句3.6.6.1 一般话题3.6.6.2 格式3.7 结构异常处理3.7.1 一般话题3.7.2 try...finally的使用3.7.3 try...except的使用3.7.4 try...except...else的使用3.8 类类型3.8.1 命名和格式3.8.2 域3.8.2.1 命名/格式3.8.2.2 可视化3.8.3 方法3.8.3.1 命名/格式3.8.3.2 使用静态的方法3.8.3.3 使用虚拟/动态的方法3.8.3.4 使用抽象的方法3.8.3.5 属性存取方法3.8.4 属性3.8.4.1 命名/格式3.8.4.2 使用存取的方法四、文件4.1 工程文件4.1.1 命名4.2 窗体文件4.2.1 命名4.3 数据模板文件4.3.1 命名4.4 远端数据模板文件4.4.1 命名4.5 Unit文件4.5.1 通用Unit结构4.5.1.1 unit的名字4.5.1.2 uses子句4.5.1.3 interface部分4.5.1.4 implementation部分4.5.1.5 initialization部分4.5.1.6 finalization部分4.5.2 窗体单元4.5.2.1 命名4.5.3 数据模板单元4.5.3.1 命名4.5.4 一般目的单元4.5.4.1 命名4.5.5 构件单元4.5.5.1 命名4.6 文件头五、窗体和数据模板5.1 窗体5.1.1 窗体类型命名标准5.1.2 窗体实例命名标准5.1.3 自动创建窗体5.1.4 模式窗体实例化函数5.2 数据模板5.2.1 数据模板命名标准5.2.2 数据模板实例命名标准六、包6.1 使用运行包和设计包的比较6.2 文件命名标准七、构件7.1 用户自定义构件7.2 构件单元7.3 使用注册单元7.4 构件实例命名约定7.5 构件的前缀7.6 Standard页7.7 Additional页7.8 Win32页7.9 System页7.10 Internet页7.11 Data Access页7.12 Data Controls页7.13 Decision Cube页7.14 QReport页7.15 Dialogs页7.16 Win3.1页7.17 Samples页7.18 ActiveX页7.19 Midas页一、序言本文档详述了在Delphi 4开发者指南下进行编程的代码编写标准。
delphi实现计算器源码-完整版
delphi实现计算器源码-完整版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;//创建窗体时初始化一些参数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;if (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.T ext)+ 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;//正负符号响应函数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(StrT oFloat(MyRightEdit.Text))+'.'; endelse if StrToFloat(MyRightEdit.Text)<0 thenbeginMyRightEdit.Text := FloatToStr(abs(StrT oFloat(MyRightEdit.Text)));if Pos('.',Trim(MyRightEdit.Text))=0 thenMyRightEdit.Text := FloatToStr(StrT oFloat(MyRightEdit.Text))+'.'; end;end;//小数点的输入procedure TFrmCounter.SpeedButton14Click(Sender: TObject);beginif Operate <> emp thenOperate := 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(StrT oFloat(MyRightEdit.Text)+TempNum);end;sub: beginMyRightEdit.Text := FloatToStr(TempNum-StrToFloat(MyRightEdit.Text));end;mul: beginMyRightEdit.Text := FloatToStr(TempNum*StrT oFloat(MyRightEdit.Text));end;divid: beginif StrToFloat(MyRightEdit.Text)<>0 thenMyRightEdit.Text := FloatToStr(TempNum/StrT oFloat(MyRightEdit.Text))elseApplication.MessageBox('除数不能为零。
delphi开发工具计算器设计文档
2011开发工具综合设计论文一:设计意图:本次开发工具综合设计选用计算器为最终的设计题目,一是因为计算器是一个普遍使用的工具,另外学Delphi开发工具也让我觉得应该从简单到复杂来慢慢掌握Delphi开发工具的原理。
二:主要实现方法本次开发计算器主要采用Delphi开发工具实现,依次声明以下变量:第一个操作数x,string型第二个操作数y,string 型ca_operator,char型用来保存运算操作符布尔变量operated,boolean型,用来判断运算操作符按钮是否被按下xp,string型,xp用来存储复制粘贴的数mc,real型,mc用来存储数据tfch,integer型,tfch用来显示内存是否已经存储了数据等于1表示已经存储了,等于0表示尚未存储。
k: integer;//判断0被按下几次,用来保护不会输入‘0000000’这样的数。
de:integer;//判断等于号是否被按下temp: string;//用来暂时存储运算结果procedure calc (a,b:double;op:char) 声明一个进行计算的过程(1)在按下0到9这10个数字键时,采用如下的方法:对于‘0’键,首先判断操作符是否被按下,如果没有被按下,并且0已经被按下,则说明现在输入第一个操作数就将第一个操作数加上字符‘0’,再在Edit中显示出来。
如果没有被按下并且第一个操作数为空,咋清空edit1并且使x:=0,edit1显示x。
如果被按下,则说明现在按下的是第二个操作数,如果第一个操作数不为空并且第二个操作数不为0并且等于号没有被按下,则第二个操作数加上字符0,并且edit1加上字符0.如果第一个草组搜狐不为空且第二个操作数为0并且等号没有被按下,则使第二个操作数为0.如果第一个操作数不为空并且第二个操作数为空且等于号没有被按下,则第二个操作数置0,且edit1加上字符0.如果操作符被按下并且等于号也被按下,说明进行第二次运算,则清空两个操作数以及temp,edit1,操作符,operated,以及de,并且第一个操作数加上字符0,在Edit显示出来。
eclipse实现简单计算器代码.
eclipse实现简单计算器代码.package Computer;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;import java.util.LinkedList;import java.text.NumberFormat;public class Cacultor extends Frame implements ActionListener{/*** @param args*/NumberButton numberButton[];OperationButton operationButton[];Button 小数点按钮,正负号按钮,退格按钮,求倒数按钮,等号按钮,清零按钮;Panel panel;JTextField resultShow;String 运算符号[]={"+","-","*","/"};LinkedList 链表;boolean 是否按下等号=false;public Cacultor(){super("计算器");链表=new LinkedList();numberButton=new NumberButton[10];for(int i=0;i<=9;i++){numberButton[i]=new NumberButton(i);numberButton[i].addActionListener(this);}operationButton=new OperationButton[4];for(int i=0;i<4;i++){operationButton[i]=new OperationButton(运算符号[i]);operationButton[i].addActionListener(this);}小数点按钮=new Button(".");正负号按钮=new Button("+/-");等号按钮=new Button("=");求倒数按钮=new Button("1/x");退格按钮=new Button("退格");清零按钮=new Button("c");清零按钮.setForeground(Color.red);退格按钮.setForeground(Color.red);等号按钮.setForeground(Color.red);求倒数按钮.setForeground(Color.blue);正负号按钮.setForeground(Color.blue);小数点按钮.setForeground(Color.blue);退格按钮.addActionListener(this);清零按钮.addActionListener(this);等号按钮.addActionListener(this);小数点按钮.addActionListener(this);正负号按钮.addActionListener(this);求倒数按钮.addActionListener(this);resultShow=new JTextField(10);resultShow.setHorizontalAlignment(JTextField.RIGHT); resultShow.setForeground(Color.blue);resultShow.setFont(new Font("TimesRoman",Font.PLAIN,14)); resultShow.setBorder(newSoftBevelBorder(BevelBorder.LOWERED));resultShow.setBackground(Color.white);resultShow.setEditable(false);panel=new Panel();panel.setLayout(new GridLayout(4,5));panel.add(numberButton[1]);panel.add(numberButton[2]);panel.add(numberButton[3]);panel.add(operationButton[0]);panel.add(清零按钮);panel.add(numberButton[4]);panel.add(numberButton[5]);panel.add(numberButton[6]);panel.add(operationButton[1]);panel.add(退格按钮);panel.add(numberButton[7]);panel.add(numberButton[8]);panel.add(numberButton[9]);panel.add(operationButton[2]);panel.add(求倒数按钮);panel.add(numberButton[0]);panel.add(正负号按钮);panel.add(小数点按钮);panel.add(operationButton[3]);panel.add(等号按钮);add(panel,BorderLayout.CENTER);add(resultShow,BorderLayout.NORTH);addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){ System.exit(0);}});setVisible(true);setBounds(100,50,240,180);setResizable(false);validate();}//按钮事件的处理public void actionPerformed(ActionEvent e){if(e.getSource() instanceof NumberButton){NumberButton b=(NumberButton)e.getSource();if(链表.size()==0){int number=b.getNumber();链表.add(""+number);resultShow.setText(""+number);是否按下等号=false;}else if(链表.size()==1&&是否按下等号==false){ int number=b.getNumber();String num=(String)链表.getFirst();String s=num.concat(""+number);链表.set(0, s);resultShow.setText(s);}else if(链表.size()==1&&是否按下等号==true){int number=b.getNumber();链表.removeFirst();链表.add(""+number);是否按下等号=false;resultShow.setText(""+number);}else if(链表.size()==2){int number=b.getNumber();链表.add(""+number);resultShow.setText(""+number);}else if(链表.size()==3){int number=b.getNumber();String num=(String)链表.getLast();String s=num.concat(""+number);链表.set(2, s);resultShow.setText(s);}}else if(e.getSource()instanceof OperationButton){ OperationButton b=(OperationButton)e.getSource();if(链表.size()==1){String fuhao=b.get运算符号();链表.add(fuhao);}else if(链表.size()==2){String fuhao=b.get运算符号();链表.set(1, fuhao);}else if(链表.size()==3){String fuhao=b.get运算符号();String number1=(String)链表.getFirst();String number2=(String)链表.getLast();String 运算符号=(String)链表.get(1);try{double n2=Double.parseDouble(number2); double n=0;if(运算符号.equals("+")){n=n1+n2;}else if(运算符号.equals("-")){n=n1-n2;}else if(运算符号.equals("*")){n=n1*n2;}else if(运算符号.equals("/")){n=n1/n2;}链表.clear();链表.add(""+n);链表.add(fuhao);resultShow.setText(""+n);}catch(Exception ee){}}}else if(e.getSource()==等号按钮){是否按下等号=true;if(链表.size()==1&&链表.size()==2){ String num=(String)链表.getFirst(); resultShow.setText(""+num);}else if(链表.size()==3){String number1=(String)链表.getFirst(); String number2=(String)链表.getLast(); String 运算符号=(String)链表.get(1);try{double n2=Double.parseDouble(number2); double n=0;if(运算符号.equals("+")){n=n1+n2;}else if(运算符号.equals("-")){n=n1-n2;}else if(运算符号.equals("*")){n=n1*n2;}else if(运算符号.equals("/")){n=n1/n2;}resultShow.setText(""+n);链表.set(0, ""+n);链表.removeLast();链表.removeLast();}catch(Exception ee){}}}else if(e.getSource()==小数点按钮){if(链表.size()==0){是否按下等号=false;}else if(链表.size()==1){String dot=小数点按钮.getLabel();String num=(String)链表.getFirst();String s=null;if(num.indexOf(dot)==-1){s=num.concat(dot);链表.set(0, s);}else{s=num;}链表.set(0, s);resultShow.setText(s);}else if(链表.size()==3){String dot=小数点按钮.getLabel(); String num=(String)链表.getLast(); String s=null;if(num.indexOf(dot)==-1){s=num.concat(dot);链表.set(2, s);}else{s=num;}resultShow.setText(s);}}else if(e.getSource()==退格按钮){if(链表.size()==1){String num=(String)链表.getFirst();if(num.length()>=1){num=num.substring(0,num.length()-1); 链表.set(0, num);resultShow.setText(num);}else{链表.removeLast();resultShow.setText("0");}}else if(链表.size()==3){String num=(String)链表.getLast();if(num.length()>=1){num=num.substring(0,num.length()-1); 链表.set(2, num);resultShow.setText(num);}else{链表.removeLast();resultShow.setText("0");}}}else if(e.getSource()==正负号按钮){if(链表.size()==1){String number1=(String)链表.getFirst(); try{double d=Double.parseDouble(number1); d=-1*d;String str=String.valueOf(d);链表.set(0, str);resultShow.setText(str);}catch(Exception ee){}}else if(链表.size()==3){String number2=(String)链表.getLast();try{double d=Double.parseDouble(number2); d=-1*d;String str=String.valueOf(d);链表.set(2, str);resultShow.setText(str);}catch(Exception ee){}}}else if(e.getSource()==求倒数按钮){if(链表.size()==1||链表.size()==2){String number1=(String)链表.getFirst(); try{double d=Double.parseDouble(number1); d=1.0/d;String str=String.valueOf(d);链表.set(0, str);resultShow.setText(str);}catch(Exception ee){}}else if(链表.size()==3){String number2=(String)链表.getLast();try{double d=Double.parseDouble(number2); d=1.0/d;String str=String.valueOf(d);链表.set(0, str);resultShow.setText(str);}catch(Exception ee){}}}else if(e.getSource()==清零按钮){是否按下等号=false;resultShow.setText("0");链表.clear();}}public static void main(String[] args) {// TODO Auto-generated method stub new Cacultor();}}。
Delphi实例代码
( Word Reader - 未滨册 ) www.wordLeabharlann
program Project2_7; {$APPTYPE CONSOLE} var n:integer; c:string; begin readln(n); case n div 10 of 0..5:c:='E'; 6:c:='D'; 7:c:='C'; 8:c:='B'; 9..10:c:='A'; else c:='Error'; end; writeln(c); readln; end. 5.计算1+2+3+...+n。 program Project2_8; {$APPTYPE CONSOLE} var i,n,sum:Integer; begin readln(n); sum:=0; i:=0; repeat //repeat语句开始行 i:=i+1; sum:=sum+i; until i>=n; //repeat语句结束行 writeln(sum); readln; end. 6.当和大于1000时,执行停止。 program Project2_9; {$APPTYPE CONSOLE} var i,n,sum:Integer; begin readln(n); sum:=0; i:=0; repeat //repeat语句开始行
( Word Reader - 未滨册 )
1.在幏幕上显示9*9乘滕表。 program Project2_1eg; {$APPTYPE CONSOLE} var i,n:integer; begin for i:=1 to 9 do begin for n:=1 to i do write(i*n:3); writeln; end; readln; end. 2.帆整数值为0~127的字符在幏幕上输出。 program Project2_2n; {$APPTYPE CONSOLE} Var I:Integer; begin for I:=0 to 127 do Write(Chr(I)); //帆0~255的整数以ASCII码的形式输出 Writeln; Writeln('按下回车键<Enter>退出。'); Readln; end. 3.湂圆柱体体积。 program Project2_5; {$APPTYPE CONSOLE} const pi=3.14159; var h:integer; r,v:real; begin readln(r); //输入半径 readln(h); //输入高度 v:=pi*sqr(r)*h; //湂体积,sqr(r)为r的平方 writeln(v); readln; end. 4.百分制转五分制。
Delphi实现小计算器源码
//source源码unit Unit2;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, Buttons;typeTForm2 = class(TForm)soleplate: TPanel;nu1: TSpeedButton;nu2: TSpeedButton;nu3: TSpeedButton;op1: TSpeedButton;nu4: TSpeedButton;op2: TSpeedButton;nu7: TSpeedButton;nu8: TSpeedButton;nu9: TSpeedButton;display: TPanel;nu6: TSpeedButton;nu0: TSpeedButton;nu10: TSpeedButton;op5: TSpeedButton;nu5: TSpeedButton;op3: TSpeedButton;op4: TSpeedButton;procedure FormCreate(Sender: TObject);procedure nu1Click(Sender: TObject);procedure op1Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm2: TForm2;Tign:Word;a,b:Real;q:Boolean;implementation{$R *.dfm}procedure TForm2.FormCreate(Sender: TObject);beginTign :=0;a:=0;b:=0;q:=False;end;procedure TForm2.nu1Click(Sender: TObject);beginif Form2.Tag=0 thendisplay.Caption:=display.Caption+(Sender as TSpeedButton).Caption else beginif Tag=10 thendisplay.Caption:='0'elsedisplay.Caption:=(Sender as TSpeedButton).Caption;Form2.Tag:=0;end;end;procedure TForm2.op1Click(Sender: TObject);beginForm2.Tag:=1;if q thenbegina:=StrToFloat(display.Caption);q:=not q;endelsebeginb:=StrToFloat(display.Caption);case Tign of0:display.Caption:=Format('%g',[a+b]);1:display.Caption:=Format('%g',[a-b]);2:display.Caption:=Format('%g',[a*b]);3:if b<>0thendisplay.Caption:=Format('%g',[a/b])elsebeginShowMessage('除数不能为0!');display.Caption;Format('%g',[a]);q:=False;end;4:beginb:=0;q:=False;end;end;a:=StrToFloat(display.Caption);end;Tign:=(Sender as TSpeedButton).Tag;end;end.//------------------------------------------------------------------------------- //form源码object Form2: TForm2Left = 0Top = 0Caption = #35745#31639#22120ClientHeight = 442ClientWidth = 537Color = clBtnFaceFont.Charset = DEFAULT_CHARSETFont.Color = clWindowTextFont.Height = -11 = 'Tahoma'Font.Style = []OldCreateOrder = FalseOnCreate = FormCreatePixelsPerInch = 96TextHeight = 13object soleplate: TPanelLeft = 154Top = 0Width = 249Height = 401TabOrder = 0object nu1: TSpeedButtonTag = 1Left = 32Top = 96Width = 23Height = 22Caption = '1'endobject nu2: TSpeedButton Tag = 2Left = 61Top = 96Width = 23Height = 22Caption = '2'OnClick = nu1Click endobject nu3: TSpeedButton Tag = 3Left = 96Top = 96Width = 23Height = 22Caption = '3'OnClick = nu1Click endobject op1: TSpeedButton Left = 136Top = 96Width = 23Height = 22Caption = '+'OnClick = op1Click endobject nu4: TSpeedButton Tag = 4Left = 32Top = 124Width = 23Height = 22Caption = '4'OnClick = nu1Click endobject op2: TSpeedButton Tag = 1Left = 136Top = 124Width = 23Height = 22Caption = '-'endobject nu7: TSpeedButton Tag = 7Left = 32Top = 152Width = 23Height = 22Caption = '7'OnClick = nu1Click endobject nu8: TSpeedButton Tag = 8Left = 61Top = 152Width = 23Height = 22Caption = '8'OnClick = nu1Click endobject nu9: TSpeedButton Tag = 9Left = 96Top = 152Width = 23Height = 22Caption = '9'OnClick = nu1Click endobject nu6: TSpeedButton Tag = 6Left = 96Top = 124Width = 23Height = 22Caption = '6'OnClick = nu1Click endobject nu0: TSpeedButton Left = 32Top = 180Width = 23Height = 22Caption = '0'endobject nu10: TSpeedButton Tag = 10Left = 61Top = 180Width = 23Height = 22Caption = '.'endobject op5: TSpeedButton Tag = 4Left = 96Top = 180Width = 23Height = 22Caption = '='OnClick = op1Click endobject nu5: TSpeedButton Tag = 5Left = 61Top = 124Width = 23Height = 22Caption = '5'OnClick = nu1Click endobject op3: TSpeedButton Tag = 2Left = 136Top = 152Width = 23Height = 22Caption = '*'OnClick = op1Click endobject op4: TSpeedButton Tag = 3Left = 136Top = 180Width = 23Height = 22Caption = '/'endobject display: TPanelLeft = 8Top = 16Width = 233Height = 41Alignment = taRightJustifyBorderStyle = bsSingleColor = clHighlightTextParentBackground = FalseTabOrder = 0endendend。
DELPHI计算器
unlt Unlt2;lnterfaceusesWlndows, Messages, SysUtlls, Varlants, Classes, Graphlcs, Controls, Forms, Dlalogs, StdCtrls;typeTForm1 = class(TForm)one: TButton;two: TButton;three: TButton;four: TButton;flve: TButton;slx: TButton;seven: TButton;elght: TButton;nlne: TButton;Button10: TButton;Button11: TButton;Button12: TButton;Button13: TButton;Edlt1: TEdlt;Button14: TButton;Button15: TButton;Button16: TButton;zore: TButton;polnt: TButton;Button1: TButton;procedure oneCllck(Sender: TObject);procedure twoCllck(Sender: TObject);procedure threeCllck(Sender: TObject);procedure fourCllck(Sender: TObject);procedure flveCllck(Sender: TObject);procedure slxCllck(Sender: TObject);procedure sevenCllck(Sender: TObject);procedure elghtCllck(Sender: TObject);procedure nlneCllck(Sender: TObject);procedure zoreCllck(Sender: TObject);procedure Button1Cllck(Sender: TObject);procedure Button10Cllck(Sender: TObject);procedure Button11Cllck(Sender: TObject);procedure Button12Cllck(Sender: TObject);procedure Button13Cllck(Sender: TObject);procedure Button14Cllck(Sender: TObject);procedure Button16Cllck(Sender: TObject);procedure Button15Cllck(Sender: TObject);procedure polntCllck(Sender: TObject); prlvate{ Prlvate declaratlons }publlc{ Publlc declaratlons }end;varForm1: TForm1;l,ls,q:lnteger;//n,m:lnteger;Edlt1.Text:=lnttostr(m);mq, hao:strlng;n,m,rea:real;lmplementatlon{$R *.dfm}procedure TForm1.oneCllck(Sender: TObject); beglnEdlt1.Text:='';lf mq='1' thenbeglnfor l:=0 to ls dobeglnq:=q*10;end;m:=m+(1 / q);q:=1;ls:=ls+1;Edlt1.Text:=floattostr(m);endelse begln m:=m*10+1;Edlt1.Text:=floattostr(m);end;end;procedure TForm1.twoCllck(Sender: TObject); beglnlf mq='1' thenfor l:=0 to ls dobeglnq:=q*10;end;m:=m+(2 / q);q:=1;ls:=ls+1;Edlt1.Text:=floattostr(m);endelse begln m:=m*10+2;Edlt1.Text:=floattostr(m);end;end;procedure TForm1.threeCllck(Sender: TObject); beglnlf mq='1' thenbeglnfor l:=0 to ls dobeglnq:=q*10;end;m:=m+(3 / q);q:=1;ls:=ls+1;Edlt1.Text:=floattostr(m);endelse begln m:=m*10+3;Edlt1.Text:=floattostr(m);end;end;procedure TForm1.fourCllck(Sender: TObject); beglnlf mq='1' thenbeglnfor l:=0 to ls dobeglnq:=q*10;end; m:=m+(4 / q);ls:=ls+1;Edlt1.Text:=floattostr(m);endelse begln m:=m*10+4;Edlt1.Text:=floattostr(m);end;end;procedure TForm1.flveCllck(Sender: TObject); beglnlf mq='1' thenbeglnfor l:=0 to ls dobeglnq:=q*10;end; m:=m+(5 / q);q:=1;ls:=ls+1;Edlt1.Text:=floattostr(m);endelse begln m:=m*10+5;Edlt1.Text:=floattostr(m);end;end;procedure TForm1.slxCllck(Sender: TObject); beglnlf mq='1' thenbeglnfor l:=0 to ls doq:=q*10;beglnm:=m+(6 / q);q:=1;end;ls:=ls+1;Edlt1.Text:=floattostr(m);endelse begln m:=m*10+6;Edlt1.Text:=floattostr(m);end;procedure TForm1.sevenCllck(Sender: TObject); beglnlf mq='1' thenbeglnfor l:=0 to ls dobeglnq:=q*10;end; m:=m+(7 / q);q:=1;ls:=ls+1;Edlt1.Text:=floattostr(m);endelse begln m:=m*10+7;Edlt1.Text:=floattostr(m);end;end;procedure TForm1.elghtCllck(Sender: TObject); beglnlf mq='1' thenbeglnfor l:=0 to ls dobeglnq:=q*10;end; m:=m+(8 / q);q:=1;ls:=ls+1;Edlt1.Text:=floattostr(m);endelse begln m:=m*10+8;Edlt1.Text:=floattostr(m);end;end;procedure TForm1.nlneCllck(Sender: TObject); beglnlf mq='1' thenbeglnfor l:=0 to ls dobeglnend;m:=m+(9 / q);q:=1;ls:=ls+1;Edlt1.Text:=floattostr(m);endelsebeglnm:=m*10+9;Edlt1.Text:=floattostr(m);end;end;procedure TForm1.zoreCllck(Sender: TObject); beglnlf mq='1' thenbeglnfor l:=1 to ls dobeglnq:=q*10;end;m:=m+(0 / q);q:=1;ls:=ls+1;Edlt1.Text:=floattostr(m);endelse begln m:=m*10+0;Edlt1.Text:=floattostr(m);end;end;procedure TForm1.Button10Cllck(Sender: TObject); beglnn:=m;m:=0;hao:='+';mq:='0'; ls:=0;end;procedure TForm1.Button11Cllck(Sender: TObject); beglnm:=0;hao:='-'; mq:='0';ls:=0;end;procedure TForm1.Button12Cllck(Sender: TObject); beglnls:=0; mq:='0'; n:=m;m:=0;hao:='*';end;procedure TForm1.Button13Cllck(Sender: TObject); beglnls:=0; mq:='0';n:=m;m:=0;hao:='/';end;procedure TForm1.Button14Cllck(Sender: TObject); beglnmq:='0';lf hao='+' thenbeglnEdlt1.Text:=floattostr(n+m);end;lf hao='-' thenbeglnEdlt1.Text:=floattostr(n-m);end;lf hao='*' thenbeglnEdlt1.Text:=floattostr(n*m);end;lf hao='/' thenbeglnlf m=0 thenbeglnshowmessage('除数不可零');exlt;end;rea:=(n/m);Edlt1.Text:=floattostr(rea);end;end;procedure TForm1.Button16Cllck(Sender: TObject); beglnmq:='0';m:=0;n:=0;hao:='0';Edlt1.Text:='';ls:=0;end;procedure TForm1.Button15Cllck(Sender: TObject); beglnm:=m / 10;m:=lnt(m);Edlt1.Text:=floattostr(m);end;procedure TForm1.polntCllck(Sender: TObject); beglnmq:='1';q:=1;end;end.。
delphi编程
begin
Memo1.Lines.Clear;
if ParamCount = 0 then
Memo1.Lines.Add('??统??.')
else
begin
Memo1.Lines.Add('档名:' + ParamStr(0));
怎样在关闭窗口之前加入确认对话框
1.在Form的OnCloseQuery 事件里加入以下代码:
if Application.MessageBox('Close it now?','Ask',MB_YESNO )=IDYES then
CanClose:=True
else
sCommandLine :='Xcopy d:\temp\temp1\*.* d:\temp\temp2 /v/y';
lpStartupInfo.dwFlags := STARTF_USESHOWWINDOW;
lpStartupInfo.wShowWindow := SW_HIDE;
for ix := 1 to ParamCount do
Memo1.Lines.Add(ParamStr(ix));
end;
end;
查阅所有可视窗口标题
下面只是举出一个例子提供参考:
运用API函数 GetWindow() 配合 GetWindowText() 逐一查出各视窗的标题
[ 接上例 ]:
TStartupInfo 这个结构中有一个 sShowWindow 栏位, 将之设为 SW_HIDE即可,
同时, dwFlags 标志中至少需含有 STARTF_USESHOWWINDOW, 否则CreateProcess
delphi常用代码
Delphi常用代码汇总◇[DELPHI]网络邻居复制文件uses shellapi;copyfile(pchar('newfile.txt'),pchar('//computername/direction/targer.txt'),false);◇[DELPHI]产生鼠标拖动效果通过MouseMove事件、DragOver事件、EndDrag事件实现,例如在PANEL上的LABEL:var xpanel,ypanel,xlabel,ylabel:integer;PANEL的MouseMove事件:xpanel:=x;ypanel:=y;PANEL的DragOver事件:xpanel:=x;ypanel:=y;LABEL的MouseMove事件:xlabel:=x;ylabel:=y;LABEL的EndDrag事件:label.left:=xpanel-xlabel;label.top:=ypanel-ylabel;◇[DELPHI]取得WINDOWS目录uses shellapi;var windir:array[0..255] of char;getwindowsdirectory(windir,sizeof(windir));或者从注册表中读取,位置:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion SystemRoot键,取得如:C:\WINDOWS◇[DELPHI]在form或其他容器上画线var x,y:array [0..50] of integer;canvas.pen.color:=clred;canvas.pen.style:=psDash;form1.canvas.moveto(trunc(x[i]),trunc(y[i]));form1.canvas.lineto(trunc(x[j]),trunc(y[j]));◇[DELPHI]字符串列表使用var tips:tstringlist;tips:=tstringlist.create;tips.loadfromfile('filename.txt');edit1.text:=tips[0];tips.add('last line addition string');tips.insert(1,'insert string at NO 2 line');tips.savetofile('newfile.txt');tips.free;◇[DELPHI]简单的剪贴板操作richedit1.selectall;richedit1.copytoclipboard;richedit1.cuttoclipboard;edit1.pastefromclipboard;◇[DELPHI]关于文件、目录操作Chdir('c:\abcdir');转到目录Mkdir('dirname');建立目录Rmdir('dirname');删除目录GetCurrentDir;//取当前目录名,无'\'Getdir(0,s);//取工作目录名s:='c:\abcdir';Deletfile('abc.txt');//删除文件Renamefile('old.txt','new.txt');//文件更名ExtractFilename(filelistbox1.filename);//取文件名ExtractFileExt(filelistbox1.filename);//取文件后缀◇[DELPHI]处理文件属性attr:=filegetattr(filelistbox1.filename);if (attr and faReadonly)=faReadonly then ... //只读if (attr and faSysfile)=faSysfile then ... //系统if (attr and faArchive)=faArchive then ... //存档if (attr and faHidden)=faHidden then ... //隐藏◇[DELPHI]执行程序外文件WINEXEC//调用可执行文件winexec(' /c copy *.* c:\',SW_Normal);winexec('start abc.txt');ShellExecute或ShellExecuteEx//启动文件关联程序function executefile(const filename,params,defaultDir:string;showCmd:integer):THandle; ExecuteFile('C:\abc\a.txt','x.abc','c:\abc\',0);ExecuteFile('','','',0);ExecuteFile('mailto:tingweb@','','',0);◇[DELPHI]取得系统运行的进程名var hCurrentWindow:HWnd;szText:array[0..254] of char;beginhCurrentWindow:=Getwindow(handle,GW_HWndFrist);while hCurrentWindow <> 0 dobeginif Getwindowtext(hcurrnetwindow,@sztext,255)>0 thenlistbox1.items.add(strpas(@sztext));hCurrentWindow:=Getwindow(hCurrentwindow,GW_HWndNext);end;end;◇[DELPHI]关于汇编的嵌入Asm End;可以任意修改EAX、ECX、EDX;不能修改ESI、EDI、ESP、EBP、EBX。
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:=1to j do beginif(i*m)mod j=0then 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=1do 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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
varForm1:TForm1;Temp1:string;//存放数值一和结果Clkd:boolean=false;//等号是否被按下过,默认为为按下过ClkJ:boolean=false;//数字键是否被按下过,默认为未按下过Temp2:string;//存放数值二n:Integer;implementation{$R*.dfm}procedure TForm1.Button13Click(Sender:TObject);beginif Clkd=true thenbeginEdit1.Text:='';//如果等号按下过,清空Edit1的内容Clkd:=false;//还原等号状态值if Edit1.Text=''thenEdit1.Text:='0'//如果Edit1内容为空,显示0elseEdit1.Text:=Edit1.Text+'0';//否则在Edit1内容的后一位显示0 endelseif ClkJ=true then//如果等号没有按下过,数字键按下过Edit1.Text:=Edit1.Text+'0'//则在Edit1内容的后一位显示0elseEdit1.Text:='0';//否则Edit1显示0ClkJ:=true;Temp2:=Edit1.Text;end;procedure TForm1.Button9Click(Sender:TObject);beginif Clkd=true thenbeginEdit1.Text:='';//如果等号按下过,清空Edit1的内容Clkd:=false;//还原等号状态值if Edit1.Text=''then//如果Edit1内容为空,显示1Edit1.Text:='1'elseEdit1.Text:=Edit1.Text+'1';//否则在Edit1内容的后一位显示1 endelseif ClkJ=true then//如果等号没有按下过,数字键按下过Edit1.Text:=Edit1.Text+'1'elseEdit1.Text:='1';ClkJ:=true;Temp2:=Edit1.Text;end;procedure TForm1.Button10Click(Sender:TObject);beginif Clkd=true thenbeginEdit1.Text:='';Clkd:=false;if Edit1.Text=''thenEdit1.Text:='2'elseEdit1.Text:=Edit1.Text+'2';endelseif ClkJ=true thenEdit1.Text:=Edit1.Text+'2'elseEdit1.Text:='2';ClkJ:=true;Temp2:=Edit1.Text;end;procedure TForm1.Button11Click(Sender:TObject);beginif Clkd=true thenbeginEdit1.Text:='';Clkd:=false;if Edit1.Text=''thenEdit1.Text:='3'elseEdit1.Text:=Edit1.Text+'3';endelseif ClkJ=true thenEdit1.Text:=Edit1.Text+'3'elseEdit1.Text:='3';ClkJ:=true;Temp2:=Edit1.Text;end;procedure TForm1.Button5Click(Sender:TObject); beginif Clkd=true thenbeginEdit1.Text:='';Clkd:=false;if Edit1.Text=''thenEdit1.Text:='4'elseEdit1.Text:=Edit1.Text+'4';endelseif ClkJ=true thenEdit1.Text:=Edit1.Text+'4'elseEdit1.Text:='4';ClkJ:=true;Temp2:=Edit1.Text;end;procedure TForm1.Button6Click(Sender:TObject); beginif Clkd=true thenbeginEdit1.Text:='';Clkd:=false;if Edit1.Text=''thenEdit1.Text:='5'elseEdit1.Text:=Edit1.Text+'5';endelseif ClkJ=true thenEdit1.Text:=Edit1.Text+'5'elseEdit1.Text:='5';ClkJ:=true;Temp2:=Edit1.Text;end;procedure TForm1.Button7Click(Sender:TObject); beginif Clkd=true thenbeginEdit1.Text:='';Clkd:=false;if Edit1.Text=''thenEdit1.Text:='6'elseEdit1.Text:=Edit1.Text+'6';endelseif ClkJ=true thenEdit1.Text:=Edit1.Text+'6'elseEdit1.Text:='6';ClkJ:=true;Temp2:=Edit1.Text;end;procedure TForm1.Button1Click(Sender:TObject); beginif Clkd=true thenbeginEdit1.Text:='';Clkd:=false;if Edit1.Text=''thenEdit1.Text:='7'elseEdit1.Text:=Edit1.Text+'7';endelseif ClkJ=true thenEdit1.Text:=Edit1.Text+'7'elseEdit1.Text:='7';ClkJ:=true;Temp2:=Edit1.Text;end;procedure TForm1.Button2Click(Sender:TObject); beginif Clkd=true thenbeginEdit1.Text:='';Clkd:=false;if Edit1.Text=''thenEdit1.Text:='8'elseEdit1.Text:=Edit1.Text+'8';endelseif ClkJ=true thenEdit1.Text:=Edit1.Text+'8'elseEdit1.Text:='8';ClkJ:=true;Temp2:=Edit1.Text;end;procedure TForm1.Button3Click(Sender:TObject); beginif Clkd=true thenbeginEdit1.Text:='';Clkd:=false;if Edit1.Text=''thenEdit1.Text:='9'elseEdit1.Text:=Edit1.Text+'9';endelseif ClkJ=true thenEdit1.Text:=Edit1.Text+'9'elseEdit1.Text:='9';ClkJ:=true;Temp2:=Edit1.Text;end;procedure TForm1.Button14Click(Sender:TObject); beginif Clkd=true thenbeginEdit1.Text:='';Clkd:=false;if Edit1.Text=''thenEdit1.Text:='.'elseEdit1.Text:=Edit1.Text+'.';endelseif ClkJ=true thenEdit1.Text:=Edit1.Text+'.'elseEdit1.Text:='.';ClkJ:=true;Temp2:=Edit1.Text;end;procedure TForm1.Button4Click(Sender:TObject);beginn:=1;//加法运算符号Temp1:=Edit1.Text;Edit1.clear;end;procedure TForm1.Button8Click(Sender:TObject);beginn:=2;//减法运算符号Temp1:=Edit1.Text;Edit1.Clear;end;procedure TForm1.Button12Click(Sender:TObject);beginn:=3;//乘法运算符号Temp1:=Edit1.Text;Edit1.Clear;end;procedure TForm1.Button16Click(Sender:TObject);beginn:=4;//除法运算符号Temp1:=Edit1.Text;Edit1.Clear;end;procedure TForm1.Button17Click(Sender:TObject);beginEdit1.clear;//清空上次运行的数据end;procedure TForm1.Button18Click(Sender:TObject);beginForm1.close;end;procedure TForm1.Button15Click(Sender:TObject);//加减乘除运算过程begincase n of1:Temp1:=FloatToStr(StrToFloat(Temp1)+StrToFloat(Temp2));2:Temp1:=FloatToStr(StrToFloat(Temp1)-StrToFloat(Temp2));3:Temp1:=FloatToStr(StrToFloat(Temp1)*StrToFloat(Temp2));4:if StrToFloat(Edit1.Text)=0thenbeginTemp1:='除法运算中,除数不能为0';exit;endelseTemp1:=FloatToStr(StrToFloat(Temp1)/StrToFloat(Temp2))//Edit1.Text:=Result;//else//Edit1.Text:=Temp1;end;Edit1.Text:=Temp1;Clkd:=true;end;end.。