delphi常用代码.docx

上传人:b****2 文档编号:12632753 上传时间:2023-04-21 格式:DOCX 页数:75 大小:53.99KB
下载 相关 举报
delphi常用代码.docx_第1页
第1页 / 共75页
delphi常用代码.docx_第2页
第2页 / 共75页
delphi常用代码.docx_第3页
第3页 / 共75页
delphi常用代码.docx_第4页
第4页 / 共75页
delphi常用代码.docx_第5页
第5页 / 共75页
点击查看更多>>
下载资源
资源描述

delphi常用代码.docx

《delphi常用代码.docx》由会员分享,可在线阅读,更多相关《delphi常用代码.docx(75页珍藏版)》请在冰豆网上搜索。

delphi常用代码.docx

delphi常用代码

Delphi常用代码汇总

◇[DELPHI]网络邻居复制文件

usesshellapi;

copyfile(pchar('newfile.txt'),pchar('//computername/direction/targer.txt'),false);

◇[DELPHI]产生鼠标拖动效果

通过MouseMove事件、DragOver事件、EndDrag事件实现,例如在PANEL上的LABEL:

varxpanel,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目录

usesshellapi;

varwindir:

array[0..255]ofchar;

getwindowsdirectory(windir,sizeof(windir));

或者从注册表中读取,位置:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion

SystemRoot键,取得如:

C:

\WINDOWS

◇[DELPHI]在form或其他容器上画线

varx,y:

array[0..50]ofinteger;

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]字符串列表使用

vartips:

tstringlist;

tips:

=tstringlist.create;

tips.loadfromfile('filename.txt');

edit1.text:

=tips[0];

tips.add('lastlineadditionstring');

tips.insert(1,'insertstringatNO2line');

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(attrandfaReadonly)=faReadonlythen...//只读

if(attrandfaSysfile)=faSysfilethen...//系统

if(attrandfaArchive)=faArchivethen...//存档

if(attrandfaHidden)=faHiddenthen...//隐藏

◇[DELPHI]执行程序外文件

WINEXEC//调用可执行文件

winexec('/ccopy*.*c:

\',SW_Normal);

winexec('startabc.txt');

ShellExecute或ShellExecuteEx//启动文件关联程序

functionexecutefile(constfilename,params,defaultDir:

string;showCmd:

integer):

THandle;

ExecuteFile('C:

\abc\a.txt','x.abc','c:

\abc\',0);

ExecuteFile('','','',0);

ExecuteFile('mailto:

tingweb@','','',0);

◇[DELPHI]取得系统运行的进程名

varhCurrentWindow:

HWnd;szText:

array[0..254]ofchar;

begin

hCurrentWindow:

=Getwindow(handle,GW_HWndFrist);

whilehCurrentWindow<>0do

begin

ifGetwindowtext(hcurrnetwindow,@sztext,255)>0thenlistbox1.items.add(strpas(@sztext));

hCurrentWindow:

=Getwindow(hCurrentwindow,GW_HWndNext);

end;

end;

◇[DELPHI]关于汇编的嵌入

AsmEnd;

可以任意修改EAX、ECX、EDX;不能修改ESI、EDI、ESP、EBP、EBX。

◇[DELPHI]关于类型转换函数

FloatToStr//浮点转字符串

FloatToStrF//带格式的浮点转字符串

IntToHex//整数转16进制

TimeToStr

DateToStr

DateTimeToStr

FmtStr//按指定格式输出字符串

formatDateTime('YYYY-MM-DD,hh-mm-ss',DATE);

◇[DELPHI]字符串的过程和函数

Insert(obj,target,pos);//字符串target插入在pos的位置。

如插入结果大于target最大长度,多出字符将被截掉。

如Pos在255以外,会产生运行错。

例如,st:

='Brian',则Insert('OK',st,2)会使st变为'BrOKian'。

Delete(st,pos,Num);//从st串中的pos(整型)位置开始删去个数为Num(整型)个字符的子字串。

例如,st:

='Brian',则Delete(st,3,2)将变为Brn。

Str(value,st);//将数值value(整型或实型)转换成字符串放在st中。

例如,a=2.5E4时,则str(a:

10,st)将使st的值为'25000'。

Val(st,var,code);//把字符串表达式st转换为对应整型或实型数值,存放在var中。

St必须是一个表示数值的字符串,并符合数值常数的规则。

在转换过程中,如果没有检测出错误,变量code置为0,否则置为第一个出错字符的位置。

例如,st:

=25.4E3,x是一个实型变量,则val(st,x,code)将使X值为25400,code值为0。

Copy(st.pos.num);//返回st串中一个位置pos(整型)处开始的,含有num(整型)个字符的子串。

如果pos大于st字符串的长度,那就会返回一个空串,如果pos在255以外,会引起运行错误。

例如,st:

='Brian',则Copy(st,2,2)返回'ri'。

Concat(st1,st2,st3……,stn);//把所有自变量表示出的字符串按所给出的顺序连接起来,并返回连接后的值。

如果结果的长度255,将产生运行错误。

例如,st1:

='Brian',st2:

='',st3:

='Wilfred',则Concat(st1,st2,st3)返回'BrianWilfred'。

Length(st);//返回字符串表达式st的长度。

例如,st:

='Brian',则Length(st)返回值为5。

Pos(obj,target);//返回字符串obj在目标字符串target的第一次出现的位置,如果target没有匹配的串,Pos函数的返回值为0。

例如,target:

='BrianWilfred',则Pos('Wil',target)的返回值是7,Pos('hurbet',target)的返回值是0。

◇[DELPHI]关于处理注册表

usesRegistry;

varreg:

Tregistry;

reg:

=Tregistry.create;

reg.rootkey:

='HKey_Current_User';

reg.openkey('ControlPanel\Desktop',false);

reg.WriteString('TitleWallpaper','0');

reg.writeString('Wallpaper',filelistbox1.filename);

reg.closereg;

reg.free;

◇[DELPHI]关于键盘常量名

VK_BACK/VK_TAB/VK_RETURN/VK_SHIFT/VK_CONTROL/VK_MENU/VK_PAUSE/VK_ESCAPE

/VK_SPACE/VK_LEFT/VK_RIGHT/VK_UP/VK_DOWN

F1--F12:

$70(112)--$7B(123)

A-Z:

$41(65)--$5A(90)

0-9:

$30(48)--$39(57)

◇[DELPHI]初步判断程序母语

DELPHI软件的DOS提示:

ThisProgramMustBeRunUnderWin32.

VC++软件的DOS提示:

ThisProgramCannotBeRunInDOSMode.

◇[DELPHI]操作Cookie

response.cookies("name").domain:

='';

withresponse.cookies.adddo

begin

name:

='username';

value:

='username';

end

◇[DELPHI]增加到文档菜单连接

usesshellapi,shlOBJ;

shAddToRecentDocs(shArd_path,pchar(filepath));//增加连接

shAddToRecentDocs(shArd_path,nil);//清空

◇[杂类]备份智能ABC输入法词库

windows\system\user.rem

windows\system\tmmr.rem

◇[DELPHI]判断鼠标按键

ifGetAsyncKeyState(VK_LButton)<>0then...//左键

ifGetAsyncKeyState(VK_MButton)<>0then...//中键

ifGetAsyncKeyState(VK_RButton)<>0then...//右键

◇[DELPHI]设置窗体的最大显示

onformCreate事件

self.width:

=screen.width;

self.height:

=screen.height;

◇[DELPHI]按键接受消息

OnCreate事件中处理:

Application.OnMessage:

=MyOnMessage;

procedureTform1.MyOnMessage(varMSG:

TMSG;varHandle:

Boolean);

begin

ifmsg.message=256then...//ANY键

ifmsg.message=112then...//F1

ifmsg.message=113then...//F2

end;

◇[杂类]隐藏共享文件夹

共享效果:

可访问,但不可见(在资源管理、网络邻居中)

取共享名为:

direction$

访问:

//computer/dirction/

◇[JavaScript]JavaScript网页常用效果

网页60秒定时关闭

--

settimeout('window.close();',60000)

-->

关闭窗口

关闭

定时转URL

设为首页

设为首页

收藏本站

window.external.addfavorite('','[未名码头]')">收藏本站

加入频道

window.external.addchannel('')">加入频道

◇[DELPHI]随机产生文本色

randomize;//随机种子

memo1.font.color:

=rgb(random(255),random(255),random(255));

◇[DELPHI]DELPHI5UPDATE升级补丁序列号

1000003185

90X25fx0

◇[DELPHI]文件名的非法字符过滤

fori:

=1tolength(s)do

ifs[i]in['\','/',':

','*','?

','<','>','|']then

◇[DELPHI]转换函数的定义及说明

datetimetofiledate(datetime:

Tdatetime):

longint;将Tdatetime格式的日期时间值转换成DOS格式的日期时间值

datetimetostr(datetime:

Tdatetime):

string;将Tdatatime格式变量转换成字符串,如果datetime参数不包含日期值,返回字符串日期显示成为00/00/00,如果datetime参数中没有时间值,返回字符串中的时间部分显示成为00:

00:

00AM

datetimetostring(varresultstring;

constformat:

string;

datetime:

Tdatetime);根据给定的格式字符串转换时间和日期值,result为结果字符串,format为转换格式字符串,datetime为日期时间值

datetostr(date:

Tdatetime)使用shortdateformat全局变量定义的格式字符串将date参数转换成对应的字符串

floattodecimal(varresult:

Tfloatrec;value:

extended;precision,decimals:

integer);将浮点数转换成十进制表示

floattostr(value:

extended):

string将浮点数value转换成字符串格式,该转换使用普通数字格式,转换的有效位数为15位。

floattotext(buffer:

pchar;value:

extended;

format:

Tfloatformat;precision,

digits:

integer):

integer;用给定的格式、精度和小数将浮点值value转换成十进制表示形式,转换结果存放于buffer参数中,函数返回值为存储到buffer中的字符位数,buffer是非0结果的字符串缓冲区。

floattotextfmt(buffer:

pchar;value:

extended;

format:

pchar):

integer用给定的格式将浮点值value转换成十进制表示形式,转换结果存放于buffer参数中,函数返回值为存储到buffer中的字符位数。

inttohex(value:

longint;digits:

integer):

string;将给定的数值value转换成十六进制的字符串。

参数digits给出转换结果字符串包含的数字位数。

inttostr(value:

longint):

string将整数转换成十进制形式字符串

strtodate(constS:

string):

Tdatetime将字符串转换成日期值,S必须包含一个合法的格式日期的字符串。

strtodatetime(constS:

string):

Tdatetime将字符串S转换成日期时间格式,S必须具有MM/DD/YYHH:

MM:

SS[AM|PM]格式,其中日期和时间分隔符与系统时期时间常量设置相关。

如果没有指定AM或PM信息,表示使用24小时制。

strtofloat(constS:

string):

extended;将给定的字符串转换成浮点数,字符串具有如下格式:

[+|-]nnn…[.]nnn…[<+|-><+|->nnnn]

strtoint(constS:

string):

longint将数字字符串转换成整数,字符串可以是十进制或十六进制格式,如果字符串不是一个合法的数字字符串,系统发生ECONVERTERROR异常

strtointdef(constS:

string;default:

longint):

longint;将字符串S转换成数字,如果不能将S转换成数字,strtointdef函数返回参数default的值。

strtotime(constS:

string):

Tdatetime将字符串S转换成TDATETIME值,S具有HH:

MM:

SS[AM|PM]格式,实际的格式与系统的时间相关的全局变量有关。

timetostr(time:

Tdatetime):

string;将参数TIME转换成字符串。

转换结果字符串的格式与系统的时间相关常量的设置有关。

◇[DELPHI]程序不出现在ALT+CTRL+DEL

在implementation后添加声明:

functionRegisterServiceProcess(dwProcessID,dwType:

Integer):

Integer;stdcall;external'KERNEL32.DLL';

RegisterServiceProcess(GetCurrentProcessID,1);//隐藏

RegisterServiceProcess(GetCurrentProcessID,0);//显示

用ALT+DEL+CTRL看不见

◇[DELPHI]程序不出现在任务栏

useswindows

var

Extendedstyle:

Integer;

begin

Application.Initialize;

//==============================================================

Extendedstyle:

=GetWindowLong(Application.Handle,GWL_EXstyle);

SetWindowLong(Application.Handle,GWL_EXstyle,ExtendedstyleORWS_EX_TOOLWINDOW

ANDNOTWS_EX_APPWINDOW);

//===============================================================

Application.Createform(Tform1,form1);

Application.Run;

end.

◇[DELPHI]如何判断拨号网络是开还是关

ifGetSystemMetrics(SM_NETWORK)AND$01=$01then

showmessage('在线!

')

elseshowmessage('不在线!

');

◇[DELPHI]实现IP到域名的转换

functionGetDomainName(Ip:

string):

string;

var

pH:

PHostent;

data:

twsadata;

ii:

dword;

begin

WSAStartup($101,Data);

ii:

=inet_addr(pchar(ip));

pH:

=gethostbyaddr(@ii,sizeof(ii),PF_INET);

if(ph<>nil)then

result:

=pH.h_name

else

result:

='';

WSACleanup;

end;

◇[DELPHI]处理“右键菜单”方法

var

reg:

TRegistry;

begin

reg:

=TRegistry.Create;

reg.RootKey:

=HKEY_CLASSES_ROOT;

reg.OpenKey('*\shell\check\command',true);

reg.WriteString('','"'+application.ExeName+'""%1"');

reg.CloseKey;

reg.OpenKey('*\shell\diary',false);

reg.WriteString('','操作(&C)');

reg.CloseKey;

reg.Free;

showmessage('DONE!

');

end;

◇[DELPHI]发送虚拟键值ctrlV

proceduresendpaste;

begin

keybd_event(VK_Control,MapVirtualKey(VK_Control,0),0,0);

keybd_event(ord('V'),MapVirtualKey(ord('V'),0),0,0);

keybd_event(ord('V'),MapVirtualKey(ord('V'),0),KEYEVENTF_KEYUP,0);

keybd_event(VK_Control,MapVirtualKey(VK_Control,0),KEYEVENTF_KEYUP,

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

当前位置:首页 > IT计算机

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

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