打印本文 打印本文 关闭窗口 关闭窗口
delphi一句话帮助
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2082  更新时间:2009/4/23 18:37:51  文章录入:mintao  责任编辑:mintao

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;

[1] [2] [3]  下一页

打印本文 打印本文 关闭窗口 关闭窗口