//聲明:DrawText( hDC: HDC; {裝置控制代碼} lpString: PChar; {文本} nCount: Integer; {要繪製的字元個數; -1 表示全部} var lpRect: TRect; {矩形結構} uFormat: UINT {選項}): Integer; {返迴文本高度}//uFormat 參數的可選值:DT_TOP = 0; {頂對齊, 須 or
//聲明:ExtTextOut( DC: HDC; {裝置環境控制代碼} X, Y: Integer; {起點座標} Options: Longint; {選項} Rect: PRect; {指定顯示範圍; 0 表示限制範圍} Str: PChar; {字串指標} Count: Longint; {字串長度} Dx: PInteger {表示字元間距的數組; 是可選值}): BOOL;//Options
//聲明:SetTextAlign( DC: HDC; {裝置環境控制代碼} Flags: UINT {對齊選項}): UINT; {返回對齊選項值; 如果返回 GDI_ERROR 表示設定失敗}//Flags 參數的可選值:TA_NOUPDATECP = 0; {每一次文本輸出後, 不更新當前位置}TA_UPDATECP = 1; {每一次文本輸出後, 更新當前位置}TA_LEFT = 0; {起始於文本外接矩形左邊}TA_RIGHT
//聲明:GetTextAlign( DC: HDC; {裝置環境控制代碼}): UINT; {返回對齊選項值; 如果返回 GDI_ERROR 表示設定失敗}//如果調用成功則返回下面常數值之一或它們的組合:TA_NOUPDATECP = 0; {每一次文本輸出後, 不更新當前位置}TA_UPDATECP = 1; {每一次文本輸出後, 更新當前位置}TA_LEFT = 0; {起始於文本外接矩形左邊}TA_RIGHT = 2;
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure FormCreate(Sender: TObject);
類型名稱二進位碼寄存器說明多功能寄存器AL0累加寄存器低八位AH100累加寄存器低八位AX016 位累加寄存器EAX032 位累加寄存器BL11基底位址暫存器低八位BH111基底位址暫存器低八位BX1116 位基底位址暫存器EBX1132 位基底位址暫存器CL1計數寄存器低八位CH101計數寄存器低八位CX116 位計數寄存器ECX132 位計數寄存器DL10資料寄存器低八位DH110資料寄存器低八位DX1016 位元據寄存器EDX1032 位元據寄存器指標寄存器SP10016
功能表項目通過 ShortCut 屬性來設定快速鍵, ShortCut 是 TShortcut 類型的; TShortcut 是一個子界: 0..65535ShortCut 的所有可選值請參加列表: http://www.cnblogs.com/del/archive/2008/02/04/1064631.htmlunit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics,
分類名稱功能函數 DispatchCommand調用功能表項目的 Click 方法 DispatchPopup類比快顯功能表 FindItem尋找功能表項目 GetHelpContext擷取協助標識 IsRightToLeft判斷 BiDiMode 屬性 IsShortCut根據鍵盤訊息判斷是否是功能表項目快速鍵過程 Merge合并UnMerge去除合并 PopulateOle2Menu合并到其他菜單 GetOle2AcceleratorTable擷取主菜單快速鍵列表控制代碼
我們從 Form 的源碼中看到, 指定的快速鍵是一個數字, 譬如 Ctrl+A, 對應著數字: 16449其實這是一個 Word 類型的數字; 快速鍵的參數是 TShortCut 類型的, 它定義在 Classes 單元的第92行(Delphi 2007):TShortCut = Low(Word)..High(Word);Menus 單元有兩個函數: TextToShortCut、ShortCutToText, 可以互相轉換它們.var w: Word; s: string;begin
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus;type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); end;var Form1: TForm1;implementation{$R *.dfm}//uses Menus; {
//聲明:GetWindowText( hWnd: HWND; {視窗控制代碼} lpString: PChar; {接收文本的緩衝區的指標} nMaxCount: Integer {指定緩衝區大小, 其中包含NULL字元; 如果文本超出,會被被截斷}): Integer; {返回字元個數, 不包括中斷的Null 字元; 如果標題為空白或控制代碼無效, 則返回零}//舉例:var arr: array[0..254] of Char;begin
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus;type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); end;var Form1: TForm1;implementation{$R *.dfm}var MyMenu:
//聲明:GetTempFileName( lpPathName: PChar; {路徑} lpPrefixString: PChar; {首碼} uUnique: UINT; {指定組建檔案名的數字, 檔案名稱將根據參數2、參數3來產生} lpTempFileName: PChar {檔案名稱需要的緩衝區}): UINT; {指定組建檔案名的數字, 如果參數3是0, 則返迴文件名長度}//舉例:var p,f: array[0
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus;type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); end;var Form1: TForm1;implementation{$R *.dfm}var MyMenu:
//聲明:GetUserName( lpBuffer: PChar; {緩衝區} var nSize: DWORD {緩衝區大小}): BOOL;//舉例:var arr: array[0..254] of Char; d: DWORD;begin d := SizeOf(arr); GetUserName(arr, d); ShowMessage(arr); {wy}end;//另一例:var p: PChar; num: DWORD;begin num := 0;
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus;type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); end;var Form1: TForm1;implementation{$R *.dfm}var MyMenu:
//聲明:GetVersionEx( var lpVersionInformation: TOSVersionInfo {參數是一個結構}): BOOL;//結構 TOSVersionInfo 是 _OSVERSIONINFOA 的重新命名_OSVERSIONINFOA = record dwOSVersionInfoSize: DWORD; {結構大小} dwMajorVersion: DWORD; {主編號}
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus;type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure Proc(Sender: TObject); {聲明將要被調用的方法} end;var
//聲明:MessageBeep( uType: UINT {參數是個常數; 根據不同的常數發出不同的聲音, 也就是調用了不同的 wav}): BOOL;//參數 uType 可選值:MB_OK = 0;MB_ICONHAND = 16;MB_ICONQUESTION = 32;MB_ICONEXCLAMATION = 48;MB_ICONASTERISK = 64;//舉例, 下面代碼會發出錯誤警告begin MessageBeep(16
//聲明:sndPlaySound( lpszSoundName: PChar; {音效檔} uFlags: UINT{播放選項}): BOOL;//uFlags 參數可選值:SND_SYNC = 0; {同步播放, 程式須等到播放完畢才向下執行}SND_ASYNC = 1; {非同步播放, 在函數返回之後開始播放, 不影響程式繼續執行}SND_NODEFAULT = 2; {音效檔缺失時, 函數自動返回不播放預設聲音}SND_MEMORY = 4;