分享
 
 
 

delphi一句话帮助

王朝delphi·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

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;

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有