Delphi 组件使用及其代码.docx

上传人:b****5 文档编号:28632021 上传时间:2023-07-19 格式:DOCX 页数:26 大小:59.10KB
下载 相关 举报
Delphi 组件使用及其代码.docx_第1页
第1页 / 共26页
Delphi 组件使用及其代码.docx_第2页
第2页 / 共26页
Delphi 组件使用及其代码.docx_第3页
第3页 / 共26页
Delphi 组件使用及其代码.docx_第4页
第4页 / 共26页
Delphi 组件使用及其代码.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

Delphi 组件使用及其代码.docx

《Delphi 组件使用及其代码.docx》由会员分享,可在线阅读,更多相关《Delphi 组件使用及其代码.docx(26页珍藏版)》请在冰豆网上搜索。

Delphi 组件使用及其代码.docx

Delphi组件使用及其代码

Delphi组件使用及其代码

1.数组定义

(1)一维数组数组名:

array[n1..n2]of数据类型;

(2)二维数组数组名:

array[n1..n2,m1..m2]of数据类型;

或者数组名:

array[n1..n2]ofarray[m1..m2]of数据类型;

(3)动态数组数组名:

arrayof数据类型;

使用前要用SetLength(数组名,数组长度);来动态申请空间。

2.使用math数学函数:

需要在uses引用里面添加math;

其中power(a,b)函数是求a的b次幂。

RandomRange(a,b)函数是随机产生一个a、b之间的数。

3.声明全局变量

需要在implementation之后声明;

初始化格式需要在最后一个end之后:

语句:

initialization

赋值语句;

4.常量

在var后使用const关键字声明常量:

如constPI=3.14;

5.枚举类型使用

声明:

type枚举类型名=(枚举值1,枚举值2,……);

定义:

var变量名:

枚举类型名;

6.指针类型

(1)@运算符:

放在变量的前面,获得变量的地址;

^运算符:

放在指针变量的后面,取得该指针变量中所存放地址变量的数据;

(2)声明:

type指针类型名=^数据类型;

var指针变量名:

指针类型名;

或者var指针变量名:

^数据类型;

7.日期时间函数

functionNow:

TDateTime;//返回系统当前日期和时间

functionDate:

TDateTime;//返回系统当前日期

functionTime:

TDateTime;//返回系统当前时间

functionDateTimeToStr(DateTime:

TDateTime):

string;//将日期时间数据转换为字符串

functionStrToDateTime(consts:

string):

TDateTime;//将字符串转换为日期时间数据

functionDateToStr(DateTime:

TDateTime):

string;//将日期数据转换为字符串

functionTimeToStr(DateTime:

TDateTime):

string;//将时间数据转换为字符串

functionFormatDateTime(constFormat:

string;DateTime:

TDateTime):

string;//按指定格式输出日期时间

例如:

formatDatetime(‘yyyy-mm-dd’,now);formatDatetime(‘hh:

mm:

ss’,now);

8.自定义过程

(1)在type下声明:

procedure<过程名>(<参数列表>);

(2)将光标移动定位在过程声明中,按Ctrl+Shift+C,实现自动生成部分过程框架。

procedure<过程名>(<参数列表>)

<局部变量声明>;

begin

<过程体语句>;

end;

(3)自定义过程的调用:

过程名(<实参表>);

9.自定义函数

(1)函数不用声明;

(2)function<函数名>[(<参数列表>)]:

<返回类型>;

<局部变量声明>;

begin

<函数语句>;

end;

(3)自定义函数的调用:

函数名(实参表);

10.对话框函数MessageDlg

(1)<变量>:

=MessageDlg(‘信息内容’,类型,[按钮组],HelpCex);

(2)类型:

mtWarning含有感叹号符号的警告对话框

mtError含有红色差号符号的错误对话框

mtInformation含有蓝色i符号的信息对话框

mtConfirmation含有蓝色?

符号的确认对话框

mtCustom不含图标的一般对话框,对话框的标题是程序的名称

按钮组:

mbYesYes按钮,函数返回mrYes或6

mbNoNo按钮,函数返回mrNo或7

mbOkOk按钮,函数返回mrOk或1

mbCancelCancel按钮,函数返回mrCancel或2

mbHelpHelp按钮

mbAbortAbort按钮,函数返回mrAbort或3

mbRetryRetry按钮,函数返回mrRetry或4

mbIgnoreIgnore按钮,函数返回mrIgnore或5

mbAllAll按钮,函数返回mrAll或8

mbNoToAllNoToAll按钮,函数返回mrNoToAll或9

mbYesToAllYesToAll按钮,函数返回mrYesToAll或10

HelpCtx指定当用户单击“Help”按钮或键时,现实的帮助主题。

例如:

ifMessageDlg('您确定要关闭窗口吗?

',mtConfirmation,[mbYes,mbNo],0)=mryesthen

11..基本知识点

(1)if(keyin['0','1'..'9',#13,#8])then//判断按下的是否为数字键、回车键和退格键

#0表示没有任何内容

#32表示空格

(2)Delphi中Randomize方法用来随机初始化数据。

(3)Label的Transparent属性用来设置Label的显示方式是否透明显示。

(4)StringGrid属性Cells【A,B】,其中A控制列,B控制行。

(5)MessageBox显示消息:

MessageBox(句柄,消息,消息框名,类型)

例如:

MessageBox(0,PChar(‘你好’+edit1.text),‘欢迎你’,MB_OK)

MessageBox(0,PChar(‘你好’+edit1.text),‘提示’,MB_ICONASTERISKandMB_ICONINFORMATION)//提示框

MessageBox(0,PChar(‘密码不能为空!

’),‘警告’,MB_ICONEXCLAMATION)//警告框

12.制作闪现窗体

在Project->option中将闪现窗体设置为Availableforms,之后显示的主窗体设置为Auto-createforms,并在主窗体的form的create事件中加入以下代码:

(1)先声明一个闪现窗体的变量:

如About:

=TForm2;

主窗体代码:

About:

=TForm2.Create(Application);//生成闪现窗体

About.show;//显示闪现窗体

(2)闪现窗体加入一个Timer事件,并在Timer的Timer事件中加入下面代码:

close;//关闭窗体

Release;//释放变量

注意:

可用Timer的Interval控制闪现窗体出现的事件,以毫秒为单位。

13.SavaDialog组件

(1)过滤文件:

Filter

(2)保存文件默认后缀名DefaultExt属性填写后缀名,注意不要加‘.’;

(3)保存代码:

ifsavedialog1.Executethen

begin

memo1.Lines.SaveToFile(form1.SaveDialog1.FileName);

application.MessageBox('文件保存成功!

','提示!

',64);

end;

14.复制、移动文件

(1)复制文件

CopyFile('d:

\db\123.txt','f:

\db\123.txt',False);

WinExec('cmd/ccopyd:

\db\123.txtf:

\db\123.txt',0);

使用以上函数目标目录必须存在!

CopyFile(源文件路径,目标文件路径,False(存在覆盖)True(存在不覆盖));

(2)移动正在使用的文件

MoveFileEx(所要移动的文件路径(及文件名),目标文件的路径(和文件名),移动标记);

移动标记取值:

MOVEFILE_REPLACE_EXISTING=$00000001;//覆盖已经存在的文件,来源文件和目标不能在同一目录

MOVEFILE_COPY_ALLOWED=$00000002;//如果目标文件被移动到不同的卷上,则函数通过拷贝后删除来源文件的方法来模拟移动文件

MOVEFILE_DELAY_UNTIL_REBOOT=$00000004;//在系统重新启动后再执行移动操作,这个参数只能被拥有管理员权限或localsystem权限的程序使用,不能和MOVEFILE_COPY_ALLOWED一起使用。

MOVEFILE_WRITE_THROUGH=$00000008;//这个标记允许函数在执行完文件移动后才返回,否则不等文件移动完毕后就直接返回。

如果设置了MOVEFILE_DELAY_UNTIL_REBOOT标记,则MOVEFILE_WRITE_THROUGH标记将被忽略。

MOVEFILE_CREATE_HARDLINK=$00000010;//系统保留,以供将来使用。

MOVEFILE_FAIL_IF_NOT_TRACKABLE=$00000020;//如果来源文件为1个link文件,但是文件在移动后不能够被tracked,则函数执行失败。

如果目标文件在一个fat格式的文件系统上,则上述情况可以发生。

该参数不支持NT系统。

15.在系统菜单中添加菜单项

i:

=GetSystemMenu(Handle,False);//获取窗体的句柄

AppendMenu(i,MF_SEPARATOR,0,nil);//添加分割线

AppendMenu(i,MF_STRING,100,'我的菜单(&E)');//添加菜单项

16.创建和删除文件夹

DirectoryExists(路径);//判断文件夹是否存在

ForceDirectories(路径);//创建文件夹

mkdir(路径);//创建一个指定的目录

RmDir(路径);//删除文件夹

17.建立临时文件

functionGetTempFileName(建立临时文件路径,临时文件的前缀(识别前3位),用于建立临时文件的号码,返回建立的临时文件名称)

例如:

GetTempFileName(PChar(dir),'TEST',0,Temp);//生成临时文件名

18.把文件删除到回收站(注意:

需要引用shellAPI单元)

首先:

var

SHFile:

SHFILEOPSTRUCT;

withSHFiledo

begin

Wnd:

=0;//拥有者窗口句柄

wFunc:

=FO_DELETE;//文件操作功能,可选项FO_COPY、FO_DELETE、FO_MOVE、FO_RENAME

pFrom:

=PChar(DFile);//源文件

//pto目标文件

fFlags:

=FOF_ALLOWUNDO;//文件控制标志

//fAnyOperationsAborted用户是否中断操作

//hNameMapping指向一个SHNAMEMAPPING结构的指针

lpszProgressTitle:

='将文件删除到回收站';//进程标题

end;

SHFileOperation(SHFile);//删除文件,需要引用shellAPI单元

19.引用动态链接库(DLL文件使用)

(1)静态引用动态链接库

在implementation后

function名称():

Integer;stdcall;external'XX.dll';

(2)动态引用动态链接库

1)LoadLibrary函数用于载入指定的动态链接库,并将它映射到当期进程使用的地址空间。

函数原型如下:

HINSTANCELoadLibrary(LPCTSTRlpLibFileName);

lpLibFileName:

指定要载入的动态链接库的名称;

2)FreeLibrary函数用于释放那些由应用程序明确装载的DLL文件。

函数原型如下:

BOOLFreeLibrary(HMODULEhLibModule);

hLibModule:

要释放的一个库的句柄;

注意:

1个LoadLibrary函数对应1个FreeLibrary函数。

3)GetProcAddress函数用于获取DLL导出函数的地址,使用返回的函数指针调用DLL函数。

函数原型如下:

FARPROCGetProcAddress(HMODULEhModule,LPCSTRlpProcName);

hModule:

包含此函数的DLL模块的句柄;

lpProcName:

包含函数名以NULL结尾的字符串,或者是指定函数的序数值。

例子:

Tgetn=function:

pchar;stdcall;//在var前声明

procedureTForm1.Button1Click(Sender:

TObject);

var

onehandle:

THandle;

fun:

Tgetn;

begin

onehandle:

=loadlibrary('getname.dll');

try

ifonehandle<>0then

@fun:

=GetProcAddress(onehandle,'getnames');

ifnot(@fun=nil)then

label1.Caption:

=fun;

finally

freelibrary(onehandle);

end;

end;

20.清空回收站

首先定义常量:

const

HERB_NOCONFIRMATION=$00000001;

SHERB_NOPROGRESSUI=$00000002;

SHERB_NOSOUND=$00000004;

然后引入静态链接库:

(需要添加引用shellAPI单元)

functionSHEmptyRecycleBinA(Wnd:

HWND;str:

PChar;WRD:

DWORD):

Integer;stdcall;external'SHell32.dll';

最后:

SHEmptyRecycleBinA(application.handle,'',SHERB_NOCONFIRMATION+SHERB_NOPROGRESSUI+SHERB_NOSOUND);

21.FileListBox1.Items.Strings[i]用于得到FileListBox中指定的文件名。

22.更改目录

(1)GetDir(D:

Byte;varS:

string);//获取当前路径

D:

目标磁盘。

取值如下:

0:

default;1:

A;2:

B;3:

C;

S:

存储路径的字符串;

(2)ChDir(constS:

string);//改变当前路径

S:

改变后的路径

(3)ExtractFilePath(OpenDialog1.FileName);获取打开文件路径

ExtractFileName(OpenDialog1.FileName);获取打开的文件名

23.对ini文件进行操作(需要引用IniFiles单元)

新建ini文件

[PersionInfo]

Name=赵志勇

var

ini:

TIniFile;;

ini:

=TIniFile.Create(文件路径+'\文件名.ini');//打开ini文件

edit1.Text:

=ini.ReadString('PersionInfo','Name','赵志勇');//读取文件

ini.WriteString('PersionInfo','Name',Edit1.Text);//修改文件

读取或修改ini文件后都需要释放资源:

FreeAndNil(ini);

24.获取窗口文本

intGetWindowText(HWNDhwnd,LPTSTRlpString,intnMaxCount);

hwnd:

欲获取文字的窗口句柄

lpString:

预定义的一个缓冲区,至少有nMaxCount个字符大小。

nMaxCount:

lpString缓冲区的长度。

例如:

GetWindowText(H_Window,@text,255)

25.StrPas(字符串)函数

StrPas(字符串);//将零终止字符串转换为Pascal类型字符串。

26.在程序中调用.hlp文件

WinHelp(handle,path,命令参数,附加数据(与命令参数有关));

例如:

WinHelp(Self.Handle,PChar(dir+'\help.hlp'),HELP_CONTENTS,0);

27.获取硬盘序列号

BoolGetVolumeInformation(LPCSTRlpRootPathName,LPTSTRlpVolumeNameBuffer,

DWORDnVolumeNameSize,LPDWORDlpVolumeSerialNumber,

LPDWORDlpMaximumComponentLength,LPDWORDlpFileSystemFlags,

LPTSTRlpFileSystemNameBuffer,DWORDnFileSystemNameSize)

lpRootPathName:

欲获取信息卷的根路径;

lpVolumeNameBuffer:

用于装载卷名的一个字符串;(nil)

nVolumeNameSize:

lpVolumeNameBuffer字符串的长度;(sizeof())

lpVolumeSerialNumber:

用于装载磁盘卷序列号的变量;

lpMaximumComponentLength:

指定一个变量,用于装载文件名每一部分的长度;

lpFileSystemFlags:

用于装载一个或多个二进制位标志的长度;

lpFileSystemNameBuffer:

指定一个缓冲区,用于装载系统的名称;(nil)

nFileSystemNameSize:

lpFileSystemNameBuffer字符串的长度。

(0)

例如:

functionGet_HD_Serial(constDriverdir:

Char):

string;

var

nu:

DWORD;

vf:

DWORD;

volumeinfo:

array[0..MAX_PATH]ofChar;

V_n:

DWORD;

begin

GetVolumeInformation(PChar(Driverdir+':

\'),nil,SizeOf(volumeinfo),@V_n,nu,vf,nil,0);

Result:

=Format('V_S:

%8.0X',[V_n]);

end;

28.判断驱动器的类型

functionGetDriveType(lpRootPathName:

PChar):

UNIT;stdcall;

lpRootPathName:

驱动器盘符。

该函数返回一个整型标记符:

DRIVE_UNKNOWN(0):

驱动器盘符无效;

DRIVE_NO_ROOT_DIR

(1):

这不是一个有效的驱动器;

DRIVE_REMOVABLE

(2):

可移动驱动器;

DRIVE_FIXED(3):

不可移动(本地)驱动器;

DRIVE_REMOTE(4):

;网络(远程)驱动器;

DRIVE_CDROM(5):

;光盘驱动器;

DRIVE_RAMDISK(6):

RAM虚拟驱动器;

29.取消磁盘共享

使用DOS命令“NETSHARE盘符$/DEL”来实现;

functionWinExec(lpCmdLine:

LPCSTR;uCmdShow:

UNIT):

UNIT;stdcall;

lpCmdLine:

表示命令行;

uCmdShow:

表示是否显示窗口,如果为SW_Show将显示窗口,为SW_Hide隐藏窗口。

例如:

取消C盘共享:

inExec('cmd.exe/kNETSHAREC$/DEL',SW_SHOW);

30.检测驱动器容量

BOOLGetDiskFreeSpace(LPCTSTRlpRootPathName,LPDWORDlpSectorsPerCluster,

LPDWORDlpBytesPerSector,LPDWORDlpNumberOfFreeCluster,

LPDWORDlpTotalNumberOfClusters);

lpRootPathName:

不包括卷名的一个磁盘根路径;(C:

\)

lpSectorsPerCluster:

用于装载一个簇内扇区数的变量;(A)

lpBytesPerSector:

用于装载一个扇区内字节数的变量;(B)

lpNumberOfFreeCluster:

用于装载磁盘上剩余簇数的变量;(C)

lpTotalNumberOfClusters:

用于装载磁盘上总簇数的变量。

(D)

磁盘大小=A*B*D;磁盘剩余空间=A*B*C。

(单位:

B)

例如:

GetDiskFreeSpace(‘C:

\’,sec1,byt1,cl1,cl2);

31.格式化磁盘

需要先静态引用动态链接库:

functionformatdrive(hwnd:

HWND;drive:

Word;formatid:

Word;options:

Word):

LongIntstdcall;

external'shell32.dll'name'SHFormatDrive';

然后才可以使用。

functionFormatDrive(hwnd:

HWND;drive,formatid,options:

word):

longintstdcall;

hwnd:

调用该函数的窗口句柄;

drive:

格式化的目标磁盘,从0开始;

formatid:

格式化ID;

options:

格式化选项。

32.显示、隐藏鼠标

intShowCursor(BOOLbShow);

bShow:

该参数为True显示鼠标指针,False隐藏鼠标指针。

例如:

ShowCursor(False);//隐藏鼠标

ShowCursor(True);//显示鼠标

33.锁定计算机

LockWorkStation;//锁定计算机

34.检测系统启动模式

intGetSystemMetrics(intnIndex);//用于得到被定义的系统数据或者系统配置信息

nIndex取值:

SM_CLEANBOOT:

返回系统启动方式

返回值0:

正常启动

1:

安全模式启动

2:

网络安全模式启动

SM_CMOUSEBUTTONS:

返回值为系统支持的鼠标键数,返回0则表示系统没有安装鼠标。

35.设置桌面颜色

BOOLWINAPISetSysColors(intcElements,CONSTINT*lpaElements,CONSTCOLORREF*lpaRgbValues);

cElements:

欲改变对象的数量;

lpaElements:

按引用传递。

这是1个整数数组的第1个元素,每个条目都包含1个常数,指定一个Windows显示对象,可参考GetSysColor函数。

lpaRgbValues:

按引用传递。

这是RGB值数组的第一个元素。

该数组用于设置lpSysColor数组中的

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1