设计 任务书 文档 开题 答辩 说明书 格式 模板 外文 翻译 范文 资料 作品 文献 课程 实习 指导 调研 下载 网络教育 计算机 网站 网页 小程序 商城 购物 订餐 电影 安卓 Android Html Html5 SSM SSH Python 爬虫 大数据 管理系统 图书 校园网 考试 选题 网络安全 推荐系统 机械 模具 夹具 自动化 数控 车床 汽车 故障 诊断 电机 建模 机械手 去壳机 千斤顶 变速器 减速器 图纸 电气 变电站 电子 Stm32 单片机 物联网 监控 密码锁 Plc 组态 控制 智能 Matlab 土木 建筑 结构 框架 教学楼 住宅楼 造价 施工 办公楼 给水 排水 桥梁 刚构桥 水利 重力坝 水库 采矿 环境 化工 固废 工厂 视觉传达 室内设计 产品设计 电子商务 物流 盈利 案例 分析 评估 报告 营销 报销 会计
 首 页 机械毕业设计 电子电气毕业设计 计算机毕业设计 土木工程毕业设计 视觉传达毕业设计 理工论文 文科论文 毕设资料 帮助中心 设计流程 
垫片
您现在所在的位置:首页 >>理工论文 >> 文章内容
                 
垫片
   我们提供全套毕业设计和毕业论文服务,联系微信号:biyezuopin QQ:2922748026   
Delphi_Delphi常用应用函数
文章来源:www.biyezuopin.vip   发布者:毕业作品网站  

Delphi
函数由一句或多句代码组成,可以实现某个特定的功能。使用函数可以使代码更加易读、易懂,加快编程速度及减少重复代码。过程与函数类似,过程与函数最重要的区别在于,过程没有返回值,而函数能有返回值 http://www.16sheji8.cn/

  在Delphi 7.0中,已为我们定义好了非常多的函数,大致分类有6种:数据类型转换函数、字符串、数组操作函数、文件、磁盘操作函数、内存、指针操作函数、数学运算函数、日期函数。

  在Delphi中调用函数,一般情况下可以直接使用函数即可,但由于有一些函数未包含在Uses中列出的单元中(默认单元有Windows,Messages,SysUtils,Variants,Classes,Graphics, Controls,Forms,Dialogs,所以需要我们手动添加单元。比如,MidStr函数就未包含在这些单元中,MidStr所属单元在StrUtils中,因此我们将StrUtils添加Uses中即可。

  在本手册中,凡是未包含在默认列出的单元中的函数,都标明了其所属的单元,使用时应当注意。

  一、数据类型转换函数
  在我们编写程序当中,根据不同情况,会使用到多种数据类型。当要对不同的类型进行操作时,必须要将不同的类型转换成同样的类型。因此熟练地掌握数据类型的转换是非常重要的。

  1.FloatToStr
  功能说明:该函数用于将“浮点型”转换成“字符型”。

  参考实例:

  Edit1.Text := FloatToStr(1.981);

  2.IntToStr
  功能说明:该函数用于将“整数型”转换成“字符型”。

  参考实例:

  S := IntToStr(10);(注:S为String类型变量。)

  3.IntToHex
  功能说明:该函数用于将“十进制”转换成“十进制”。该函数有二个参数。第一个参数为要转换的十进制数据,第二个参数是指定使用多少位来显示十六进制数据。

  参考实例:

  Edit1.Text := IntToHex('100', 2)http://www.16sheji8.cn/;

  执行结果,Edit1.Text等于64。

  注意:Delphi没有提供专门的“十六进制”转换为“十进制”的函数。使用StrToInt函数可以实现这个功能。具体代码是:I := StrToInt('S\' + '64'); 这时I等于100。加上一个'S\'即可将“十六进制”转换为“十进制”。

  4.StrToInt
  功能说明:该函数用于将“字符型”转换成“整数型”。

  参考实例:

  I := StrToInt('100');http://www.16sheji8.cn/

  注意:不能转换如 StrToInt('ab')或StrToInt('好')这样的类型,因为他们并不存在数字型。

  5.StrToFloat
  功能说明:该函数用于将“字符型”转换成“浮点型”。

  参考实例:

  N := StrToFloat(Edit1.Text);

  注意:Edit1.Text中的内容为1.981(凡在Edit控件中显示的文本均为字符串)。N为Double类型,用于保存转换后的浮点型数据

  二、字符串、数组操作函数
  对字符串及数组的操作,是每个程序员必须要掌握的。熟练的使用这些函数,在编程时能更加得心应手。

  1.Copy
  功能说明:该函数用于从字符串中复制指定范围中的字符。该函数有3个参数。第一个参数是数据源(即被复制的字符串),第二个参数是从字符串某一处开始复制,第三个参数是要复制字符串的长度(即个数)。最后函数返回一个新的字符串(即是我们指定要复制的字符串内容)。

  参考实例:

  var

    S: String;

    MyStr: String; // 保存新的字符串

  begin

    S := 'I Love China!';http://www.16sheji8.cn/

  //下面将获取I Love China中的“Love”字符串。

  MyStr := Copy(S, 3, 4);

  end;

  执行结果,MyStr等于“Love”,“Love”字符串在“I Love China!”中第3个位置开始,所以第二个参数为3,“Love”一共有4个字符,所以第三个参数为4。

  2.Concat
  功能说明:连接两个或多个字符串为一个字符串。

  参考实例:

  var

    S1, S2: String;

  begin

    S1 := Concat('A', 'B'); // 连接两个字符串,S1变量等于AB。

    S2 := Concat('Borland', ' Delphi', ' 7.0'); // 连接三个字符,S2变量等于Borland Delphi 7.0。

  end;

  3.Delete
  功能说明:删除字符串中指定的字符串。该函数有三个参数。第一个参数为要进行处理的字符串,第二个参数为从何处开始删除,第三个参数为删除的字符个数。

  参考实例:

  var

    S: String;

  begin

    S := 'I Like Reading CPCW.';

    // 下面的代码将删除S变量中的“C”字符。

    Delete(S, 16, 1);

  end;

  此时S变量则是I Like Reading PCW.(“C”已经不存在了)。

  4.High
  功能说明:返回数组下标的最大值。

  参考实例:http://www.16sheji8.cn/

  var

    arrText: array[0..9] of Char;

    i: Integer;

  begin

    i := High(arrText); // i的值则为9

  end;
5.Insert
  功能说明:插入一个字符(串)。该函数有三个参数。第一个参数为要插入的字符(串),第二个参数为被插入字符串(源字符串),第三个参数为从何处插入。

  参考实例:

  var

    S: String;

  begin

    S := 'Wat is your name?';

    // 上面句子中的What单词查一个“h”字符,下面使用Insert函数将h添加进去。

    Insert('h', S, 2); // 将“h”从第2位处插入。

  end;

  6.LeftStr(所在单元:StrUtils)
  功能说明:返回字符串左边指定个数的新字符(串)。该函数有两个参数。第一个参数为完整的字符串,第二个参数为指定个数。

  参考实例:

  var

    S, A: String;

  begin

    S := 'MSN Messenger';

   A := LeftStr(S, 3); // 从最左边开始,获取左边的三个字符。因此A变量则等于MSN。

  end;http://www.16sheji8.cn/

  7.Length
  功能说明:该函数用于统计指定字符串的长度(即个数)。

  参考实例:

  var

  nLen1, nLen2: Integer; // 用于保存字符串长度

  begin

    nLen1 := Length('CPCW');

  nLen2 := Length('电脑报');

  end;

  执行结果,nLen1等于4,nLen2等于6。由于一个汉字相当于两个字符的长度,所以3个汉字的长度为6。

  8.Low
  功能说明:返回数组下标的最小值。

  参考实例:

  var

    arrText: array[1..9] of Char;

    i: Integer;

  begin

    i:= High(arrText); // i的值则为1

  end;

  9.LowerCase
  功能说明:将字符(串)中的英文字符转换为小写。

  参考实例:

  var

    S, A: String;

  beginhttp://www.16sheji8.cn/

    S := 'ABC';

    A := UpperCase(S); // 经过UpperCase函数转换后,A则等于abc。

  end;

  10.MidStr(所在单元:StrUtils)
  功能说明:返回指定范围内的字符串。该函数有三个参数。第一个参数为源字符串,第二个参数为起点,第三个参数为结束点。通过第二、第三个参数则可指定要复制字符串的范围。

  Copy函数与此函数类似。MidStr主要用于处理含有中文字符的字符串。

  参考实例:

  var

    S: String;

    H: String;

  begin

    S := MidStr('China', 1, 2); // S变量为Ch

    H := MidStr('电脑报', 1, 1); // H变量为“电”。如果使用Copy函数,则应是H := Copy('电脑报, 1, 2),否则返回的将不是“电”字。因此在使用操作含有中文的字符串时,最好使用MidStr。

  end;

  11.Pos
  功能说明:查找字符(串)所在位置。该函数有二个参数。第一个参数为要查找的字符(串),第二个参数为被查找字符(串)。

  参考实例:

  var

    nPos: Integer; // 用于保存查找的字符所在位置

  begin

    nPos := Pos('Like', 'I Like Reading!');

  end;http://www.16sheji8.cn/

  此时nPos等于3。如果没有查找到,则nPos为0。

  注意:Pos函数在查找时是要区分字符大小的。如果要实现不区分大小,那么需要使用UpperCase或LowerCase函数将两个参数的字符(串)转换为“大写”或“小写”再进行查找。

  另外还有一个查找字符(串)的函数----AnsiPos,该函数的使用方法与Pos函数完全一样。当你查找的是汉字时,最好使用AnsiPos函数。

  12.RightStr(所在单元:StrUtils)
  功能说明:返回字符串右边指定个数的新字符(串)。该函数有两个参数。第一个参数为完整的字符串,第二个参数为指定个数

  参考实例:

  var

    S, A: String;

  begin

    S := 'MSN Messenger';

    A := RightStr(S, 3); // 从最右边开始,获取右边的三个字符。因此A变量则等于ger。

  end;

  13.SetLength
  功能说明:设置字符串或动态数组长度。该函数有两个参数。第一个参数为要设置的字符串变量或动态数组变量,第二个参数为指定的长度,其取值范围在0到255之间。

  参考实例:

  var

    S: String;

    arrText: array of Char; // 定义一个动态数组

  begin

    SetLength(S, 10); // 当设置后,S变量只能赋值长度为10的字符串。

    SetLength(arrText, 10); // 只有使用SetLength为动态数组分配内存空间后才能使用动态数组。这句代码的作用相当于arrText: array[0..9] of Char

  end;

  14.StrPCopy
  功能说明:将字符串复制到字符数组中。该函数有两个参数。第一个参数为“目标数组”,第二个参数为“字符串”。

  参考实例:
  var
    arrChar: array[0..255] of Char; // 这里声明了长度为256的Char型数组
  begin
    StrPCopy(arrChar, 'Come on, baby!');
  end;
  15.Trimhttp://www.16sheji8.cn/
  功能说明:删除字符串左右两边的空格(无论左右两边有多少个空格均被全部删除)。
  参考实例:
  var

    S: String;

  begin

    S := ' Delphi 7.0 ';

    S := Trim(S);

  end;

  16.TrimLeft
  功能说明:删除字符串左边的空格(无论左边有多少个空格均被全部删除)。

  参考实例:

    S := TrimLeft(' Delphi');

  17.TrimRight
  功能说明:删除字符串左边的空格(无论左边有多少个空格均被全部删除)。

  参考实例:
    S := TrimRight('Delphi ');
  18.UpperCase
  功能说明:将字符(串)中的英文字符转换为大写。

  参考实例:
  var
    S, A: String;
  begin
    S := 'abc';
    A := UpperCase(S); // 经过UpperCase函数转换后,A则等于ABC。

  end;

得到WINDOWS的SYSTEM路径:
   方法:
            var
                 MySysPath : PCHAR ;
            begin
                    GetMem(MySysPath,255);
                    GetSystemDirectory(MySysPath,255);
            end;
   注:MySysPath为SYSTEM路径

得到程序的路径
 ExtractFileDir(Application.Exename);

察看文件是否存在
 FileExists(FileName:String):Boolean;

改变文件扩展名
 ChangeFileExt(FileName:String)

得到文件的扩展名
 ExtractFileExt(FileName:String):String;

如何取得Windows的临时文件目录?
适合版本:Delphi 3,2.0,1.0

Windows 95 & NT都指定了放置临时文件的目录,然而,用户能改变临时目录的位置而不使用缺省的目录。这篇文章的目的是告诉你如何得到Windows 95 & NT当前的临时目录位置。这个Windows API函数 GetTempPath就是解决这个问题的。其函数原形为:

DWORD GetTempPath(DWORD nBufferLength, LPTSTR lpBuffer);

下面的例子示范如何使用:

function GetTempDirectory: String;
var
TempDir: array[0..255] of Char;
begin
GetTempPath(255, @TempDir);
Result := StrPas(TempDir);
end;

备注:临时目录的确定原则:
1,如果有TMP环境变量则临时目录为TMP指定的目录
2,如果没有TMP环境变量而有TEMP环境变量,则为TEMP变量指定的目录
3,如果TMP和TEMP都没有定义,则取当前目录为临时目录

程序不出现在任务栏
  一般Windows 95运行程序时都会在任务栏上出现按钮,如果你的程序是一个监视程序,那么出现按钮就不是明智之举了。要实现该功能就要在OnCreate事件里利用到API函数SetWindowLonghttp://www.16sheji8.cn/
procedure TForm1.FormCreate(sender:TObject);
begin
SetWindowLong(Application,Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
end;

改计算机名

改变计算机在网络中的名字,重新启动后才生效
SetComputerName('Hello World');

控制热启动
要使系统的热启动键(Ctrl+Alt+Del)失效,使用以下语句
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, 0, 0);
要恢复系统的热启动键(Ctrl+Alt+Del),使用以下语句
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, 0, 0);

临时路径
有时需要Windows的临时路径来做备份等工作,那么就要知道路径在哪,下面的程序帮你忙:
var aa:pchar;
begin
GetTempPath(20,aa); file://返回路径名
edit1.text:=aa;
end;

返回程序执行参数
  有关 Delphi 传入应用程式的命令列参数, 请参考以下的说明:
用ParamCount函数取得命令参数的个数:
呼叫 ParamStr(0), 传回执行档的档名(含路径)
呼叫 ParamStr(n), 传回第n个参数的内容
procedure TForm1.FormCreate(Sender: TObject);
var
sFileName: string;
begin
if ParamCount > 0 then begin (* 有执行参数传入 *)
sFileName := ParamStr(1); (* 取得参数内容 *)
if FileExists(sFileName) then
Memo1.Lines.LoadFromFile(sFileName)
else
Application.MessageBox('找不到指定的档案', '讯息', 48);
end;
end;

关闭Windows
控制WINDOWS的开关:如关闭WINDOWS,重新启动WINDOWS等, ExitWindowsEx(UINT uFlags,DWORD dwReserved);是实现这一功能的API函数
首先定义常数
const
EWX_FORCE=4; file://关闭所有程序并以其他用户身份登录
EWX_LOGOFF=0; file://重新启动计算机并切换到MS-DOS方式
EWX_REBOOT=2; file://重新启动计算机
EWX_SHUTDOWN=1;//关闭计算机
运行时给How赋值,让他等于EWX_SHUTDOWN或其他,调用以下语句
ExitWindowsEx(How,0);

关闭外部应用程序
如何在 Delphi 应用程序中, 去关闭外部已开启的应用程序?
下面给出一段在 Delphi 中关闭"计算器"程序为例:
var
HWndCalculator : HWnd;
begin
// find the exist calculator window
HWndCalculator := Winprocs.FindWindow(nil, '计算器'); // close the exist Calculator
if HWndCalculator <> 0 then
SendMessage(HWndCalculator, WM_CLOSE, 0, 0);
end;

得到执行程序的目录
  SysUtils 单元中有 ExtractFileDir 与 ExtractFilePath两个类似的函数, 用哪一个?没有太大的关系。
  不过有以下的差别: ExtractFilePath 传回值的最後一个字元是反斜杠"/"。
procedure TForm1.Button1Click(Sender: TObject);
beginhttp://www.16sheji8.cn/
ShowMessage(ExtractFileDir(Application.Exename));
// ie: c:\temp
ShowMessage(ExtractFilePath(Application.Exename));
// ie: c:\temp\
end;
相同点: 如果执行文件在根目录下(如:C:\SAMPLE.EXE)的话, 两者的传回值相同, 且最后一个字符都是"/"。

使用GetFileVersionInfo 得到版本信息的例子 
Samples Using GetFileVersionInfo?
回答1:
 procedure GetBuildInfo(var V1, V2, V3, V4: Word);
 var
   VerInfoSize: DWORD;
   VerInfo: Pointer;
   VerValueSize: DWORD;
   VerValue: PVSFixedFileInfo;
   Dummy: DWORD;
 begin
 VerInfoSize := GetFileVersionInfoSize(PChar(ParamStr(0)), Dummy);
 GetMem(VerInfo, VerInfoSize);
 GetFileVersionInfo(PChar(ParamStr(0)), 0, VerInfoSize, VerInfo);
 VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize);
 with VerValue^ do
   begin
   V1 := dwFileVersionMS shr 16;
   V2 := dwFileVersionMS and $FFFF;
   V3 := dwFileVersionLS shr 16;
   V4 := dwFileVersionLS and $FFFF;
   end;
 FreeMem(VerInfo, VerInfoSize);
 end;http://www.16sheji8.cn/

 

  全套毕业设计论文现成成品资料请咨询微信号:biyezuopin QQ:2922748026     返回首页 如转载请注明来源于www.biyezuopin.vip  

                 

打印本页 | 关闭窗口
 上一篇文章:暂时没有
本类最新文章
苗系统虚拟机 混合动力汽车电池文献检索摘要及英 行星齿轮变速箱的分析方法
移动应用开发实训指导书 板材的的等径角挤压 悬架的机械设计对动态加载过程的影
| 关于我们 | 友情链接 | 毕业设计招聘 |

Email:biyeshejiba@163.com 微信号:biyezuopin QQ:2922748026  
本站毕业设计毕业论文资料均属原创者所有,仅供学习交流之用,请勿转载并做其他非法用途.如有侵犯您的版权有损您的利益,请联系我们会立即改正或删除有关内容!