常用代码(Delphi 自我复制自我删除)
delphi代码

prestr:='';
mystr:='';
if instr='' then exit;
for i:=1 to length(instr) do
begin
if i<>1 then prestr:=copy(instr,i-1,1);
outstr:=outstr+chr(ord(midstr)-32)
else
if (midstr>='A') and (midstr<='Z') then
outstr:=outstr+chr(ord(midstr)+32)
mp:pchar;
midstr:array[0..1] of char; //1..1出错
begin
instr:=inputbox('输入','请输入您要转换的字符串','0');
outstr:='';
for i:=1 to length(instr) do
showmessagefmt('%s',[FormatDateTime('hh',now)]) ;
showmessagefmt('%s',[FormatDateTime('hhh',now)]) ;
showmessagefmt('%s',[FormatDateTime('hhhh',now)]) ;
showmessagefmt('%s',[FormatDateTime('e',now)]) ;
Delphi常用技巧自编函数库

常用技巧自编函数库(DELPHI){*******************************************************项目:离线式制卡系统模块:自定义函数模块描述:版本:1.0日期:作者:刘进雄邮箱:apollo@ & ljx@更新:*******************************************************}unit uCustomModule;interfaceusesWindows, Messages, Classes, Graphics, Controls, Forms, SysUtils,ExtCtrls, Dialogs, Buttons, Registry, FileCtrl, ShlObj, ShellAPI,jpeg, ActiveX, ComObj, MMSystem, MPlayer, StdCtrls, LZExpand;//_____________________________________________________________________// // //// Moudle index ////_____________________________________________________________________// {1. CustomCursor ................. 自定义光标2. ReadRegKey ................... 读注册表键值3. WriteRegKey .................. 写注册表键值4. GetExePath ................... 取应用程序路径5. GetParameter ................. 取配置文件参数6. RebootExpires ................ 让重新启动失效7. RebootRestore ................ 恢复重新启动功能8. CloseExpires ................. 使窗口关闭功能失效9. CloseRestore ................. 恢复窗口关闭功能10. HideDesktop ................. 隐藏桌面图标11. ShowDesktop ................. 显示桌面图标12. ChangeWallPaper ............. 更改墙纸13. myGetWindowsDirectory ....... 取Windows目录14. myGetSystemDirectory ........ 取系统目录15. myGetTempPath ............... 取临时路径16. myGetLogicalDrives .......... 取逻辑驱动器17. myGetUserName ............... 取用户名18. myGetComputerName ........... 取计算机名19. mySelectDirectory ........... 选择目录20. myClearDocument ............. 清除开始菜单我的文档内容21. SystemAbout ................. 调用系统关于对话框22. SelectDir ................... 选择目录23. HideFormOnTask .............. 在任务栏上隐藏窗口24. ConvertBMPtoJPG ............. 转化BMP格式为JPG25. ConvertJPGtoBMP ............. 转化JPG格式为BMP26. Replacing ................... 替换某一字符串27. SmallTOBig .................. 转化数字为大写中文(1 - 壹)28. CreateShortCut .............. 建立快捷方式29. myAddDocument ............... 增加文件到最近打开过的文档30. GetFileIcon ................. 取得文件图标31. GetCDROMNumber .............. 取CDROM序列号32. SetCDAutoRun ................ 设置光驱是否自动运行33. OpenCDROM ................... 打开光驱34. CloseCDROM .................. 关闭光驱35. GetDiskSizeAvail ............ 取磁盘所有字节数和剩余字节数36. GetDiskSize ................. 取磁盘所有字节数和剩余字节数37. SystemBarCall ............... 系统控制面板功能调用38. GetUserNameAPI .............. 取用户名(API方式)39. GetWindowsProductID ......... 取WINDOWS产品ID40. HideTaskbar ................. 隐藏任务栏41. ShowTaskbar ................. 显示任务栏42. MakeTree .................... 获取目录树43. CreateDsn ................... 建立DSN44. CnToPY ...................... 转化中文为拼音首字母45. AddIcoToIE .................. 增加应用程序图标到IE46. SetVolume ................... 设置磁盘卷标47. FormatFloppy ................ 格式化软盘48. IsAudioCD ................... 判断光驱中是否为CD盘49. PlayAudioCD ................. 播放CD盘50. DiskInDrive ................. 判断驱动器是否就绪51. CheckDriverType ............. 检查驱动器类型52. IsFileInUse ................. 判断文件是否在使用53. CopyDir ..................... 拷贝目录包含子目录54. DeleteDir (No use) .......... 删除目录包含子目录55. CreateTempFile .............. 建立临时文件56. SearchFile .................. 寻找文件57. GetProgramAssociation ....... 取得应用程序扩展58. myGetFileTime ............... 取文件建立时间59. SetFileDateTime ............. 设置文件时间60. GetFileLastAccessTime ....... 取文件最后访问时间61. CreateDirectory ............. 建立目录62. ChangeDirectory ............. 改变目录63. GetDirectory ................ 得到目录64. SetCurrentDirectory ......... 设置当前目录65. RenameDirOrFile ............. 更改目录或文件名66. CreateMultiDir .............. 建立多级目录67. DirExist .................... 判断目录是否存在68. ChangeFileExtension ......... 更改文件扩展名69. GetFileExtension ............ 取文件扩展名70. FileCopy1 ................... 文件拷贝71. FileCopy2 ................... 文件拷贝72. FileCopy3 ................... 文件拷贝73. SetFileAttribAPI ............ 设置文件属性(API方式)74. SetFileAttrib ............... 设置文件属性75. GetFilePath1 ................ 取得文件路径(有'\'结尾)76. GetFilePath2 ................ 取得文件路径(没有'\'结尾)77. CopyDelRenMovFile ........... 拷贝、删除、改名或移动文件78. GetPortUsed ................. 得到已被使用串口列表79. SetMediaAudioOff ............ 静音播放媒体文件80. SetMediaAudioOn ............. 打开媒体播放文件声音81. WaitExeFinish ............... 等待直到可执行文件执行完成}//_____________________________________________________________________// // //// Declare function and procedure ////_____________________________________________________________________// //-------------------------------////1. Custom application cursors//-------------------------------//{Function:The procedure will use custom cursors replace default cursorsParameter:objControl: Object nameiPosition: The cursors position which want to changeiMode: Object typesFilePath: New cursors file path will be loadingReturn value:NoneExample:CustomCursor(frmMain, 1, 1, 'C:\test1.ico');CustomCursor(imgPhoto, 2, 1, 'C:\test2.ico');CustomCursor(pnlRecord, 3, 1, 'C:\test3.ico');}procedure CustomCursor(const objControl: TObject;const iPosition,iMode: integer;const sFilePath: string);//-------------------------------////2. Read key from register//-------------------------------//{Function:The procedure's function is read register key valueParameter:iMode: Read value typesPath: Key pathsKeyName: Key nameReturn value:The key valueExample:ReadRegKey(1, '\Software\Microsoft\Windows\', 'Text'); ReadRegKey(2, '\Software\Microsoft\Windows\', 'Numeric');}function ReadRegKey(const iMode: integer; const sPath, sKeyName: string): string;//-------------------------------////3. Write key to regisiter//-------------------------------//{Function:Use the function to write the key and value into registry Parameter:iMode: Write value typesPath: Key pathsKeyName: Key namesKeyValue: Key value which will been writtenReturn value:Write result if successExample:WriteRegKey(1, '\Software\Microsoft\Windows\', 'Text', 'It's a test.'); WriteRegKey(2, '\Software\Microsoft\Windows\', 'Numeric', '1');}function WriteRegKey(const iMode: integer; const sPath, sKeyName, sKeyValue: string): Boolean;//-------------------------------////4. Get execute file path//-------------------------------//{Function:Obtain main execute file pathParameter:NullReturn value:Execute file pathExample:GetExePath();}function GetExePath(): string;//-------------------------------////5. Get configure file parameter//-------------------------------//{Function:Get execute file configure parameterParameter:FileName: Configure file nameReturn value:Configure parameter valueExample:GetParameter('C:\Configure.ini');}function GetParameter(const FileName: string): WideString; //-------------------------------////6. Set reboot expires(Alt+Ctrl+Del)//-------------------------------//{Function:Set computer reboot key expiresParameter:NullReturn value:NoneExample:RebootExpires();}procedure RebootExpires();//-------------------------------////7. Set reboot enabled restore(Alt+Ctrl+Del)//-------------------------------//{Function:Restore reboot enabledParameter:NullReturn value:NoneExample:RebootRestore();}procedure RebootRestore();//-------------------------------////8. Set close form expires//-------------------------------//{Function:Set close form key expiresParameter:NullReturn value:NoneExample:CloseExpires();}procedure CloseExpires();//-------------------------------////9. Set close form enabled restore//-------------------------------//{Function:Restore close form enabled Parameter:NullReturn value:NoneExample:CloseRestore();}procedure CloseRestore();//-------------------------------////10. Hide desktop's icons//-------------------------------//{Function:All of icons on desktop will been hidden Parameter:NullReturn value:NoneExample:HideDesktop();}procedure HideDesktop();//-------------------------------////11. Show desktop's items//-------------------------------//{Function:All of desktop's icons will been shown Parameter:NullReturn value:NoneExample:ShowDesktop();}procedure ShowDesktop();//-------------------------------////12. Change desktop wall paper//-------------------------------//{Function:Set desktop wall paper use user refer toParameter:sPath: Use this parameter to load a picture as wall paper Return value:false: Failtrue: SuccessExample:ChangeWallPaper('C:\wallpaper.bmp');}function ChangeWallPaper(const sPath: string): Boolean; //-------------------------------////13. Get windows directory//-------------------------------//{Function:Get windows directoryParameter:NullReturn value:Windows directory like 'C:\WINNT' or 'C:\Windows' etc. Example:myGetWindowsDirectory();}function myGetWindowsDirectory(): string;//-------------------------------////14. Get windows system directory//-------------------------------//{Function:Get windows system directoryParameter:NullReturn value:Windows system directory as 'C:\Winnt\System32' Example:myGetSystemDirectory()}function myGetSystemDirectory(): string;//-------------------------------////15. Get system temperory directory//-------------------------------//{Function:Get system temperory directoryParameter:NullReturn value:Temperory pathExample:myGetTempPath();}function myGetTempPath(): string;//-------------------------------////16. Get logical drives//-------------------------------//{Function:Use the function to get logical drives Parameter:NullReturn value:Drives value like 'ACD'Example:myGetLogicalDrives()}function myGetLogicalDrives(): string; //-------------------------------////17. Get login user name//-------------------------------//{Function:Get login user nameParameter:NullReturn value:User name which to login computer Example:myGetUserName()}function myGetUserName(): string;//-------------------------------////18. Get computer name//-------------------------------//{Function:Get computer nameParameter:NullReturn value:Computer nameExample:myGetComputerName()}function myGetComputerName(): string;//-------------------------------////19. Select directory//-------------------------------//{Function:Select directory where pointer toParameter:sDescription: The text show for usersPath: Start positionReturn value:What directory to been selectedExample:mySelectDirectory('Please select directory:', 'C:\');}function mySelectDirectory(const sDescription, sPath: string): string; //-------------------------------////20. Clear document//-------------------------------//{Function:Clear document that recently accessParameter:NullReturn value:NoneExample:myClearDocument()}procedure myClearDocument();//-------------------------------////21. Call system about dialog//-------------------------------//{Function:Call system about dialogParameter:sTitle: Infomation titlesContent: Infomation contentReturn value:NoneExample:SystemAbout('POS system', 'Use the system for check out');}procedure SystemAbout(const sTitle, sContent: string);//-------------------------------////22. Select directory or file//-------------------------------//{Function:Select directory or fileParameter:iMode: Meant select directory and file or only select directory Return value:Directory name or file nameExample:SelectDir(1, 'Please select file:');SelectDir(2, 'Please select directory:');}function SelectDir(const iMode: integer; const sInfo: string): string; //-------------------------------////23. Hide form on task//-------------------------------//{Function:Hide form on taskParameter:NullReturn value:NoneExample:HideFormOnTask();}//Note: The procedure must been called when the main from create procedure HideFormOnTask();//-------------------------------////24. Convert BMP to JPG//-------------------------------//{Function:Convert BMP to JPGParameter:sFileName: The bmp picture file what want to convert sToFileName: Converted file name and pathReturn value:NoneExample:ConvertBMPtoJPG('c:\a.bmp','d:\b');}procedure ConvertBMPtoJPG(const sFileName, sToFileName: string); //-------------------------------////25. Convert JPG to BMP//-------------------------------//{Function:Convert JPG to BMPParameter:sFileName: The jpg picture file what want to convert sToFileName: Converted file name and pathReturn value:NoneExample:ConvertJPGtoBMP('c:\a.jpg','d:\b');}procedure ConvertJPGtoBMP(const sFileName, sToFileName: string);//-------------------------------////26. Replace string in source//-------------------------------//{Function:Replace string in sourceParameter:S: String will been replacedsource: Source sub-stringtarget: Target sub-stringReturn value:Replaced resultExample:Replacing(sTest, 'LiuJinXiong', 'Apollo');}function Replacing(S, source, target: string): string;//-------------------------------////27. Change numeric to chinese string//-------------------------------//{Function:Change numeric to chinese stringParameter:small: Numeric what to be changediPosition: Reserved longReturn value:Result stringExample:SmallTOBig(12345.78, -2);}function SmallTOBig(const small: real; const iPosition: integer): string;//-------------------------------//{Function:Create a short cut on desktop for programParameter:sExePath: Files path and namesShortCutName: Short cut nameReturn value:NoneExample:CreateShortCut('D:\a.txt', '测试文件');}procedure CreateShortCut(const sPath: string; sShortCutName: WideString); //-------------------------------////29. Add file to document//-------------------------------//{Function:Add file to documentParameter:sPath: File path and nameReturn value:NoneExample:myAddDocument('C:\test.doc');}procedure myAddDocument(const sPath: string);//-------------------------------////30. Get files icon//-------------------------------//{Function:Get files iconParameter:Filename: File path which icon will been gottenSmallIcon: If true will get 16*16 size icon, false will get 32*32 size icon Return value:Icon's handleExample:frmTest.Icon.Handle := GetFileIcon('d:\test.doc', true);image1.Picture.Icon.Handle := GetFileIcon('d:\test.doc', false);}function GetFileIcon(const Filename: string; SmallIcon: Boolean): HICON;//-------------------------------////31.Get CDROM serial numberFunction:Get CDROM serial numberParameter:NullReturn value:CDROM serial numberExample:GetCDROMNumber();}function GetCDROMNumber(): string;//-------------------------------////32. Set CDROM auto run//-------------------------------//{Function:Set CDROM auto runParameter:AAutoRun: if true CDROM will autorun, or not autorun Return value:NoneExample:SetCDAutoRun(true); //AutorunSetCDAutoRun(false); //No autorun}procedure SetCDAutoRun(AAutoRun: Boolean);//-------------------------------////33. Open CDROM//-------------------------------//{Function:Open CDROMParameter:NullReturn value:NoneExample:OpenCDROM();}procedure OpenCDROM();//-------------------------------////34. Close CDROM//-------------------------------//{Function:Close CDROMReturn value:NoneExample:CloseCDROM();}procedure CloseCDROM();//-------------------------------////35. Get disk total bytes and total free//-------------------------------//{Function:Get disk total bytes and total freeParameter:TheDrive: What the disk to be totalTotalBytes: Total bytesTotalFree: Total freeReturn value:TotalBytes: Total bytesTotalFree: Total freeExample:varTotalBytes: double;TotalFree: double;beginGetDiskSizeAvail('c:\', TotalBytes, TotalFree);ShowMessage(FloatToStr(TotalBytes));ShowMessage(FloatToStr(TotalFree));}//Note: Total bytes bigger than 2Gprocedure GetDiskSizeAvail(TheDrive: PChar; var TotalBytes, TotalFree: double); //-------------------------------////36. Close CDROM//-------------------------------//{Function:Close CDROMParameter:NullReturn value:NoneExample:CloseCDROM();}procedure GetDiskSize(const sDriver: string; var TotalBytes, TotalFree: double); //-------------------------------//{Function:Close CDROMParameter:NullReturn value:NoneExample:CloseCDROM();}function SystemBarCall(const iNumber:integer):Boolean; //-------------------------------////38. Get user name//-------------------------------//{Function:Get user nameParameter:NullReturn value:User nameExample:GetUserName();}function GetUserNameAPI(): AnsiString;//-------------------------------////39. Get windows product ID//-------------------------------//{Function:Get windows product IDParameter:NullReturn value:Windows product IDExample:GetWindowsProductID();}function GetWindowsProductID(): string;//-------------------------------////40. Hide task bar//-------------------------------//{Function:Hide task barReturn value:NoneExample:HideTaskbar();}procedure HideTaskbar();//-------------------------------////41. Show task bar//-------------------------------//{Function:Show task barParameter:NullReturn value:NoneExample:ShowTaskbar();}procedure ShowTaskbar();//-------------------------------////42. Make folder tree//-------------------------------//{Function:Make folder tree then add to listParameter:iMode: Control type, 1 meant ListBox, 2 meant MemoobjName: Object nameReturn value:NoneExample:Memo1.Clear;ChDir(Edit1.Text);MakeTree(2, Memo1);-------------------ListXox1.Clear;ChDir(Edit1.Text);MakeTree(1, ListBox1);}procedure MakeTree(const iMode: integer; const objName: TObject); //-------------------------------////43. Create database DSN//-------------------------------//{Parameter:sDsnName: DSN namesDbPath: Database path and namesDescription: About database describeReturn value:True meant success, false meant failExample:CreateDsn('Apollotest', 'C:\apollo.mdb', 'apollo test dsn');}function CreateDsn(const sDsnName, sDbPath, sDescription: string): Boolean; //-------------------------------////44. Change Chinese to PinYin index//-------------------------------//{Function:Change Chinese to PinYin indexParameter:sChinese: A Chinsese stringReturn value:PinYin indexExample:edtLove.Text := CnToPY('我爱刘韵');}function CnToPY(const sChinese: string): string;//-------------------------------////45. Add program ico to IE//-------------------------------//{Function:Add program ico to IEParameter:sExePath: Execute program path and namesShowText: Show text when mouse move over itsIcon: Show iconssOverIcon: Show icons when the mouse move over itReturn value:true: Setup successfalse: Setup failExample:AddIcoToIE('c:\HUBDOG.CHM', '帮助文件', 'c:\1.ico', 'c:\2.ico');}procedure AddIcoToIE(const sExePath, sShowText, sIcon, sOverIcon: string); //-------------------------------////46. Set disk volume//-------------------------------//Set disk volumeParameter:sDriver: Which driver want to change volumesLabel: Volume labelReturn value:true: Successfalse: failExample:SetVolume('C:', 'System');}function SetVolume(const sDriver, sLabel: string): Boolean; //-------------------------------////47. Format floppy//-------------------------------//{Function:Format floppyParameter:NullReturn value:NoneExample:FormatFloppy();}function FormatFloppy(): Boolean;//-------------------------------////48. Judge if Audio CD in CDROM//-------------------------------//{Function:Judge if Audio CD in CDROMParameter:Drive: CDROMReturn value:true: Is Audio CDfalse: Isn't Audio CDExample:IsAudioCD('E');}function IsAudioCD(const Drive: Char): bool;//-------------------------------////49. Play Audio CD//-------------------------------//{Function:Drive: CDROMReturn value:true: Play okayfalse: Play failExample:PlayAudioCD('E');}function PlayAudioCD(const Drive: Char): bool;//-------------------------------////50. Check drive if ready//-------------------------------//{Function:Check drive if readyParameter:Drive: Floppy, Harddisk or CDROMReturn value:true: Okayfalse: No okayExample:DiskInDrive('A');}function DiskInDrive(Drive: Char): Boolean;//-------------------------------////51. Check driver type//-------------------------------//{Function:Check driver typeParameter:sDriver: DiskReturn value:Result about disk typeExample:CheckDriverType('A');}function CheckDriverType(const sDriver: string): string; //-------------------------------////52. Check file in use//-------------------------------//{Function:Check file in useParameter:fName: File namefalse: No in useExample:IsFileInUse('C:\a.doc');}function IsFileInUse(const fName: string): Boolean;//-------------------------------////53. Copy directory include sub-directory//-------------------------------//{Function:Copy directory include sub-directoryParameter:sDirName: Source directory namesToDirName: To directoryReturn value:true: Successfalse: failExample:CopyDir('C:\a', 'D:\b');}function CopyDir(const sDirName, sToDirName: string): Boolean; //-------------------------------////54. Close CDROM//-------------------------------//{Function:Close CDROMParameter:NullReturn value:NoneExample:CloseCDROM();}//function DeleteDir(const sDirName: string): Boolean;//-------------------------------////55. Create temporery file//-------------------------------//{Function:Create temporery fileParameter:sPath: The files pathReturn value:Created position}function CreateTempFile(const sPath: string): string;//-------------------------------////56. Find files//-------------------------------//{Function:Find filesParameter:mainpath: The path what want to findfilename: File namefoundresult: Find resultReturn value:true: Found the files and store the list in foundresultfalse: Not found the fileExample:vara: Tstrings;i: integer;begina := TStringList.Create;trySearchFile('c:\', 'bird.ico', a);edit1.text := inttostr(a.count);for i := 0 to a.Count - 1 dolistbox1.Items.Add(a.Strings[i]);finallya.Free;end;end;}function SearchFile(mainpath: string; filename: string; var foundresult: TStrings): Boolean; //-------------------------------////57. Get program extension//-------------------------------//{Function:Get program exetentionParameter:Ext: Extension name like 'ico','exe','gif' etc.Return value:Extension execute programExample:GetProgramAssociation('html');}function GetProgramAssociation(Ext: string): string;//58. Get file time//-------------------------------//{Function:Get file timeParameter:Tf: File nameReturn value:Date and timeExample:GetFileTime('C:\a.txt');}function myGetFileTime(const Tf: string): string;//-------------------------------////59. Set file date and time//-------------------------------//{Function:Set file date and timeParameter:Tf: File path and namedCreateDate: Create file datetCreateTime: Create file timedModifyDate: Create file datetModifyTime: Create file timeReturn value:NoneExample:SetFileDateTime('c:\a.txt',DateTimePicker1.Date,DateTimePicker2.Time,DateTimePicker3.Date,DateTimePicker4.Time) }function SetFileDateTime(const Tf: string; const dCreateDate, tCreateTime, dModifyDate, tModifyTime: TDateTime): Boolean;//-------------------------------////60. Get file last access time//-------------------------------//{Function:Get file last access timeParameter:FileName: File name and pathReturn value:Last access timeExample:GetFileLastAccessTime('C:\a.txt');}function GetFileLastAccessTime(const FileName: PChar): string;//-------------------------------////61. Create a empty directory//-------------------------------//{Function:Create a empty directoryParameter:sDirName: Directory nameReturn value:NoneExample:CreateDirectory('C:\apollo');}procedure CreateDirectory(const sDirName: string);//-------------------------------////62. Change directory//-------------------------------//{Function:Change directoryParameter:sPath: PathReturn value:NoneExample:ChangeDirectory('C:\apollo');}procedure ChangeDirectory(const sPath: string);//-------------------------------////63. Get a disk current directory//-------------------------------//{Function:Get a disk current directoryParameter:iDrive: Disk code with integer value as 0, 1, 2 meant default, A, B Return value:A var meant current directory in a diskExample:var s: string;GetDirectory(0, s);}procedure GetDirectory(const iDrive: integer; var sPath: string);//-------------------------------////64. Set current directory//-------------------------------//。
Delphi常用代码

function f_CreatRecDir(mmFS:Integer; mmTime:TDatetime):String;
//创建并返回录音文件目录 mmFS->0=客户留言 1=通话录音
var
mmDir : String;
begin
mmDir:='';
case mmFS of
if FindFirst(result ,FaAnyfile,mmF)<>0 then exit;
end;
end;
end;
begin
if gOrderBH>4000000000 then gOrderBH:=0;
gOrderBH:=gOrderBH+1;
result:='S'+trim(inttostr(gOrderBH));
end;
function f_StrFX(mmIVRStr:String):String; //分析一个字串,如123变换成1-2-3
Codesite.Send('Err:通道'+inttostr(mmTDH)+' TZM='+inttostr(mmTZM)+' '+mmMS);
end;
//返回指定路径下不重复的文件名
function fDifferFile(AFilePathName:String):String;
0: mmDir:=gLyDIR + formatdatetime('yyyymmdd',mmTime);
1: mmDir:=gRecDIR + formatdatetime('yyyymmdd',mmTime);
Delphi删除文件夹

Delphi删除文件夹1.既然是windows平台上, 就用shell API吧. 下面是一个例子: PHP 代码:uses ShellAPI;function DeleteDirectory(const sDir : string) : Boolean; varSHFileOpStruct : TSHFileOpStruct;FromBuf : Array [0..255] of Char;ToBuf : Array [0..255] of Char;begin//make sure the target directory existingif not DirectoryExists(sDir) thenbeginResult := False;exit;end;//Initialize SHFileOpStruct.Fillchar(SHFileOpStruct, Sizeof(SHFileOpStruct), 0); FillChar(FromBuf, Sizeof(FromBuf), 0);FillChar(T oBuf, Sizeof(T oBuf), 0);StrPCopy(FromBuf, sDir);StrPCopy(ToBuf, '');//Delete directory and all its subdirectory as well as files. //fill out the shell file operation struct.With SHFileOpStruct DoBeginWnd := 0;wFunc := FO_DELETE;pFrom := @FromBuf;pTo := @ToBuf;fFlags := FOF_ALLOWUNDO;fFlags := FOF_NOCONFIRMATION or FOF_SILENT;End;//execute the operation and return result.Result := (SHFileOperation(SHFileOpStruct) = 0);end;两点注意:1. 要应用shellapi2. SHFileOperation(...)可以执行copy, move, rename和delete 命令. file或folder/directory对它而言都是一个file object, 没有区别. 具体参数控制可参见MSDN.方法二方法三在uses中加入ShellApi自定义下过程procedure TForm1.Deletedir(str:string);VarT:TSHFileOpStruct;P:String;beginP:='c:\update';//这里改成你要删除的任意目录名,P:=str str 是传过来的目录路径With T doBeginWnd:=0;wFunc:=FO_DELETE;pFrom:=Pchar(P);pTo:=nil;fFlags:=FOF_ALLOWUNDO+FOF_NOCONFIRMATION+FOF_ NOERRORUI;//标志表明允许恢复,无须确认并不显示出错信息hNameMappings:=nil;lpszProgressTitle:='正在删除文件夹';fAnyOperationsAborted:=False;End;SHFileOperation(T);Application.MessageBox('删除成功!','系统提示',64);end;方法四:shellexecute(0, nil, 'rd', 'c:\update /Q /S', '', 0);方法五:创建文件夹可以用ForceDirectories函数,可以创建深层文件夹;删除文件夹,可以用到下面的函数,参数为文件夹的路径,如:d:\show uses ShellAPI;function DeleteDirectory(p :String): boolean;varf: TSHFILEOPSTRUCT;FillChar(f, SizeOf(f), 0);with f dobeginWnd := 0;wFunc := FO_DELETE;pFrom := PChar(p+#0);pTo := PChar(p+#0);fFlags := FOF_ALLOWUNDO+FOF_NOCONFIRMATION+FOF_NOERRORUI;end;Result := (SHFileOperation(f) = 0);end;要简单一点的可以用Winexec调用dos的rd命令,如;winexec('cmd /c rd /s /qd:\show',sw_hide)就一句代码遇到con文件夹可以先用winexec('cmd /c rd /s /q d:\show\con\',sw_hide)把con文件夹删除,再用winexec('cmd /c rd /s /q d:\show',sw_hide)把show 删除until FindNext(sr) <> 0;FindClose(sr);end;RemoveDir(sPath);end;判断文件夹存在不if not DirectoryExists("D:\APP1\SetUp") thenshowmessage("存在") elseshowmessage("不存在");end;if not Fileexists () then//如果文件不存在end;判断Ini文件存在INI文件在系统配置及应用程序参数保存与设置方面,具有很重要的作用,所以可视化的编程一族,如VB、VC、VFP、Delphi等都提供了读写INI文件的方法,其中Delphi中操作INI文件,最为简洁,这是因为Delphi3提供了一个TInifile类,使我们可以非常灵活的处理INI文件。
delphi编程妙招集合

delphi编程妙招集合下载⽹址:有详细的⽂字说明和DELPHI源代码,拷贝即⽤!内容:控件Label的分⾏显⽰Tag属性的妙⽤调⽤API确定MEMO控件中的当前⾏和列给ListBox、ComboBxox添加图⽚给ListBox添加⽔平滚动条Delphi中动态定制菜单⽤Image显⽰Jpg图⽚给MenuItem中添加Image改变在MenuItem中的Image位置对窗体(Form)制作可分割的窗体(Form)制作透明的窗体(Form)窗体(Form)上的坐标转换成相对于屏幕上的坐标变⾊窗⼝背景不⽤标题栏也移动窗体状态条进度条程序启动画⾯控制窗体查阅可视窗⼝标题限制Form的⼤⼩Form⽣成时的事件次序在窗体上设置⼀个热键⽣成⾮矩形窗⼝Delphi中TApplication类的巧⽤在程序中使⽤⾃定义的⿏标界⾯⾊彩渐变效果的实现图形整体拉出效果窗体的系统菜单添加到窗体的菜单条上闪动标题栏某些程序退出后会在任务栏中留下⼀个空格,点⼀下才消失。
如何处理?⽂件和⽬录如何启动/关闭CD-ROM的⾃动运⾏如何判断光驱中是否有光盘如何打开和关闭计算机的光驱获得磁盘的类型获得磁盘的容量获取当前程序的⽬录。
得到光驱得到windows⽬录得到System⽬录得到windows临时路径察看⽂件是否存在改变⽂件扩展名得到⽂件的扩展名让应⽤程序⾃⾝删除如何把⽂件删除到回收站中?打开Windows已经注册的⽂件系统如何添加桌⾯的快捷写⼀个在Winx、WinNT通⽤的“隐⾝程序” 屏蔽系统功能键隐藏和显⽰Windows的任务条从任务列表隐藏应⽤程序(Ctrl+Alt+Del)隐藏桌⾯图标⽤Delphi实现禁⽌⽤户关闭Window9X。
启动屏幕保护启动控制⾯板得到当前系统默认的浏览器检测程序是否运⾏改计算机名抓获全屏通过Win.ini⽂件更换壁纸。
永久性改变壁纸监视剪贴板内容将程序加⼊到Windows的启动中打开拨号连接如何为Delphi程序添加事件和事件处理器打开外部应⽤程序关闭外部已开启的应⽤程序把⾃⼰的菜单项加⼊系统菜单其他打开启动菜单更改系统时间得到windows的运⾏时间判断系统是否安装了声卡如何把程序关闭的控制权掌握在⾃⼰⼿⾥写⼀个简单的多线程的程序返回。
delphi常用函数大全

delphi常用函数大全(转)Abort函数引起放弃的意外处理Abs函数绝对值函数AddExitProc函数将一过程添加到运行时库的结束过程表中Addr函数返回指定对象的地址AdjustLineBreaks函数将给定字符串的行分隔符调整为CR/LF序列Align属性使控件位于窗口某部分Alignment属性控件标签的文字位置AllocMem函数在堆栈上分配给定大小的块AllowGrayed属性允许一个灰度选择AnsiCompareStr函数比较字符串(区分大小写)AnsiCompareText函数比较字符串(不区分大小写)AnsiLowerCase函数将字符转换为小写AnsiUpperCase函数将字符转换为大写Append函数以附加的方式打开已有的文件ArcTan函数余切函数AssignFile函数给文件变量赋一外部文件名Assigned函数测试函数或过程变量是否为空AutoSize属性自动控制标签的大小BackgroundColor属性背景色BeginThread函数以适当的方式建立用于内存管理的线程BevelInner属性控件方框的内框方式BevelOuter属性控件方框的外框方式BevelWidth属性控件方框的外框宽度BlockRead函数读一个或多个记录到变量中BlockWrite函数从变量中写一个或多个记录BorderStyle属性边界类型BorderWidth属性边界宽度Break命令终止for、while、repeat循环语句Brush属性画刷Caption属性标签文字的内容ChangeFileExt函数改变文件的后缀ChDir函数改变当前目录Checked属性确定复选框选中状态Chr函数返回指定序数的字符CloseFile命令关闭打开的文件Color属性标签的颜色Columns属性显示的列数CompareStr函数比较字符串(区分大小写)Concat函数合并字符串Continue命令继续for、while、repeat的下一个循环Copy函数返回一字符串的子串Cos函数余弦函数Ctl3D属性是否具有3D效果Cursor属性鼠标指针移入后的形状Date函数返回当前的日期DateTimeToFileDate函数将DELPHI的日期格式转换为DOS的日期格式DateTimeToStr函数将日期时间格式转换为字符串DateTimeToString函数将日期时间格式转换为字符串DateToStr函数将日期格式转换为字符串DayOfWeek函数返回星期的数值Dec函数递减变量值DecodeDate函数将日期格式分解为年月日DecodeTime函数将时间格式分解为时、分、秒、毫秒Delete函数从字符串中删除子串DeleteFile命令删除文件DiskFree函数返回剩余磁盘空间的大小DiskSize函数返回指定磁盘的容量Dispose函数释放动态变量所占的空间DisposeStr函数释放字符串在堆栈中的内存空间DitherBackground属性使背景色的色彩加重或减少50%DragCursor属性当鼠标按下时光标的形状DragMode属性按动的作用方式DropDownCount属性容许的显示数据项的数目EditMask属性编辑模式Enabled属性是否使标签呈现打开状态EncodeDate函数将年月日合成为日期格式EncodeTime函数将时、分、秒、毫秒合成为时间格式EndMargin属性末尾边缘Eof函数对有类型或无类型文件测试是否到文件尾Eoln函数返回文本文件的行结束状态Erase命令删除外部文件ExceptAddr函数返回引起当前意外的地址Exclude函数从集合中删除一些元素ExceptObject函数返回当前意外的索引Exit命令立即从当前的语句块中退出Exp函数指数函数ExpandFileName函数返回包含绝对路径的字符串ExtendedSelect属性是否允许存在选择模式,True时,MultiSelect才有意义ExtractFileDir函数返回驱动器和路径ExtractFileExt函数返回文件的后缀ExtractFileName函数返回文件名ExtractFilePath函数返回指定文件的路径FileAge函数返回文件已存在的时间FileClose命令关闭指定的文件FileCreate命令用指定的文件名建立新文件FileDateToDateTime函数将DOS的日期格式转换为DELPHI的日期格式FileExists函数检查文件是否存在FileGatAttr函数返回文件的属性FileGetDate函数返回文件的DOS日期时间标记FileOpen命令用指定的存取模式打开指定的文件FilePos函数返回文件的当前指针位置FileRead命令从指定的文件读取FileSearch命令在目录中搜索指定的文件FileSeek函数改变文件的指针FileSetAttr函数设置文件属性FileSetDate函数设置文件的DOS日期时间标记FileSize函数返回当前文件的大小FileWrite函数对指定的文件做写操作FillChar函数用指定的值填充连续字节的数FindClose命令终止FindFirst/FindNext序列FindFirst命令对指定的文件名及属性搜索目录FindNext命令返回与文件名及属性匹配的下一入口FloatToDecimal函数将浮点数转换为十进制数FloatToStrF函数将浮点数转换为字符串FloatToStr函数将浮点数转换为字符串FloatToText函数将给定的浮点数转换为十进制数FloatToTextFmt函数将给定的浮点数转换为十进制数Flush函数将缓冲区的内容刷新到输出的文本文件中FmtLoadStr函数从程序的资源字符串表中装载字符串FmtStr函数格式化一系列的参数,其结果以参数Result返回Font属性设置字体Format函数格式化一系列的参数并返回Pascal字符串FormatBuf函数格式化一系列的参数FormatDateTime函数用指定的格式来格式化日期和时间FormatFloat函数指定浮点数格式Frac函数返回参数的小数部分FreeMem函数按给定大小释放动态变量所占的空间GetDir返回指定驱动器的当前目录GetHeapStatus返回内存管理器的当前状态GetMem建立一指定大小的动态变量,并将指针指向该处GetMemoryManager返回内存管理器的入口点Glyph函数按钮上的图象Halt停止程序的执行并返回到操作系统Hi返回参数的高地址位High返回参数的上限值Hint属性提示信息Int返回参数的整数部分Include添加元素到集合中Insert在字符串中插入子串IntToHex将整型数转换为十六进制数IntToStr将整型数转换为字符串IOResult返回最新的I/O操作完成状态IsValidIdent测试字符串是否为有效的标识符Items属性默认显示的节点Kind属性摆放样式LargeChange属性最大改变值Layout属性图象布局Length函数返回字符串的动态长度Lines属性缺省显示内容Ln函数自然对数函数Lo函数返回参数的低地址位LoadStr函数从应用程序的可执行文件中装载字符资源LowerCase函数将给定的字符串变为小写Low函数返回参数的下限值Max属性最大值MaxLength属性最大长度Min属性最小值MkDir命令建立一子目录Move函数从源到目标复制字节MultiSelect属性允许同时选择几个数据项Name属性控件的名字New函数建立新的动态变量并设置一指针变量指向他NewStr函数在堆栈上分配新的字符串Now函数返回当前的日期和时间Odd测试参数是否为奇数OnActivate事件焦点移到窗体上时触发onClick事件单击窗体空白区域触发OnDblClick事件双击窗体空白区域触发OnCloseQuery事件使用者试图关闭窗体触发OnClose事件窗体关闭后才触发OnCreate事件窗体第一次创建时触发OnDeactivate事件用户切换到另一应用程序触发OnDragDrop事件鼠标拖放操作结束时触发OnDragOver事件有其他控件从他上面移过触发onMouseDown事件按下鼠标键时触发onMouseUp事件释放鼠标键时触发onMouseMove事件移动鼠标时触发OnHide事件隐藏窗体时触发onKeyDown事件按下键盘某键时触发onKeyPress事件按下键盘上的单个字符键时触发onKeyUp事件释放键盘上的某键时触发OnPaint事件窗体上有新部分暴露出来触发OnResize事件重新调整窗体大小触发OnShow事件在窗体实际显示之前瞬间触发Ord返回序数类的序数OutlineStyle属性类型OutOfMemoryError引起OutOfMemory意外PageIndex属性页索引Pages属性页ParamCount函数返回在命令行上传递给程序的参数数量ParamStr函数返回指定的命令行参数Pen属性画刷设置Pi函数返回圆周率PiPicture属性显示图象PictureClosed属性设置Closed位图PictureLeaf属性设置Leaf位图PictureMinus属性设置Minus位图PictureOpen属性设置Open位图PicturePlus属性设置Plus位图Pos函数在字符串中搜索子串Pred函数返回先前的参数Random函数返回一随机函数Randomize函数用一随机数初始化内置的随机数生成器Read函数对有格式的文件,读一文件组件到变量中;对文本文件,读一个或多个值到一个或多个变量中Readln函数执行Read过程,然后跳到文件下一行ReadOnly属性只读属性ReAllocMem函数分配一动态变量Rename函数重命名外部文件RenameFile函数对文件重命名Reset函数打开已有的文件Rewrite函数建立并打开一新的文件RmDir函数删除空的子目录Round函数将实数值舍入为整型值RunError函数停止程序的执行ScrollBars属性滚动条状态Seek函数将文件的当前指针移动到指定的组件上SeekEof函数返回文件的文件结束状态SeekEoln函数返回文件的行结束状态SelectedColor属性选中颜色SetMemoryManager函数设置内存管理器的入口点SetTextBuf函数给文本文件指定I/O缓冲区Shape属性显示的形状ShowException函数显示意外消息与地址Sin函数正弦函数SizeOf函数返回参数所占的字节数SmallChange属性最小改变值Sorted属性是否允许排序Sqr函数平方函数Sqrt函数平方根函数StartMargin属性开始边缘State属性控件当前状态Str函数将数值转换为字符串StrAlloc函数给以NULL结束的字符串分配最大长度-1的缓冲区StrBufSize函数返回存储在由StrAlloc分配的字符缓冲区的最大字符数StrCat函数将一字符串附加到另一字符串尾并返回合并的字符串StrComp函数比较两个字符串StrCopy函数将一个字符串复制到另一个字符串中StrDispose函数释放堆栈上的字符串StrECopy函数将一字符串复制到另一个字符串并返回结果字符串尾部的指针StrEnd函数返回指向字符串尾部的指针Stretch属性自动适应控件的大小StrFmt函数格式化一系列的参数StrIComp函数比较两个字符串(不区分大小写)StringToWideChar函数将ANSI字符串转换为UNICODE字符串StrLCat函数将一字符串中的字符附加到另一字符串尾并返回合并的字符串StrLComp函数以最大长度比较两个字符串StrLCopy函数将一个字符串中的字符复制到另一个字符串中StrLen函数返回字符串中的字符数StrLFmt函数格式化一系列的参数,其结果中包含有指向目标缓冲区的指针StrLIComp函数以最大长度比较两个字符串(不区分大小写)StrLower函数将字符串中的字符转换为小写StrMove函数将一个字符串中的字符复制到另一个字符串中StrNew函数在堆栈上分配一个字符串StrPas函数将以NULL结束的字符串转换为PASCAL类的字符串StrPCopy函数将PASCAL类的字符串复制为以NULL结束的字符串StrPLCopy函数从PASCAL类的最大长度字符串复制为以NULL结束的字符串StrPos函数返回一个字符串在另一个字符串中首次出现指针StrRScan函数返回字符串中最后出现字符的指针StrScan函数返回字符串中出现首字符的指针StrToDate函数将字符串转换为日期格式StrToDateTime函数将字符串转换为日期/时间格式StrToFloat函数将给定的字符串转换为浮点数StrToInt函数将字符串转换为整型StrToIntDef函数将字符串转换为整型或默认值StrToTime函数将字符串转换为时间格式StrUpper函数将字符串中的字符转换为大写Style属性类型选择Suce函数返回后继的参数Swap函数交换参数的高低地址位Tabs属性标记每一项的内容TabIndex属性标记索引Text属性显示的文本TextToFloat函数将字符串(以NULL结束的格式)转换为浮点数Time函数返回当前的时间TimeToStr函数将时间格式转换为字符串Trim函数从给定的字符串中删除前导和尾部的空格及控制字符TrimLeft函数从给定的字符串中删除首部的空格及控制字符TrimRight函数从给定的字符串中删除尾部的空格及控制字符Trunc函数将实型值截取为整型值Truncate函数截去当前文件位置后的内容UnSelectedColor属性未选中颜色UpCase将字符转换为大写UpperCase将给定的字符串变为大写Val函数将字符串转换为整型值VarArrayCreate函数以给定的界限和维数建立变体数组VarArrayDimCount函数返回给定变体的维数VarArrayHighBound函数返回给定变体数组维数的上界VarArrayLock函数锁定给定的变体数组VarArrayLowBound函数返回给定变体数组维数的下界VarArrayOf函数返回指定变体的数组元素VarArrayRedim函数通过改变上限来调整变体的大小VarArrayUnlock函数解锁指定的变体数组VarAsType函数将变体转换为指定的类型VarCase函数将变体转换为指定的类型并保存他VarClear函数清除指定的变体VarCopy函数将指定的变体复制为指定的变体VarFormDateTime函数返回包含日期时间的变体VarIsArray函数测试变体是否为数组VarIsEmpty函数测试变体是否为UNASSIGNEDVarIsNull函数测试变体是否为NULLVarToDateTime函数将给定的变体转换为日期时间VarType函数将变体转换为指定的类型并保存他Visible属性控件的可见性WantReturns属性为True时,按回车键产生一个回车符;为False时,按下Ctrl+Enter才产生回车符Write命令对有格式的文件,写一变量到文件组件中;对文本文件,写一个或多个值到文件中Writeln命令执行WRITE过程,然后输出一行结束标志WideCharLenToString函数将ANSI字符串转换为UNICODE字符串WideCharLenToStrWar函数将UNICODE字符串转换为ANSI字符串变量WideCharToString函数将UNICODE字符串转换为ANSI字符串WideCharToStrVar函数将UNICODE字符串转换为ANSI字符串变量delphi字符串函数大全函数function AnsiResemblesText(const A Text, AOther: string): Boolean; $[StrUtils.pas功能返回两个字符串是否相似说明ANSI(American National Standards Institute)美国国家标准协会;不区分大小写参考function StrUtils.SoundexProc; var StrUtils.AnsiResemblesProc例子CheckBox1.Checked := AnsiResemblesText(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━函数function AnsiContainsText(const AText, ASubText: string): Boolean; $[StrUtils.pas功能返回字符串A Text是否包含子串ASubText说明不区分大小写参考function StrUtils.AnsiUppercase; function StrUtils.AnsiPos例子CheckBox1.Checked := AnsiContainsText(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━函数function AnsiStartsText(const ASubText, AText: string): Boolean; $[StrUtils.pas功能返回字符串A Text是否以子串ASubText开头说明不区分大小写参考function pareString例子CheckBox1.Checked := AnsiStartsText(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━函数function AnsiEndsText(const ASubText, A Text: string): Boolean; $[StrUtils.pas功能返回字符串A Text是否以子串ASubText结尾说明不区分大小写参考function pareString例子CheckBox1.Checked := AnsiEndsText(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━函数function AnsiReplaceText(const AText, AFromText, AToText: string): string; $[StrUtils.pas 功能返回字符串A Text中用子串AFromText替换成子串AToText的结果说明不区分大小写参考function SysUtils.StringReplace; type SysUtils.TReplaceFlags例子Edit4.Text := AnsiReplaceText(Edit1.Text, Edit2.Text, Edit3.Text);━━━━━━━━━━━━━━━━━━━━━函数function AnsiMatchText(const AText: string; const A Values: array of string): Boolean; $[StrUtils.pas功能返回字符串数组A V alues中是否包含字符串A Text说明不区分大小写参考function StrUtils.AnsiIndexText例子CheckBox1.Checked := AnsiMatchText(Edit1.Text, ['a1', 'a2', 'a3', 'a4']);━━━━━━━━━━━━━━━━━━━━━函数function AnsiIndexText(const A Text: string; const A Values: array of string): Integer; $[StrUtils.pas功能返回字符串A Text在字符串数组A Values中的位置说明不区分大小写;如果不包含则返回-1参考function SysUtils.AnsiSameText例子SpinEdit1.Value := AnsiIndexText(Edit1.Text, ['a1', 'a2', 'a3', 'a4']);━━━━━━━━━━━━━━━━━━━━━函数function AnsiContainsStr(const AText, ASubText: string): Boolean; $[StrUtils.pas功能返回字符串A Text是否包含子串ASubText说明区分大小写参考function StrUtils.AnsiPos例子CheckBox1.Checked := AnsiContainsStr(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━函数function AnsiStartsStr(const ASubText, A Text: string): Boolean; $[StrUtils.pas功能返回字符串A Text是否以子串ASubText开头说明区分大小写参考function SysUtils.AnsiSameStr例子CheckBox1.Checked := AnsiStartsStr(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━函数function AnsiEndsStr(const ASubText, A Text: string): Boolean; $[StrUtils.pas功能返回字符串A Text是否以子串ASubText结尾说明区分大小写参考function SysUtils.AnsiSameStr例子CheckBox1.Checked := AnsiEndsStr(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━函数function AnsiReplaceStr(const AText, AFromText, AToText: string): string; $[StrUtils.pas功能返回字符串A Text中用子串AFromText替换成子串AToText的结果说明区分大小写参考function SysUtils.StringReplace; type SysUtils.TReplaceFlags例子Edit4.Text := AnsiReplaceStr(Edit1.Text, Edit2.Text, Edit3.Text);━━━━━━━━━━━━━━━━━━━━━函数function AnsiMatchStr(const AText: string; const A Values: array of string): Boolean; $[StrUtils.pas功能返回字符串数组A V alues中是否包含字符串A Text说明区分大小写参考function StrUtils.AnsiIndexStr例子CheckBox1.Checked := AnsiMatchStr(Edit1.Text, ['a1', 'a2', 'a3', 'a4']);━━━━━━━━━━━━━━━━━━━━━函数function AnsiIndexStr(const AText: string; const AValues: array of string): Integer; $[StrUtils.pas功能返回字符串A Text在字符串数组A Values中的位置说明区分大小写参考function SysUtils.AnsiSameStr例子SpinEdit1.Value := AnsiIndexStr(Edit1.Text, ['a1', 'a2', 'a3', 'a4']);━━━━━━━━━━━━━━━━━━━━━函数function DupeString(const AText: string; ACount: Integer): string; $[StrUtils.pas功能返回字符串A Text的ACount个复本说明当ACount为0时返回''参考function System.SetLength例子Edit3.Text := DupeString(Edit1.Text, SpinEdit1.V alue);━━━━━━━━━━━━━━━━━━━━━函数function ReverseString(const A Text: string): string; $[StrUtils.pas功能返回字符串A Text的反序说明ReverseString('1234') = '4321'参考function System.SetLength例子Edit3.Text := ReverseString(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━函数function StuffString(const A Text: string; AStart, ALength: Cardinal; const ASubText: string): string; $[StrUtils.pas功能返回嵌套字符串说明AStart:嵌套开始位置;ALength:嵌套长度;StuffString('abcd', 2, 0, '12') = 'a12bcd'参考function System.Copy例子Edit3.Text := StuffString(Edit1.Text, SpinEdit1.V alue, SpinEdit2.Value, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━函数function RandomFrom(const A Values: array of string): string; overload; $[StrUtils.pas功能随机返回字符串数组A Values中的一个元素说明之前建议执行Randomize参考function System.Random例子Randomize; Edit3.Text := RandomFrom(['a1', 'a2', 'a3', 'a4']);━━━━━━━━━━━━━━━━━━━━━函数function IfThen(A Value: Boolean; const ATrue: string; AFalse: string = ''): string; overload; $[StrUtils.pas功能返回指定的逻辑字符串说明IfThen(True, '是', '否') = '是';IfThen(False, '是', '否') = '否'参考<NULL>例子Edit3.Text := IfThen(CheckBox1.Checked, Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━函数function LeftStr(const AText: string; const ACount: Integer): string; $[StrUtils.pas功能返回字符串A Text左边的ACount个字符说明LeftStr('123456', 3) = '123'参考function System.Copy例子Edit3.Text := LeftStr(Edit1.Text, SpinEdit1.Value);━━━━━━━━━━━━━━━━━━━━━函数function RightStr(const AText: string; const ACount: Integer): string; $[StrUtils.pas功能返回字符串A Text右边的ACount个字符说明RightStr('123456', 3) = '456'参考function System.Copy例子Edit3.Text := RightStr(Edit1.Text, SpinEdit1.Value);━━━━━━━━━━━━━━━━━━━━━函数function MidStr(const AText: string; const AStart, ACount: Integer): string; $[StrUtils.pas功能返回字符串A Text从AStart开始的ACount个字符说明其实就是Copy参考function System.Copy例子Edit3.Text := MidStr(Edit1.Text, SpinEdit1.Value, SpinEdit2.Value);━━━━━━━━━━━━━━━━━━━━━函数function SearchBuf(Buf: PChar; BufLen: Integer; SelStart, SelLength: Integer; SearchString: String; Options: TStringSearchOptions = [soDown]): PChar; $[StrUtils.pas功能返回第一个搜索到的指针位置说明这函数常用于文本中搜索字符串参考<NULL>例子///////Begin SearchBuffunction SearchEdit(EditControl: TCustomEdit; const SearchString: String;SearchOptions: TStringSearchOptions; FindFirst: Boolean = False): Boolean;varBuffer, P: PChar;Size: Word;beginResult := False;if (Length(SearchString) = 0) then Exit;Size := EditControl.GetTextLen;if (Size = 0) then Exit;Buffer := StrAlloc(Size + 1);tryEditControl.GetTextBuf(Buffer, Size + 1);P := SearchBuf(Buffer, Size, EditControl.SelStart, EditControl.SelLength,SearchString, SearchOptions);if P <> nil then beginEditControl.SelStart := P - Buffer;EditControl.SelLength := Length(SearchString);Result := True;end;finallyStrDispose(Buffer);end;end;procedure TForm1.Button1Click(Sender: TObject);varSearchOptions: TStringSearchOptions;beginSearchOptions := [];if CheckBox1.Checked thenInclude(SearchOptions, soDown);if CheckBox2.Checked thenInclude(SearchOptions, soMatchCase);if CheckBox3.Checked thenInclude(SearchOptions, soWholeWord);SearchEdit(Memo1, Edit1.Text, SearchOptions);Memo1.SetFocus;end;///////End SearchBuf━━━━━━━━━━━━━━━━━━━━━函数function Soundex(const AText: string; ALength: TSoundexLength = 4): string; $[StrUtils.pas功能返回探测字符串说明根据探测法(Soundex)可以找到相进的字符串;/genealogy/coding.html参考<NULL>例子Edit2.Text := Soundex(Edit1.Text, SpinEdit1.Value);━━━━━━━━━━━━━━━━━━━━━函数function SoundexInt(const AText: string; ALength: TSoundexIntLength = 4): Integer; $[StrUtils.pas功能返回探测整数说明ALength的值越大解码准确率越高参考<NULL>例子SpinEdit2.Value := SoundexInt(Edit1.Text, SpinEdit1.Value);━━━━━━━━━━━━━━━━━━━━━函数function DecodeSoundexInt(AValue: Integer): string; $[StrUtils.pas功能返回探测整数的解码说明DecodeSoundexInt(SoundexInt('hello')) 相当于Soundex('hello')参考<NULL>例子Edit2.Text := DecodeSoundexInt(SpinEdit2.Value);━━━━━━━━━━━━━━━━━━━━━函数function SoundexWord(const A Text: string): Word; $[StrUtils.pas功能返回探测文字数值说明没有参数ALength已经固定为4参考<NULL>例子SpinEdit2.Value := SoundexWord(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━函数function DecodeSoundexWord(A Value: Word): string; $[StrUtils.pas功能返回探测文字数值的解码说明DecodeSoundexWord(SoundexWord('hello')) 相当于Soundex('hello')参考<NULL>例子Edit2.Text := DecodeSoundexWord(SpinEdit2.Value);━━━━━━━━━━━━━━━━━━━━━函数function SoundexSimilar(const AText, AOther: string; ALength: TSoundexLength = 4): Boolean; $[StrUtils.pas功能返回两个字符串的探测字符串是否相同说明Result := Soundex(A Text, ALength) = Soundex(AOther, ALength)参考<NULL>例子CheckBox1.Checked := SoundexSimilar(Edit1.Text, Edit2.Text, SpinEdit1.Value);━━━━━━━━━━━━━━━━━━━━━函数function SoundexCompare(const AText, AOther: string; ALength: TSoundexLength = 4): Integer; $[StrUtils.pas功能返回比较两个字符串的探测字符串的结果说明Result := AnsiCompareStr(Soundex(AText, ALength), Soundex(AOther, ALength))参考function SysUtils.AnsiCompareStr例子SpinEdit2.Value := SoundexCompare(Edit1.Text, Edit2.Text, SpinEdit1.Value);━━━━━━━━━━━━━━━━━━━━━函数function SoundexProc(const AText, AOther: string): Boolean; $[StrUtils.pas功能调用SoundexSimilar返回两个字符串的探测字符串是否相同说明系统变量AnsiResemblesProc的默认值参考function StrUtils.AnsiResemblesText例子[var AnsiResemblesProc: TCompareTextProc = SoundexProc;]━━━━━━━━━━━━━━━━━━━━━函数function NewStr(const S: string): PString; deprecated; $[SysUtils.pas功能返回一个新的字符串指针地址说明字符串S为空时返回NullStr参考procedure System.New例子////////Begin NewStr,DisposeStrprocedure TForm1.Button1Click(Sender: TObject);varP: PString;beginP := NewStr(Edit1.Text);Edit2.Text := P^;DisposeStr(P);end;////////End NewStr,DisposeStr━━━━━━━━━━━━━━━━━━━━━函数procedure DisposeStr(P: PString); deprecated; $[SysUtils.pas功能释放字符串指针P资源说明配合函数NewStr使用参考procedure System.Dispose例子<如上参见,如下参见>━━━━━━━━━━━━━━━━━━━━━函数procedure AssignStr(var P: PString; const S: string); deprecated; $[SysUtils.pas功能将字符串S更新给字符串指针P说明更新值时会释放以前字符串指针的资源参考function SysUtils.NewStr;function SysUtils.DisposeStr例子////////Begin AssignStrprocedure TForm1.Button1Click(Sender: TObject);varP: PString;beginP := nil;AssignStr(P, Edit1.Text);Edit2.Text := P^;DisposeStr(P);end;////////End AssignStr━━━━━━━━━━━━━━━━━━━━━函数procedure AppendStr(var Dest: string; const S: string); deprecated; $[SysUtils.pas 功能在字符串Dest后追加字符串S说明相当于Dest := Dest + S;Delphi6已经不建议使用参考<NULL>例子////////Begin AppendStrprocedure TForm1.Button1Click(Sender: TObject);varS: string;beginS := Edit2.Text;AppendStr(S, Edit1.Text);Edit2.Text := S;end;////////End AppendStr━━━━━━━━━━━━━━━━━━━━━函数function UpperCase(const S: string): string; $[SysUtils.pas功能返回字符串S的大写形式说明非小写字符不处理参考procedure System.SetLength例子Edit2.Text := UpperCase(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━函数function LowerCase(const S: string): string; $[SysUtils.pas功能返回字符串S的小写形式说明非大写字符不处理参考procedure System.SetLength例子Edit2.Text := LowerCase(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━函数function CompareStr(const S1, S2: string): Integer; $[SysUtils.pas功能返回比较两个字符说明当S1>S2返回值>0;当S1<S2返回值<0;当S1=S2返回值=0;区分大小写参考<NULL>例子SpinEdit1.Value := CompareStr(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━函数function CompareMem(P1, P2: Pointer; Length: Integer): Boolean; assembler; $[SysUtils.pas功能返回比较两个内存指针说明CompareMem(PChar('12a'), PChar('12c'), 2)=True;CompareMem(PChar('12a'), PChar('12c'), 3)=False参考<NULL>例子CheckBox1.Checked := CompareMem(Self, Form1, 8);━━━━━━━━━━━━━━━━━━━━━函数function CompareText(const S1, S2: string): Integer; $[SysUtils.pas功能返回比较两个字符串说明不区分大小写参考<NULL>例子SpinEdit1.Value := CompareText(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━函数function SameText(const S1, S2: string): Boolean; $[SysUtils.pas功能返回两个字符串是否相等说明不区分大小写参考<NULL>例子CheckBox1.Checked := SameText(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━函数function AnsiUpperCase(const S: string): string; $[SysUtils.pas功能返回字符串S的大写形式说明ANSI(American National Standards Institute)美国国家标准协会;非小写的字符不变参考function Windows.CharUpperBuff例子Edit2.Text := AnsiUpperCase(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━函数function AnsiLowerCase(const S: string): string; $[SysUtils.pas功能返回字符串S的小写形式说明非大写字符不处理参考function Windows.CharLowerBuff例子Edit2.Text := AnsiLowerCase(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━函数function AnsiCompareStr(const S1, S2: string): Integer; $[SysUtils.pas功能反回比较两个字符串说明当S1>S2返回值>0;当S1<S2返回值<0;当S1=S2返回值=0;区分大小写参考function pareString例子SpinEdit1.Value := AnsiCompareStr(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━函数function AnsiSameStr(const S1, S2: string): Boolean; $[SysUtils.pas功能返回两个字符串是否相等说明区分大小写参考function SysUtils.AnsiCompareStr例子CheckBox1.Checked := AnsiSameStr(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━函数function AnsiCompareText(const S1, S2: string): Integer; $[SysUtils.pas功能反回比较两个字符串说明当S1>S2返回值>0;当S1<S2返回值<0;当S1=S2返回值=0;不区分大小写参考function pareString例子SpinEdit1.Value := AnsiCompareText(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━函数function AnsiSameText(const S1, S2: string): Boolean; $[SysUtils.pas功能返回两个字符串是否相等说明不区分大小写参考function SysUtils.AnsiCompareText例子CheckBox1.Checked := AnsiSameText(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━函数function AnsiStrComp(S1, S2: PChar): Integer; $[SysUtils.pas功能返回比较两个指针字符串说明当S1>S2返回值>0;当S1<S2返回值<0;当S1=S2返回值=0;区分大小写参考function pareString例子SpinEdit1.Value := AnsiStrComp(PChar(Edit1.Text), PChar(Edit2.Text))━━━━━━━━━━━━━━━━━━━━━函数function AnsiStrIComp(S1, S2: PChar): Integer; $[SysUtils.pas功能返回比较两个指针字符串说明当S1>S2返回值>0;当S1<S2返回值<0;当S1=S2返回值=0;不区分大小写;Ignore(忽略) 参考function pareString例子SpinEdit1.Value := AnsiStrIComp(PChar(Edit1.Text), PChar(Edit2.Text))━━━━━━━━━━━━━━━━━━━━━函数function AnsiStrLComp(S1, S2: PChar; MaxLen: Cardinal): Integer; $[SysUtils.pas功能返回比较两个指针字符串指定长度说明当S1>S2返回值>0;当S1<S2返回值<0;当S1=S2返回值=0;区分大小写;Length(长度) 参考function pareString例子SpinEdit1.Value := AnsiStrLComp(PChar(Edit1.Text), PChar(Edit2.Text), SpinEdit2.Value) ━━━━━━━━━━━━━━━━━━━━━函数function AnsiStrLIComp(S1, S2: PChar; MaxLen: Cardinal): Integer; $[SysUtils.pas功能返回比较两个指针字符串指定长度说明当S1>S2返回值>0;当S1<S2返回值<0;当S1=S2返回值=0;不区分大小写参考function pareString例子SpinEdit1.Value := AnsiStrLIComp(PChar(Edit1.Text), PChar(Edit2.Text), SpinEdit2.Value)━━━━━━━━━━━━━━━━━━━━━函数function AnsiStrLower(Str: PChar): PChar; $[SysUtils.pas功能返回指针字符串小写形式说明非大写字符不处理参考function Windows.CharLower例子Edit2.Text := AnsiStrLower(PChar(Edit1.Text));━━━━━━━━━━━━━━━━━━━━━函数function AnsiStrUpper(Str: PChar): PChar; $[SysUtils.pas功能返回指针字符串大写形式说明非小写字符不处理参考function Windows.CharUpper例子Edit2.Text := AnsiStrUpper(PChar(Edit1.Text));━━━━━━━━━━━━━━━━━━━━━函数function AnsiLastChar(const S: string): PChar; $[SysUtils.pas功能返回字符串S的最后一个指针字符说明当字符串S为空串则返回空指针参考function SysUtils.ByteType例子Edit2.Text := AnsiLastChar(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━函数function AnsiStrLastChar(P: PChar): PChar; $[SysUtils.pas功能返回指针字符串P的最后一个指针字符说明当字符串P为空空指针则返回空指针参考function SysUtils.ByteType例子Edit2.Text := AnsiLastChar(PChar(Edit1.Text));━━━━━━━━━━━━━━━━━━━━━函数function WideUpperCase(const S: WideString): WideString; $[SysUtils.pas功能返回双字节字符串的大写形式说明WideChar双字节字符参考function Windows.CharUpperBuffW例子Edit2.Text := WideUpperCase(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━函数function WideLowerCase(const S: WideString): WideString; $[SysUtils.pas功能返回双字节字符串的小写形式说明我怎么就测试不出来呢参考function Windows.CharLowerBuffW例子Edit2.Text := WideLowerCase(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━函数function WideCompareStr(const S1, S2: WideString): Integer; $[SysUtils.pas 功能返回比较两个双字节字符串说明当S1>S2返回值>0;当S1<S2返回值<0;当S1=S2返回值=0;区分大小写参考function pareStringW例子SpinEdit1.Value := WideCompareStr(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━函数function WideSameStr(const S1, S2: WideString): Boolean; $[SysUtils.pas功能返回两个双字节字符串是否相同说明区分大小写参考function SysUtils.WideCompareStr例子CheckBox1.Checked := WideSameStr(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━函数function WideCompareText(const S1, S2: WideString): Integer; $[SysUtils.pas 功能返回比较两个双字节字符串说明当S1>S2返回值>0;当S1<S2返回值<0;当S1=S2返回值=0;不区分大小写参考function pareStringW例子SpinEdit1.Value := WideCompareText(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━函数function WideSameText(const S1, S2: WideString): Boolean; $[SysUtils.pas功能返回两个双字节字符串是否相同说明不区分大小写参考function SysUtils.WideCompareText例子CheckBox1.Checked := WideSameText(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━函数function Trim(const S: string): string; overload; $[SysUtils.pas函数function Trim(const S: WideString): WideString; overload; $[SysUtils.pas功能返回除去字符串S左右不可见字符说明小于#32的字符看作不可见字符参考function System.Copy例子Edit2.Text := Trim(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━函数function TrimLeft(const S: string): string; overload; $[SysUtils.pas函数function TrimLeft(const S: WideString): WideString; overload; $[SysUtils.pas功能返回除去字符串S左边不可见字符说明小于#32的字符看作不可见字符参考function System.Copy例子Edit2.Text := TrimLeft(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━函数function TrimRight(const S: string): string; overload; $[SysUtils.pas函数function TrimRight(const S: WideString): WideString; overload; $[SysUtils.pas功能返回除去字符串S右边不可见字符说明小于#32的字符看作不可见字符参考function System.Copy例子Edit2.Text := TrimRight(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━函数function QuotedStr(const S: string): string; $[SysUtils.pas功能返回字符串S在pascal中的表现形式说明单引号中的一个单引号将转成两个参考procedure System.Insert例子Edit2.Text := QuotedStr(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━函数function AnsiQuotedStr(const S: string; Quote: Char): string; $[SysUtils.pas功能返回字符串S以字符Quote为引号的表现形式说明AnsiQuotedStr('hello"world', '@')='@hello"world@';AnsiQuotedStr('hello"world', '"')='"hello""world"'参考function SysUtils.AnsiStrScan例子Edit2.Text := AnsiQuotedStr(Edit1.Text, '"');━━━━━━━━━━━━━━━━━━━━━函数function AnsiExtractQuotedStr(var Src: PChar; Quote: Char): string; $[SysUtils.pas功能返回以字符Quote为引号的表现形式原形说明表现形式非法时Src不变否则为空参考function SysUtils.AnsiStrScan例子///////Begin AnsiExtractQuotedStrprocedure TForm1.Button1Click(Sender: TObject);varP: PChar;beginP := PChar(Edit1.Text);Edit2.Text := AnsiExtractQuotedStr(P, '"');Edit3.Text := P;end;///////End AnsiExtractQuotedStr━━━━━━━━━━━━━━━━━━━━━函数function AnsiDequotedStr(const S: string; AQuote: Char): string; $[SysUtils.pas功能返回以字符AQuote为引号的表现形式原形说明表现形式非法时则返回S参考function SysUtils.AnsiExtractQuotedStr例子Edit2.Text := AnsiDequotedStr(Edit1.Text, '"');━━━━━━━━━━━━━━━━━━━━━函数function AdjustLineBreaks(const S: string; Style: TTextLineBreakStyle = {$IFDEF LINUX} tlbsLF {$ENDIF} {$IFDEF MSWINDOWS} tlbsCRLF {$ENDIF}): string; $[SysUtils.pas功能返回将给定字符串的行分隔符调整为CR/LF序列说明AdjustLineBreaks('1'#13'2'#13)='1'#13#10'2'#13#10;AdjustLineBreaks('1'#10'2'#10)='1'#13#10'2' #13#10参考function SysUtils.StrNextChar例子<NULL>━━━━━━━━━━━━━━━━━━━━━函数function IsValidIdent(const Ident: string): Boolean; $[SysUtils.pas功能返回字符串Ident是否是正确的标识符说明标识符::字母|下划线[字母|下划线|数字]...参考<NULL>例子CheckBox1.Checked := IsValidIdent(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━函数function IntToStr(Value: Integer): string; overload; $[SysUtils.pas函数function IntToStr(Value: Int64): string; overload; $[SysUtils.pas功能返回整数Value转换成字符串说明Format('%d', [Value])参考function SysUtils.FmtStr例子Edit2.Text := IntToStr(SpinEdit1.Value);━━━━━━━━━━━━━━━━━━━━━函数function IntToHex(Value: Integer; Digits: Integer): string; overload; $[SysUtils.pas。
Delphi常用代码(个人自用整理2)

Delphi常⽤代码(个⼈⾃⽤整理2)3.Delphi 实现⽂件加密源码unit main;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,ShellAPI,inifiles,registry,Des ,FileCtrl, jpeg, ExtCtrls;typeTBruce = class(TForm)dlgOpen1: TOpenDialog;Image1: TImage;Button2: TButton;Edit1: TEdit;Label1: TLabel;Button1: TButton;Label2: TLabel;Edit2: TEdit;Button3: TButton;Label3: TLabel;Edit3: TEdit;Button5: TButton;procedure FormCreate(Sender: TObject);procedure Button5Click(Sender: TObject);procedure JiaMI(var FilePath,MiMa:string);procedure JieMi(var DianFile:string);procedure ZhuCeCaiDan;procedure DelZhuCe;procedure Button1Click(Sender: TObject);procedure Edit2Exit(Sender: TObject);procedure FormShow(Sender: TObject);procedure Button2Click(Sender: TObject);procedure Button3Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varBruce: TBruce;FilePahtName :string;sRoot:WideString;sCaption:string;implementationuses Unit2;{$R *.dfm}DianFile,IniPath:string;inifile: TInifile;beginDianFile:=FilePath+'..\';iniPath:='dat.ini';inifile:=TIniFile.Create(IniPath);inifile.WriteString('111','key',DES.EncryStrHex(MiMa,'FEIGEW')); inifile.Free;renamefile(FilePath,DianFile);end;procedure TBruce.FormCreate(Sender: TObject);vari: Integer;beginZhuCeCaiDan;for i := 1 to ParamCount dobeginif LowerCase(ParamStr(i)) <> '' then beginFilePahtName:= ParamStr(i);end;end;end;procedure TBruce.JieMi(var DianFile:string);varFileName,FileJD:string;i:Integer;beginFileName:=DianFile+'.\';I:=Length(FileName);FileJD:=Copy(FileName,1,i-3);renamefile(FileName,FileJD);end;procedure TBruce.ZhuCeCaiDan;vara:TRegistry;begina:=TRegistry.create;a.rootkey:=HKEY_CLASSES_ROOT;if a.openkey('Folder\Shell\cutbig',true) thena.closekey;end;if a.openkey('Folder\Shell\cutbig\command',true) thenbegin//command⼦键的内容是点击右键后选择相应项后要运⾏的程序;//%1是在单击右键时选中的⽂件名a.writestring('','"'+Application.exeName+'" "%1"');a.closekey;end;a.free;end;procedure TBruce.DelZhuCe;vara:TRegistry;begina:=TRegistry.create;a.rootkey:=HKEY_CLASSES_ROOT;//⽤deletekey删除⼀个主键,其所包含的⼦键也被删除,如果已⽆此主键,运⾏删除操作不会带来别的危害a.deletekey('Folder\Shell\cutbig');a.free;Application.MessageBox('成功删除系统右键菜单!', '成功', MB_OK +MB_ICONINFORMATION);end;procedure TBruce.Button5Click(Sender: TObject);beginapplication.Terminate;end;procedure TBruce.Button1Click(Sender: TObject);varpassword:string;beginif FilePahtName='' then beginApplication.MessageBox('没有可加密的⽂件夹,请从⽂件夹上右键启动加密程序!','系统', MB_OK + MB_ICONWARNING);//Application.Terminate;end;if (Edit1.Text='') or (Edit2.text='') then beginApplication.MessageBox('密码不能为空,请输⼊你的密码!', '系统', MB_OK +MB_ICONWARNING);Exit;end;if Edit2.Text=Edit1.Text then beginpassword:=Edit2.Text;JiaMI(FilePahtName,password);Application.MessageBox('⽂件夹添加密码成功,请牢记您的密码!', '系统', MB_OK+ MB_ICONINFORMATION);//Application.Terminate;end else beginend;end;procedure TBruce.Edit2Exit(Sender: TObject);beginif Edit2.Text<>Edit1.Text then beginApplication.MessageBox('两次输⼊的密码不⼀致,请重新输⼊!', '系统', MB_OK + MB_ICONWARNING);Edit2.SetFocus;end;end;procedure TBruce.FormShow(Sender: TObject);beginEdit1.SetFocus;end;procedure TBruce.Button2Click(Sender: TObject);begin{ FilePahtName:='';if not dlgOpen1.Execute then exit;FilePahtName:=dlgOpen1.FileName;ShowMessage(FilePahtName);}sCaption := '⽂件夹'; //弹出框标题名(⾮弹出框窗体名)sRoot := ''; //初始⽂件夹(如'C:\','D:\DownLoad'等, 不存在则从桌⾯)beginif SelectDirectory(sCaption, sRoot, FilePahtName) then//已返回所选⽂件夹路径给FilePahtName,⾃⾏处理end;ShowMessage(FilePahtName);end;procedure TBruce.Button3Click(Sender: TObject);varlen:Integer;inifile: TInifile;IniPath,password,sstemp:string;beginBruce.JieMi(FilePahtName);len:=Length(FilePahtName);sstemp:=Copy(FilePahtName,1,len-1);iniPath:='dat.ini';inifile:=TIniFile.Create(IniPath);password:=inifile.ReadString('111','key','');password:=des.DecryStrhex(password,'FEIGEW');inifile.Free;Bruce.JiaMI(sstemp,password);if Edit3.Text=password then beginBruce.JieMi(FilePahtName);DeleteFile(IniPath) ;Application.MessageBox('您输⼊的密码错误,请重新输⼊密码!', '系统', MB_OK +MB_ICONWARNING);Edit3.SetFocus;end;end;end.⼀、“软件限时注册”控件(TShareRegist)功能说明:简介:⼀、1、只要将该控件加⼊主窗体,使Action属性设为true,再设置其它属性,你的软件就有限时注册的功能了,只要你牢记三个密钥,并加上给你的算号软件(RegObject_Admin.exe)你就可以⽆敌天下了。
彻底删除文件(Delphi源码)

彻底删除文件(Delphi源码)彻底删除文件源码unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, ExtCtrls;typeTForm1 = class(TForm)Button1: TButton;OpenDialog1: TOpenDialog;Button2: TButton;Edit1: TEdit;ProgressBar1: TProgressBar;Button3: TButton;Button4: TButton;Timer1: TTimer;Button5: TButton;procedure Button1Click(Sender: TObject);procedure Button2Click(Sender: TObject);procedure Timer1Timer(Sender: TObject);procedure Button3Click(Sender: TObject);procedure Button4Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;FileName:String;implementation{$R *.dfm}Procedure DelOne(FileName:String); varf: file of byte;n: byte;i:integer;SizeInt:Int64;beginAssignFile(f, FileName);Reset(f);SizeInt:=FileSize(f);n := 0;for i := 1 to SizeInt dobeginBlockWrite(f, n, 1);end;CloseFile(f);end;Procedure DelTwo(FileName:String); var f: file of byte;n: byte;i:integer;beginAssignFile(f, FileName);Reset(f);n := 1;for i := 1 to FileSize(f) dobeginBlockWrite(f, n, 1);end;CloseFile(f);end;Procedure DelThree(FileName:String); var f: file of byte;n: byte;i:integer;beginRandomize;AssignFile(f, FileName);Reset(f);for i := 1 to FileSize(f) dobeginn :=Random(3);BlockWrite(f, n, 1);end;CloseFile(f);end;Procedure DelFour(FileName:String); var f: file of byte;n: byte;i:integer;beginRandomize;AssignFile(f, FileName);Reset(f);beginn :=Random(4);BlockWrite(f, n, 1);end;CloseFile(f);end;Procedure Delfive(FileName:String); var f: file of byte;n: byte;i:integer;beginRandomize;AssignFile(f, FileName);Reset(f);for i := 1 to FileSize(f) dobeginn :=Random(5);BlockWrite(f, n, 1);end;CloseFile(f);end;Procedure Delsix(FileName:String); var f: file of byte;n: byte;i:integer;beginRandomize;AssignFile(f, FileName);Reset(f);beginn :=Random(6);BlockWrite(f, n, 1);end;CloseFile(f);end;Procedure Delsven(FileName:String); var f: file of byte;n: byte;i:integer;beginRandomize;AssignFile(f, FileName);Reset(f);for i := 1 to FileSize(f) dobeginn :=Random(7);BlockWrite(f, n, 1);end;CloseFile(f);end;Procedure DelEt(FileName:String); var f: file of byte;n: byte;i:integer;beginRandomize;AssignFile(f, FileName);Reset(f);beginn :=Random(8);BlockWrite(f, n, 1);end;CloseFile(f);end;Procedure DelNine(FileName:String);varf: file of byte;n: byte;i:integer;beginRandomize;AssignFile(f, FileName);Reset(f);for i := 1 to FileSize(f) dobeginn :=Random(9);BlockWrite(f, n, 1);end;CloseFile(f);end;procedure TForm1.Button1Click(Sender: TObject); begin DelOne(Edit1.T ext);ProgressBar1.Position:=ProgressBar1.Position+1; DelTwo(Edit1.T ext);ProgressBar1.Position:=ProgressBar1.Position+1; DelThree(Edit1.T ext);ProgressBar1.Position:=ProgressBar1.Position+1;DelFour(Edit1.Text);ProgressBar1.Position:=ProgressBar1.Position+1; Delfive(Edit1.Text);ProgressBar1.Position:=ProgressBar1.Position+1; DelSix(Edit1.T ext);ProgressBar1.Position:=ProgressBar1.Position+1; Delsven(Edit1.Text);ProgressBar1.Position:=ProgressBar1.Position+1; DelEt(Edit1.Text);ProgressBar1.Position:=ProgressBar1.Position+1; DelNine(Edit1.Text);ProgressBar1.Position:=ProgressBar1.Position+1; DeleteFile(Edit1.Text);ProgressBar1.Position:=ProgressBar1.Position+1; ShowMessage('OK');end;procedure TForm1.Button2Click(Sender: TObject); begin if OpenDialog1.Execute thenEdit1.Text:=OpenDialog1.FileName;end;procedure TForm1.Timer1Timer(Sender: TObject); begin DelOne(Edit1.T ext);ProgressBar1.Position:=ProgressBar1.Position+1; DelTwo(Edit1.T ext);ProgressBar1.Position:=ProgressBar1.Position+1; DelThree(Edit1.T ext);ProgressBar1.Position:=ProgressBar1.Position+1; DelFour(Edit1.Text);ProgressBar1.Position:=ProgressBar1.Position+1; Delfive(Edit1.Text);ProgressBar1.Position:=ProgressBar1.Position+1; DelSix(Edit1.T ext);ProgressBar1.Position:=ProgressBar1.Position+1; Delsven(Edit1.Text);ProgressBar1.Position:=ProgressBar1.Position+1; DelEt(Edit1.Text);ProgressBar1.Position:=ProgressBar1.Position+1; DelNine(Edit1.Text);ProgressBar1.Position:=ProgressBar1.Position+1; DeleteFile(Edit1.Text);ProgressBar1.Position:=ProgressBar1.Position+1; ShowMessage('OK');Timer1.Enabled:=False;end;procedure TForm1.Button3Click(Sender: TObject); begin Timer1.Enabled:=True;end;procedure TForm1.Button4Click(Sender: TObject); begin Timer1.Enabled:=False;end;end.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Delphi 自我复制源码
这种方法的原理是程序运行时先查看自己是不是在特定目录下,如果是就继续运行,如果不是就把自己拷贝到特定目录下,然后运行新程序,再退出旧程序.
打开Delphi,新建一个工程,在窗口的Create事件中写代码:
procedure TForm1.FormCreate(Sender: TObject);
var myname: string;
begin
myname := ExtractFilename(Application.Exename); //获得文件名
if application.Exename <> GetWindir + myname then //如果文件不是在Windows\System\那么..
begin
copyfile(pchar(application.Exename), pchar(GetWindir + myname), False);{将自己拷贝到Windows\System\下}
Winexec(pchar(GetWindir + myname), sw_hide);//运行Windows\System\下的新文件application.Terminate;//退出
end;
end;
其中GetWinDir是自定义函数,起功能是找出Windows\System\的路径.
function GetWinDir: String;
var
Buf: array[0..MAX_PATH] of char;
begin
GetSystemDirectory(Buf, MAX_PATH);
Result := Buf;
if Result[Length(Result)]<>'\' then Result := Result + '\';
end;
Delphi 程序自删除.
运行Delphi,新建一个工程,添加一个Button到窗体上,全部代码如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure DeleteMe; //自定义程序自杀过程
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
DeleteMe;
end;
procedure TForm1.DeleteMe; //程序自杀
//-----------------------------------------------------------
function GetShortName(sLongName: string): string; //转换长文件名
var
sShortName: string;
nShortNameLen: integer;
begin
SetLength(sShortName, MAX_PATH);
nShortNameLen := GetShortPathName(PChar(sLongName),
PChar(sShortName), MAX_PATH - 1);
if (0 = nShortNameLen) then
begin
// handle errors...
end;
SetLength(sShortName, nShortNameLen);
Result := sShortName;
end;
//-------------------------------------------------
var
BatchFile: TextFile;
BatchFileName: string;
ProcessInfo: TProcessInformation;
StartUpInfo: TStartupInfo;
begin
BatchFileName := ExtractFilePath(ParamStr(0)) + '$$Delme$$.bat'; AssignFile(BatchFile, BatchFileName);
Rewrite(BatchFile);
Writeln(BatchFile, ':try');
Writeln(BatchFile, 'del "' + GetShortName(ParamStr(0)) + '"');
Writeln(BatchFile, 'if exist "' + GetShortName(ParamStr(0)) + '"' + ' goto try');
Writeln(BatchFile, 'del %0');
Writeln(BatchFile, 'cls');
Writeln(BatchFile, 'exit');
CloseFile(BatchFile);
FillChar(StartUpInfo, SizeOf(StartUpInfo), $00); StartUpInfo.dwFlags := STARTF_USESHOWWINDOW; StartUpInfo.wShowWindow := SW_Hide;
if CreateProcess(nil, PChar(BatchFileName), nil, nil, False, IDLE_PRIORITY_CLASS, nil, nil, StartUpInfo, ProcessInfo) then
begin
CloseHandle(ProcessInfo.hThread);
CloseHandle(ProcessInfo.hProcess);
end;
Application.Terminate;
end;
end.。