1.如果想你的程序能够正确处理异常情况的话,请引用SysUtils.pas单元,否则即使程序使用了try。。。except。。。也不能正确捕获异常。

2.定义常量字符串的一种方式

resourcestring

aa='aaaa';

raise Exception.CreateRes(@aa);

3. 字符串常量数组的初始化

const  constarray:array [0..2] of string=(‘first’,’second’,’third’);

4. 结构体初始化

type  Tstructinit=record

A1:integer;

A2:array [0..2] of integer;

End;

Const m_structinit:Tstructinit=(A1:0;A2:(0,1,2));

5.       多维数组的长度

var  array2:array of array of integer;

setlength(array2,2,2);

6.使用Create和New开辟的空间都存在于堆中,不能自动释放,建议使用FreeAndNil释放, 参数以及局部变量存在于栈中,自动释放。

7.SizeOf不适合于对象,返回的总是4;对于固定类型可以正确返回.

8. Create(nil)需要手工释放,Creat(self)会随着拥有者的释放而释放.

9.动态改变已定义常量的值

procedure ChangeConst(const Const;var Value;Size:Integer);

begin

Move((@Value)^,(@Constant)^,Size);

End;

10.进行删除操作的时候循环使用DownTo,会避免错误.

11. 汉字的Ascii码>128,可以用它来判别是否为汉字

12. dll编写中,需要使用Sharemem单元来引用BORLANDMM.DLL内存管理.

13.   PostMessage只将消息放到消息队列中,需要排队等待处理。

SendMessage绕过消息队列直接发送到窗口过程,等到消息处理返回值才返回.

14.鼠标移入移出消息:CM_MOUSEENTER,CM_MOUSELEAVE

15. 关机消息WM_QUERYENDSESSION

16.可以利用ThintWindow和类的方法ActivateHint来创建浮动窗体.

17.调出文件属性对话框

uses ShellAPI;

function ShowFileProperties(FileName: String; Wnd: HWND):Boolean;

var

sfi: TSHELLEXECUTEINFO;

begin

with sfi do

begin

cbSize := SizeOf(sfi);

lpFile := PAnsiChar(FileName);

Wnd := Wnd;

fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_INVOKEIDLIST or SEE_MASK_FLAG_NO_UI;

lpVerb := PAnsiChar('properties');

lpIDList := nil;

lpDirectory := nil;

nShow := 0;

hInstApp := 0;

lpParameters := nil;

dwHotKey := 0;

hIcon := 0;

hkeyClass := 0;

hProcess := 0;

lpClass := nil;

end;

Result := ShellExecuteEX(@sfi);

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

ShowFileProperties('c:/AA.txt', Handle);

end;

18.   更改系统时间

uses Windows,Dialogs,Forms;

var MyTime:TsystemTime;

begin

FillChar(MyTime,sizeof(MyTime),#0);

MyTime.wYear:=2003;

MyTime.wMonth:=06;

MyTime.wDay:=01;

If not SetSystem(MyTime) then

Showmessage(‘Failure’);

End;

19.复制文件夹Xcopy

.   procedure Xcopy(SourceDir,DestinationDir:String);

var

Search : TSearchRec;

Rec    : word;

Begin

SourceDir := SourceDir + '/';

Rec := FindFirst(SourceDir + '*.*', faAnyFile, Search);

While Rec = 0 Do

Begin

If Search.Name[1] <> '.' Then

Begin

If (Search.Attr And faDirectory) = faDirectory Then

Begin

Windows.CreateDirectory(PChar(DestinationDir + '/' + Search.Name), nil);

FileSetAttr(DestinationDir + '/' + Search.Name, FileGetAttr(SourceDir + '/' + Search.Name));

X_Copy(SourceDir + '/' + Search.Name, DestinationDir + '/' + Search.Name);

end

Else

Begin

CopyFile(PChar(SourceDir + '/' + Search.Name),PChar(DestinationDir + '/' + Search.Name), True);

FileSetAttr(DestinationDir + '/' + Search.Name, FileGetAttr(SourceDir + '/' + Search.Name));

Application.ProcessMessages;

end;

end;

Rec := FindNext(Search);

end;

FindClose(Search);

end;

20.绘制透明位图

procedure DrawTrans(DestCanvas: TCanvas; X,Y: smallint; SrcBitmap: TBitmap; AColor, BackColor: TColor);

var  ANDBitmap, ORBitmap: TBitmap;

CM: TCopyMode;

Src: TRect;

begin

ANDBitmap:= NIL;

ORBitmap:=  NIL;

try

ANDBitmap:= TBitmap.Create;

ORBitmap:= TBitmap.Create;

Src  := Bounds(0,0, SrcBitmap.Width, SrcBitmap.Height);

with ORBitmap do begin

Width:= SrcBitmap.Width;

Height:= SrcBitmap.Height;

Canvas.Brush.Color := clBlack;

Canvas.CopyMode := cmSrcCopy;

Canvas.BrushCopy(Src, SrcBitmap, Src, AColor);

end;

with ANDBitmap do begin

Width:= SrcBitmap.Width;

Height:= SrcBitmap.Height;

Canvas.Brush.Color := BackColor;

Canvas.CopyMode := cmSrcInvert;

Canvas.BrushCopy(Src, SrcBitmap, Src, AColor);

end;

with DestCanvas do begin

CM := CopyMode;

CopyMode := cmSrcAnd;

Draw(X,Y, ANDBitmap);

CopyMode := cmSrcPaint;

Draw(X,Y, ORBitmap);

CopyMode := CM;

end;

finally

ANDBitmap.Free;

ORBitmap.Free;

end;

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

DrawTrans(Image1.Canvas, 0,0, Image2.Picture.Bitmap, clBlack, clSilver);

end;

21. 获取CPU速度

function GetCpuSpeed: Extended;

var

t, mhi, mlo, nhi, nlo: dword;

shr32 : comp;

begin

shr32 := 65536;

shr32 := shr32 * 65536;

t := GetTickCount;

while t = GetTickCount do ;

asm

DB 0FH,031H // rdtsc

mov mhi,edx

mov mlo,eax

end;

while GetTickCount < (t + 1000) do ;

asm

DB 0FH,031H // rdtsc

mov nhi,edx

mov nlo,eax

end;

Result := ((nhi * shr32 + nlo) - (mhi * shr32 + mlo)) / 1E6;

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

label1.Caption := FloatToStr(GetCpuSpeed) + 'mhz';

end;

Delphi一句话帮助相关推荐

  1. 闪存备份,记录平时一些小随笔

    1. 终于将所有旧系统的控件都升级到了Delphi 2010 ! [2010-01-18 10:33:55] 2. 测试python3.2,要升级的话有许多代码要修改. [2011-03-17 09: ...

  2. Delphi 之Copyrect的使用

    http://cqujsjcyj.iteye.com/blog/380970 Copyrect的使用(图片复制.放大.以及做图片放大镜等) 一.从一个选取一个区域中的图象到另一个图象组件中的固定区域 ...

  3. Delphi - 使用字符串时,一个注意地方

    技术交流,DH讲解. 一句话,结构体里面,避免使用String,要使用Array[N..M] of char,或者String[N]. 肯定有兄弟要问,为什么,其实最先我也不知道,因为我觉得用stri ...

  4. Delphi的四舍五入函数

    Delphi的四舍五入函数 一.四舍五入法     四舍五入是一种应用非常广泛的近似计算方法,其有算术舍入法和银行家舍入法两种.     所谓算术舍入法,就是我们通常意义上的四舍五入法.其规则是:当舍 ...

  5. Delphi的单元文件详解

    Delphi的单元文件详解 Delphi单元文件 1.库单元文件头:其中声明了库单元的名字. 2.Interface部分:   由保留字interface开始,结束于保留字implementation ...

  6. DELPHI 7 动态链接库DLL断点调试

     DELPHI 7 动态链接库DLL断点调试           马根峰           (广东联合电子服务股份有限公司, 广州 510300) 作者博客: CSDN博客:http://blog. ...

  7. Delphi DLL制作和加载 Static, Dynamic, Delayed 以及 Shared-Memory Manager

    一 Dll的制作一般分为以下几步: 1 在一个DLL工程里写一个过程或函数 2 写一个Exports关键字,在其下写过程的名称.不用写参数和调用后缀. 二 参数传递 1 参数类型最好与window C ...

  8. delphi基本语法

    //delphi中exit,abort,break,continue 的区别 exit: 退出函数体 abort: 遇到异常,安静处理,就是不显示不提示 break: 退出当前循环体,包括for ,w ...

  9. Delphi 对象的创建(create)与释放(free/destory)

    Delphi 对象的创建(create)与释放(free/destory) 1.Create参数为:nil/self/application的区别,最好能看到实际效果的区别 例如: My := TMy ...

最新文章

  1. pop弹框 点击弹出外任意区域消失
  2. DSP集成开发工具CCS的Git工具使用说明(一)
  3. Google Breakpad 完全解析(二) —— Windows前台实现篇
  4. Android Studio对于Java8特性的支持
  5. 2节点CentOS7 PackStack安装Newton
  6. Thymeleaf 基本用法总结
  7. javascript开发后端程序的神器nodejs
  8. SharePoint 数据迁移解决方案
  9. 前端学习(1939)vue之电商管理系统电商系统之完成全部功能
  10. Java关键字synchronized的简单理解
  11. 从俄罗斯方块到星际2,全都用得上:DeepMind无监督分割大法,为游戏而生
  12. 怎么在html mui中找到下拉刷新,HelloMUI例子中的下拉刷新
  13. 【预测模型】基于BP神经网络实短时交通流预测matlab代码
  14. 口才训练方法——速读法、背诵法
  15. 人工智能简史+电子版原文
  16. 牛顿迭代法实现开根号
  17. 设备树学习之(一)GPIO中断
  18. Android so 文件全部报错:Duplicate resources
  19. MYSQL设置初始密码
  20. 外部电源和锂电池自动切换电路

热门文章

  1. 【数据结构笔记05】堆栈及其顺序存储、链式存储
  2. java中map类型_Java中Map类型遍历的两种方式对比
  3. 一次数据库上云迁移性能下降的排查
  4. archman linux教程,Archman GNU/Linux 2020-01 发布,基于Arch的Xfce桌面发行版
  5. 深入PHP内核之ZVAL
  6. git 远程仓库回滚
  7. matlab db(X R),matlab操作sqlite数据库
  8. 修改现有用户帐户的 Microsoft Lync Server 2010 属性
  9. java lambda 变量_java – 从lambda表达式引用的局部变量必须...
  10. kuka机器人外部轴异步_KUKA机器人外部轴标准配置