Borland Delphi一句話幫助

Borland Delphi一句話幫助

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釋放/DownloadFiles/a200507/2005-07-27//DownloadFiles/a200507/2005-07-27/, 參數以及局部變量存在於棧中,自動釋放。
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/DownloadFiles/a200507/2005-07-27/@ String; Wnd/DownloadFiles/a200507/2005-07-27/@ HWND):Boolean;
var
sfi/DownloadFiles/a200507/2005-07-27/@ 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/DownloadFiles/a200507/2005-07-27/@ TObject);
begin
ShowFileProperties('c:/AA.txt'/DownloadFiles/a200507/2005-07-27//DownloadFiles/a200507/2005-07-27/, 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 /DownloadFiles/a200507/2005-07-27/@ TSearchRec;
Rec /DownloadFiles/a200507/2005-07-27/@ word;
Begin
SourceDir := SourceDir + '/';
Rec := FindFirst(SourceDir + '*.*'/DownloadFiles/a200507/2005-07-27//DownloadFiles/a200507/2005-07-27/, faAnyFile/DownloadFiles/a200507/2005-07-27//DownloadFiles/a200507/2005-07-27/, Search);
While Rec = 0 Do
Begin
If Search.Name[1] <> '.' Then
Begin 

計算機教程delphi一句話幫助來自www.itwen.comIT WEN計算機教程網

If (Search.Attr And faDirectory) = faDirectory Then
Begin
Windows.CreateDirectory(PChar(DestinationDir + '/' + Search.Name)/DownloadFiles/a200507/2005-07-27//DownloadFiles/a200507/2005-07-27/, nil);
FileSetAttr(DestinationDir + '/' + Search.Name/DownloadFiles/a200507/2005-07-27//DownloadFiles/a200507/2005-07-27/, FileGetAttr(SourceDir + '/' + Search.Name));
X_Copy(SourceDir + '/' + Search.Name/DownloadFiles/a200507/2005-07-27//DownloadFiles/a200507/2005-07-27/, DestinationDir + '/' + Search.Name);
end
Else
Begin
CopyFile(PChar(SourceDir + '/' + Search.Name),PChar(DestinationDir + '/' + Search.Name)/DownloadFiles/a200507/2005-07-27//DownloadFiles/a200507/2005-07-27/, True);
FileSetAttr(DestinationDir + '/' + Search.Name/DownloadFiles/a200507/2005-07-27//DownloadFiles/a200507/2005-07-27/, FileGetAttr(SourceDir + '/' + Search.Name));
Application.ProcessMessages;
end;
end;
Rec := FindNext(Search);
end;
FindClose(Search);
end;
20. 繪製透明位圖
procedure DrawTrans(DestCanvas/DownloadFiles/a200507/2005-07-27/@ TCanvas; X,Y/DownloadFiles/a200507/2005-07-27/@ smallint; Src/DownloadFiles/a200507/2005-07-27/Bitmap@ TBitmap; AColor/DownloadFiles/a200507/2005-07-27//DownloadFiles/a200507/2005-07-27/, BackColor/DownloadFiles/a200507/2005-07-27/@ TColor);

var AND/DownloadFiles/a200507/2005-07-27/Bitmap/DownloadFiles/a200507/2005-07-27//DownloadFiles/a200507/2005-07-27/, OR/DownloadFiles/a200507/2005-07-27/Bitmap@ TBitmap;
CM/DownloadFiles/a200507/2005-07-27/@ TCopyMode;
Src/DownloadFiles/a200507/2005-07-27/@ TRect;
begin
ANDBitmap:= NIL;
ORBitmap:= NIL;
try
ANDBitmap:= TBitmap.Create;
ORBitmap:= TBitmap.Create;
Src := Bounds(0,0/DownloadFiles/a200507/2005-07-27//DownloadFiles/a200507/2005-07-27/, Src/DownloadFiles/a200507/2005-07-27/Bitmap.Width/DownloadFiles/a200507/2005-07-27//DownloadFiles/a200507/2005-07-27/, Src/DownloadFiles/a200507/2005-07-27/Bitmap.Height);(P> with ORBitmap do begin
Width:= Src/DownloadFiles/a200507/2005-07-27/Bitmap.Width;(P> Height:= Src/DownloadFiles/a200507/2005-07-27/Bitmap.Height;(P> Canvas.Brush.Color := clBlack;
Canvas.CopyMode := cmSrcCopy;
Canvas.BrushCopy(Src/DownloadFiles/a200507/2005-07-27//DownloadFiles/a200507/2005-07-27/, Src/DownloadFiles/a200507/2005-07-27/Bitmap/DownloadFiles/a200507/2005-07-27//DownloadFiles/a200507/2005-07-27/, Src/DownloadFiles/a200507/2005-07-27//DownloadFiles/a200507/2005-07-27/, AColor);
end;
with ANDBitmap do begin
Width:= Src/DownloadFiles/a200507/2005-07-27/Bitmap.Width;(P> Height:= Src/DownloadFiles/a200507/2005-07-27/Bitmap.Height;(P> Canvas.Brush.Color := BackColor;
Canvas.CopyMode := cmSrcInvert;
Canvas.BrushCopy(Src/DownloadFiles/a200507/2005-07-27//DownloadFiles/a200507/2005-07-27/, Src/DownloadFiles/a200507/2005-07-27/Bitmap/DownloadFiles/a200507/2005-07-27//DownloadFiles/a200507/2005-07-27/, Src/DownloadFiles/a200507/2005-07-27//DownloadFiles/a200507/2005-07-27/, AColor);
end;
with DestCanvas do begin
CM := CopyMode;
CopyMode := cmSrcAnd;
Draw(X,Y/DownloadFiles/a200507/2005-07-27//DownloadFiles/a200507/2005-07-27/, ANDBitmap);
CopyMode := cmSrcPaint;
Draw(X,Y/DownloadFiles/a200507/2005-07-27//DownloadFiles/a200507/2005-07-27/, ORBitmap);
CopyMode := CM;

end;
finally
ANDBitmap.Free;
ORBitmap.Free;
end;
end;
procedure TForm1.Button4Click(Sender/DownloadFiles/a200507/2005-07-27/@ TObject);
begin
DrawTrans(Image1.Canvas/DownloadFiles/a200507/2005-07-27//DownloadFiles/a200507/2005-07-27/, 0,0/DownloadFiles/a200507/2005-07-27//DownloadFiles/a200507/2005-07-27/, Image2.Picture./DownloadFiles/a200507/2005-07-27/Bitmap/DownloadFiles/a200507/2005-07-27//DownloadFiles/a200507/2005-07-27/, clBlack/DownloadFiles/a200507/2005-07-27//DownloadFiles/a200507/2005-07-27/, clSilver);
end;
21. 獲取CPU速度
function GetCpuSpeed/DownloadFiles/a200507/2005-07-27/@ Extended;
var
t/DownloadFiles/a200507/2005-07-27//DownloadFiles/a200507/2005-07-27/, mhi/DownloadFiles/a200507/2005-07-27//DownloadFiles/a200507/2005-07-27/, mlo/DownloadFiles/a200507/2005-07-27//DownloadFiles/a200507/2005-07-27/, nhi/DownloadFiles/a200507/2005-07-27//DownloadFiles/a200507/2005-07-27/, nlo/DownloadFiles/a200507/2005-07-27/@ dword;
shr32 /DownloadFiles/a200507/2005-07-27/@ 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/DownloadFiles/a200507/2005-07-27/@ TObject);
begin
label1.Caption := FloatToStr(GetCpuSpeed) + 'mhz';
end;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章