- 博客(20)
- 资源 (30)
- 收藏
- 关注
转载 面向对象语言中的回调
面向对象语言中的回调(Delphi)Dephi与C 一样,为了保持与过程语言Pascal的兼容性,它在引入面向对象机制的同时,保留了以前的结构化特性。因此,对回调的实现,也有两种截然不同的模式,一种是结构化的函数回调模式,一种是面向对象的接口模式。<br /><br /> 2.4.1 回调函数<br /><br /> 回调函数类型定义:<br /><br />type<br />TCalcFunc=function (a:integer;b:integer):integer;<br /> 按照回调函数
2011-05-31 23:47:00 1074 1
原创 Delphi中initialization和finalization编程技术
<br />//进入正题,首先说明initialization 和 finalization 在代码单元中的位置: ************************************************************ unit Unit1; interfa
2011-05-31 23:39:00 677
转载 窗口
<br />//AnimateWindow(self.Handle,800,AW_BLEND OR AW_ACTIVATE);//实现窗口的淡化效果 uses shellapi AnimateWindow(self.Handle,1000,AW_CENTER or AW_ACTIVATE); //从中心扩散 //AnimateWindow(self.Handle,1000,AW_HOR_POSITIVE or AW_ACTIVATE); //AnimateWindow(self.Handl
2011-05-31 21:47:00 506
转载 ◇[DELPHI]截获WM_QUERYENDSESSION关机消息
<br />//◇[DELPHI]截获WM_QUERYENDSESSION关机消息 type TForm1 = class(TForm) procedure WMQueryEndSession(var Message: TWMQueryEndSession); message WM_QUERYENDSESSION; procedure CMEraseBkgnd(var Message:TWMEraseBkgnd);Message WM_ERASEBKGND; private { Pr
2011-05-31 19:50:00 2481
原创 递归控件
<br />function GetCtrls(Control: TWinControl; List: TStringList): Boolean; var i: Integer; obj: TWinControl; begin for i := 0 to Control.ControlCount - 1 do begin obj := TWinControl(Control.Controls[i]); List.Add(obj.Name); /
2011-05-31 19:15:00 572
转载 Delphi结束进程模块
uses Tlhelp32; function KillTask(ExeFileName: string): integer; const PROCESS_TERMINATE = $0001; var ContinueLoop: BOOLean; FSnapsho
2011-05-31 18:27:00 663
转载 DropEdit
<br />unit DropEdit; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ShellApi; type TMyNotifyEvent = procedure (Sender: TObject;FileNames:TStringList) of object; //自定义事件类型。 TDropEdit = clas
2011-05-30 23:00:00 479
转载 FileToMd5 [Md5.pas]
public { Public declarations } procedure ShowProgress(aPercent: Integer); ---------------------------------------------------- var
2011-05-30 14:45:00 1016
原创 暴力关机
<br />//提权 function RtlAdjustPrivilege(Privilege: ULONG; Enable: BOOLEAN; CurrentThread: BOOLEAN; Enabled: PBOOLEAN): DWORD; stdcall; external 'ntdll.dll'; //调用关机函数 function ZwShutdownSystem(arg: DWORD): BOOLEAN; stdcall; external 'ntdll.dll'; begin
2011-05-30 12:50:00 1155 2
转载 目录完全删除
<br />◇[DELPHI]目录完全删除(deltree) procedure TForm1.DeleteDirectory(strDir:String); var sr: TSearchRec; FileAttrs: Integer; strfilename:string; strPth:string; begin strpth:=Getcurrentdir(); FileAttrs := faAnyFile; if FindFirst(strpth+'/'+st
2011-05-30 12:43:00 611
原创 列举当前系统运行进程
<br />var lppe: TProcessEntry32; //uses TlHelp32 found: boolean; Hand: THandle; begin mmo1.Clear; Hand := CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0); found := Process32First(Hand, lppe); while found do begin mm
2011-05-30 12:41:00 548
转载 程序只运行一个实例
让 <br /> Windows 下一个典型的特征就是多任务,我们可以同时打开多个窗口进行操作,也可以同时运行程序的多个实例,比如可以打开许多个资源管理器进行文件的移动复制操作。但有时出于某种考虑(比如安全性),我们要做出一些限制,让程序只能够运行一个实例。在Delphi编程中,笔者总结出了以下几种方法:<br /> 一、 查找窗口法<br /> 这是最为简单的一种方法。在程序运行前用FindWindow函数查找具有相同窗口类名和标题的窗口,如果找到了,就说明已经存在一个实例。在项目源文件的初始化部分
2011-05-29 23:23:00 513
原创 TEdit中限制只能输入"."或数字
写在onkeypress事件里面<br />if not (key in ['0'..'9',#8]) then<br /> begin<br /> if (key='.') and (pos('.',Tedit(sender).Text)=0) then exit;<br /> key:=#0;<br /> Messagebeep(0);<br /> end;<br /><br />在KeyPress里控制怎么都不完善!<br />如果Ctrl+C,Ctrl+V怎么
2011-05-29 23:21:00 1032
转载 CopyProgressRoutine
Function CopyProgressRoutine( TotalFileSize : Int64; TotalBytesTransferred : Int64; StreamSize : Int64; StreamBytesTransferred : Int64; dwStreamNumber : Cardinal; dwCallbackReason : DWord; hSourc
2011-05-29 23:02:00 1269 2
原创 DeleteMe
<br />程序删除自身<br /> // 利用批处理文件构造一个循环,只要在 OnClose() 中调用 DeleteMe() 就可以删除自身<br />procedure DeleteMe();<br />var<br /> BatchFile: TextFile;<br /> BatchFileName: string;<br /> ProcessInfo: TProcessInformation;<br /> StartUpInfo: TStartupInfo;<br />begin
2011-05-29 18:06:00 3495
原创 CreateShortcut
建立快捷方式的函数: CreateShortcutuses<br />ShlObj, ActiveX, ComObj; {该函数使用的单元}<br /><br />{函数说明:}<br />{第一个参数是要建立快捷方式的文件, 这是必须的; 其他都是可选参数}<br />{第二个参数是快捷方式名称, 缺省使用参数一的文件名}<br />{第三个参数是指定目的文件夹, 缺省目的是桌面; 如果有第四个参数, 该参数将被忽略}<br />{第四个参数是用常数的方式指定目的文件夹; 该系列常数定义在 ShlObj
2011-05-29 15:43:00 1190
原创 实现文件拖放
Delphi中实现文件拖放<br />首先在uses中加入ShellAPI<br /> <br />再在窗体 TForm1.Create事件中加入代码:DragAcceptFiles(self.Handle,true);//设定接受拖动事件的句柄为本窗口<br /> <br />再在TForm1的Public中写:Procedure DragFiles(var Msg:TMessage);Message WM_DROPFILES;//响应文件拖动事件<br /> <br /> 再写上 TForm1.Dr
2011-05-29 15:41:00 494
原创 GetFileMd5
function GetFileMD5(var path:string):string; //uses IdHashMessageDigest var filemd5:TIdHashMessageDigest5; begin filemd5:=TIdHashMessageDigest5.Create; //必须先初始化 result:=filemd5.AsHex(filemd5.HashValue(TFileStream.Create(path,fmOpenRead))); filemd5.Free; //
2011-05-29 15:23:00 1472 2
原创 建立程序互斥
<br />procedure TForm1.FormCreate(Sender: TObject); begin CreateMutex(nil,False,'Form1'); if GetLastError=ERROR_ALREADY_EXISTS then
2011-05-29 15:15:00 429
原创 Function Rmb2Dx
<br />function rmb2dx(rmbje:Double):String; // 人民币转换成为大写 const s1:AnsiString='零壹贰叁肆伍陆柒捌玖'; s2:AnsiString='分角圆拾佰仟万拾佰仟亿拾佰仟万'; var s,dx:String; i,Len:Integer; function StrTran(const S,S1,S2:String):String; begin Result:=StringReplace(S,S1,S2,
2011-05-09 10:29:00 538
TMS Component Pack 5.7.1.0 Full Source 安装版
2010-10-02
DELPHI全掌握(万一先生的博客)
2009-07-05
PASCAL精要(编程技巧)
2009-07-05
API函数的中文帮助文件
2009-07-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人