?? elibtypes.pas
字號:
unit elibTypes;
{$IFNDEF __LIB_H}
{$DEFINE __LIB_H}
interface
//uses
type
PLongBool = ^LongBool;
PByteArray = ^TByteArray;
TByteArray = array[0..32767] of Byte;
type
DATA_TYPE = LongWord ; // 數(shù)據(jù)類型: _SDT_NULL, _SDT_ALL, SDT_BYTE, SDT_SHORT, SDT_INT, SDT_INT64, SDT_FLOAT, SDT_DOUBLE, SDT_BOOL, SDT_DATE_TIME, SDT_TEXT, SDT_BIN, SDT_SUB_PTR 等
pDATA_TYPE = ^LongWord ; // DATA_TYPE 參見下面的常量定義
const
//////////////////////////////////////////////////////////////////////////////
// 以下是由系統(tǒng)定義的基本數(shù)據(jù)類型,不可更改。(以下常量數(shù)值的定義絕對不會有錯!)
_SDT_NULL = 0; // 空白數(shù)據(jù)類型
_SDT_ALL = 2147483648; // 通用型, 僅用于支持庫命令定義其參數(shù)或返回值的數(shù)據(jù)類型,當(dāng)用于定義庫命令參數(shù)時,_SDT_ALL可以匹配所有數(shù)據(jù)類型(數(shù)組類型必須符合要求)
SDT_BYTE = 2147483905; // 字節(jié)型
SDT_SHORT = 2147484161; // 短整數(shù)型
SDT_INT = 2147484417; // 整數(shù)型
SDT_INT64 = 2147484673; // 長整數(shù)型
SDT_FLOAT = 2147484929; // 小數(shù)型
SDT_DOUBLE = 2147485185; // 雙精度小數(shù)型
SDT_BOOL = 2147483650; // 邏輯型
SDT_DATE_TIME = 2147483651; // 日期時間型
SDT_TEXT = 2147483652; // 文本型
SDT_BIN = 2147483653; // 字節(jié)集
SDT_SUB_PTR = 2147483654; // 子程序指針
//////////////////////////////////////////////////////////////////////////////
type
//////////////////////////////////////////////////////////////////////////////
// “參數(shù)信息”數(shù)據(jù)結(jié)構(gòu) ARG_INFO
pARG_INFO = ^ARG_INFO;
ARG_INFO = record
m_szName : PChar; // 參數(shù)名稱
m_szExplain : PChar; // 參數(shù)詳細(xì)解釋
m_shtBitmapIndex : Word; // 參見 CMD_INFO 中的同名成員
m_shtBitmapCount : Word; // 參見 CMD_INFO 中的同名成員
m_dtDataType : DATA_TYPE; // 參數(shù)的數(shù)據(jù)類型
m_nDefault : LongWord; // 參數(shù)默認(rèn)值,見下面的說明
m_dwState : LongWord; // 狀態(tài)值,見下面的說明和常量定義
////////////////////////////////////////////////////////////////////////////
//
// 其中, m_nDefault 為系統(tǒng)基本類型參數(shù)的默認(rèn)指定值(在編譯時編譯器將自動處理):
//
// 1、數(shù)值型:直接為數(shù)值(如為小數(shù),只能指定其整數(shù)部分,如為長整數(shù),只能指定不超過INT限值的部分);
// 2、邏輯型:1 代表'真',0 代表'假';
// 3、文本型:本成員此時為PChar指針,指向默認(rèn)文本串;
// 4、其它所有類型參數(shù)一律無默認(rèn)指定值。
//
// 其中, m_dwState 可以為 0 和以下數(shù)值的組合:(0 表示該參數(shù)沒有默認(rèn)值,用戶必須提供該參數(shù))
//
// AS_HAS_DEFAULT_VALUE = 1; // 本參數(shù)有默認(rèn)值,默認(rèn)值在m_nDefault中說明,與下標(biāo)志互斥
// AS_DEFAULT_VALUE_IS_EMPTY = 2; // 本參數(shù)有默認(rèn)值,默認(rèn)值為空,與上標(biāo)志互斥
//
// (下面5個標(biāo)志位只能取其一)
// AS_RECEIVE_VAR = 4; // 為本參數(shù)提供數(shù)據(jù)時必須提供非數(shù)組型容器
// AS_RECEIVE_VAR_ARRAY = 8; // 為本參數(shù)提供數(shù)據(jù)時必須提供數(shù)組型容器
// AS_RECEIVE_VAR_OR_ARRAY = 16; // 為本參數(shù)提供數(shù)據(jù)時必須提供數(shù)組或非數(shù)組型容器
// AS_RECEIVE_ARRAY_DATA = 32; // 為本參數(shù)提供數(shù)據(jù)時必須提供數(shù)組型數(shù)據(jù)
// AS_RECEIVE_ALL_TYPE_DATA = 64; // 為本參數(shù)提供數(shù)據(jù)時可以提供非數(shù)組或數(shù)組數(shù)據(jù)
//
////////////////////////////////////////////////////////////////////////////
end;
const
//////////////////////////////////////////////////////////////////////////////
// 以下常量用于 ARG_INFO 結(jié)構(gòu)中的 m_dwState 成員
AS_HAS_DEFAULT_VALUE = 1; // 本參數(shù)有默認(rèn)值,默認(rèn)值在m_nDefault中說明,與下標(biāo)志互斥
AS_DEFAULT_VALUE_IS_EMPTY = 2; // 本參數(shù)有默認(rèn)值,默認(rèn)值為空,與上標(biāo)志互斥
//(下面5個標(biāo)志位只能取其一)
AS_RECEIVE_VAR = 4; // 為本參數(shù)提供數(shù)據(jù)時必須提供非數(shù)組型容器(!!!注意:必須是“容器(變量)”,而不能是類似123,"abc"的數(shù)據(jù)。下同。 ——liigo注)
AS_RECEIVE_VAR_ARRAY = 8; // 為本參數(shù)提供數(shù)據(jù)時必須提供數(shù)組型容器
AS_RECEIVE_VAR_OR_ARRAY = 16; // 為本參數(shù)提供數(shù)據(jù)時必須提供數(shù)組或非數(shù)組型容器
AS_RECEIVE_ARRAY_DATA = 32; // 為本參數(shù)提供數(shù)據(jù)時必須提供數(shù)組型數(shù)據(jù)
AS_RECEIVE_ALL_TYPE_DATA = 64; // 為本參數(shù)提供數(shù)據(jù)時可以提供非數(shù)組或數(shù)組數(shù)據(jù)
//////////////////////////////////////////////////////////////////////////////
type
//////////////////////////////////////////////////////////////////////////////
// “命令信息”數(shù)據(jù)結(jié)構(gòu) CMD_INFO
pCMD_INFO = ^CMD_INFO;
CMD_INFO = record
m_szName : PChar; // 命令中文名稱
m_szEGName : PChar; // 命令英文名稱,可以為空或nil
m_szExplain : PChar; // 命令詳細(xì)解釋
m_shtCategory : Word; // 全局命令的所屬類別,從1開始,減一后的值為指向LIB_INFO的m_szzCategory成員所提供的某個類別字符串的索引; 對象成員命令的此值為-1
m_wState : Word; // 命令狀態(tài),見后面的說明及常量定義
m_dtRetType : DATA_TYPE; // 返回值類型(!!!!! 千萬注意:如果返回值類型定義為_SDT_ALL,絕對不能返回數(shù)組(即CT_RETURN_ARRAY_DATA置位)或復(fù)合數(shù)據(jù)類型的數(shù)據(jù)(即用戶或庫自定義數(shù)據(jù)類型但不包含窗口或菜單單元),因為用戶程序無法自動刪除復(fù)合類型中所分配的額外空間(如文本型或者字節(jié)集型成員等))
m_wReserved : Word; // 保留,必須為0
m_shtUserLevel : Word; // 難度等級,取值1,2,3,分別代表“初-中-高”級;見后面的說明及常量定義
m_shtBitmapIndex : Word; // 指定圖像索引,從1開始,0表示無。減一后的值為指向支持庫中名為"LIB_BITMAP"的BITMAP資源中某一部分16X13位圖的索引
m_shtBitmapCount : Word; // 圖像數(shù)目(用作為IDE提供動畫圖片)
m_nArgCount : LongWord; // 命令的參數(shù)數(shù)目
m_pBeginArgInfo : pARG_INFO; // 指向本命令的參數(shù)定義信息數(shù)組
////////////////////////////////////////////////////////////////////////////
//
// 其中, m_wState 取 0 或以下值的組合:(0 表示該命令為正常命令)
// CT_IS_HIDED = 4; // 本命令是否為隱含命令(即不需要由用戶直接輸入的命令(如循環(huán)結(jié)束命令)或被廢棄但為了保持兼容性又要存在的命令)
// CT_IS_ERROR = 8; // 本命令在本庫中不能使用,具有此標(biāo)志一定隱含,主要用作在不同語言版本的相同庫中使用,即:A命令在A語言版本庫中可能需要實現(xiàn)并使用,但在B語言版本庫中可能就不需要。如果程序中使用了具有此標(biāo)志的命令,則只能支持該程序調(diào)入和編譯,而不能支持運(yùn)行。如具有此標(biāo)志,可以不實現(xiàn)本命令的執(zhí)行部分。
// CT_DISABLED_IN_RELEASE_VER = 16; // 具有本標(biāo)志的命令在易語言系統(tǒng)編譯RELEASE版易程序時將被跳過,本類型命令必須無返回值
// CT_ALLOW_APPEND_NEW_ARG = 32; // 在本命令的參數(shù)表的末尾是否可以添加新的參數(shù),新參數(shù)等同于參數(shù)表中的最后一個參數(shù)
// CT_RETURN_ARRAY_DATA = 64; // 用于說明m_dtRetType,是否返回數(shù)組數(shù)據(jù)
//
// 其中, m_shtUserLevel 取以下值之一:
// LVL_SIMPLE = 1; // 初級
// LVL_SECONDARY = 2; // 中級
// LVL_HIGH = 3; // 高級
//
// !!!!! 千萬注意:如果返回值類型(m_dtRetType)定義為 _SDT_ALL ,
// 絕對不能返回數(shù)組(即CT_RETURN_ARRAY_DATA置位)或復(fù)合數(shù)據(jù)類型的數(shù)據(jù)(即用戶或庫自定義數(shù)據(jù)類型但不包含窗口或菜單單元),
// 因為用戶程序無法自動刪除復(fù)合類型中所分配的額外空間(如文本型或者字節(jié)集型成員等) !!!!!
//
////////////////////////////////////////////////////////////////////////////
end;
const
//////////////////////////////////////////////////////////////////////////////
// 以下常量用于 CMD_INFO 結(jié)構(gòu)的 m_wState 和 m_shtUserLevel 成員中:
// 命令狀態(tài)(m_wState)
CT_IS_HIDED = 4; // 本命令是否為隱含命令(即不需要由用戶直接輸入的命令(如循環(huán)結(jié)束命令)或被廢棄但為了保持兼容性又要存在的命令)
CT_IS_ERROR = 8; // 本命令在本庫中不能使用,具有此標(biāo)志一定隱含,主要用作在不同語言版本的相同庫中使用,即:A命令在A語言版本庫中可能需要實現(xiàn)并使用,但在B語言版本庫中可能就不需要。如果程序中使用了具有此標(biāo)志的命令,則只能支持該程序調(diào)入和編譯,而不能支持運(yùn)行。如具有此標(biāo)志,可以不實現(xiàn)本命令的執(zhí)行部分。
CT_DISABLED_IN_RELEASE_VER = 16; // 具有本標(biāo)志的命令在易語言系統(tǒng)編譯RELEASE版易程序時將被跳過,本類型命令必須無返回值
CT_ALLOW_APPEND_NEW_ARG = 32; // 在本命令的參數(shù)表的末尾是否可以添加新的參數(shù),新參數(shù)等同于參數(shù)表中的最后一個參數(shù)
CT_RETURN_ARRAY_DATA = 64; // 用于說明m_dtRetType,是否返回數(shù)組數(shù)據(jù)
// 命令的難度等級(m_shtUserLevel)
LVL_SIMPLE = 1; // 初級
LVL_SECONDARY = 2; // 中級
LVL_HIGH = 3; // 高級
//////////////////////////////////////////////////////////////////////////////
const
//////////////////////////////////////////////////////////////////////////////
// 以下常量用作區(qū)分?jǐn)?shù)據(jù)類型的類別
DTM_SYS_DATA_TYPE_MASK = $80000000; // 系統(tǒng)定義數(shù)據(jù)類型
DTM_USER_DATA_TYPE_MASK = $40000000; // 用戶定義數(shù)據(jù)類型
DTM_LIB_DATA_TYPE_MASK = $00000000; // 庫定義數(shù)據(jù)類型
//////////////////////////////////////////////////////////////////////////////
// DT_IS_ARY:在數(shù)據(jù)類型中的數(shù)組標(biāo)志。如果某數(shù)據(jù)類型值此位置1,則表示為此數(shù)據(jù)類型的數(shù)組。
// 本標(biāo)志僅用作在運(yùn)行時為具有AS_RECEIVE_VAR_OR_ARRAY或AS_RECEIVE_ALL_TYPE_DATA
// 標(biāo)志的庫命令參數(shù)說明其為是否為數(shù)組數(shù)據(jù),其他場合均未使用。因此其他地方均可以忽略本標(biāo)志。
DT_IS_ARY = $20000000;
type
pLIB_DATA_TYPE_ELEMENT = ^LIB_DATA_TYPE_ELEMENT;
LIB_DATA_TYPE_ELEMENT = record
m_dtDataType : DATA_TYPE ; // 本數(shù)據(jù)成員的數(shù)據(jù)類型。
m_pArySpec : ^BYTE; // 如果本成員為數(shù)組,則本成員提供數(shù)組指定串,否則此值為NULL。數(shù)組指定串的格式為:首先為一個Byte記錄該數(shù)組的維數(shù)(如果為0表示不為數(shù)組,最大值為0x7f),然后為對應(yīng)數(shù)目的Integer值順序記錄對應(yīng)維的元素數(shù)目。
m_szName : PChar; // 本數(shù)據(jù)成員的名稱,如果本數(shù)據(jù)成員所屬的數(shù)據(jù)類型只有這一個數(shù)據(jù)成員,此值應(yīng)該為NULL。
m_szEGName : PChar; // 本數(shù)據(jù)成員的英文名稱,可以為空或NULL。
m_szExplain : PChar; // 本數(shù)據(jù)成員的詳細(xì)說明。
m_dwState : LongWord; // 狀態(tài)值,指定本數(shù)據(jù)成員是否有默認(rèn)值。見下面的常量定義(const LES_HAS_DEFAULT_VALUE = (1 shl 0);)。
m_nDefault : Integer; // 默認(rèn)值,僅當(dāng) m_dwState 包含 LES_HAS_DEFAULT_VALUE 標(biāo)志且非數(shù)組時才有效。
////////////////////////////////////////////////////////////////////////////
//
// 關(guān)于數(shù)據(jù)成員的默認(rèn)值(m_nDefault):
//
// 1、數(shù)值型:直接為數(shù)值(如為小數(shù),只能指定其整數(shù)部分,如為長整數(shù),只能指定不超過INT限值的部分);
// 2、邏輯型:1 代表真,0 代表假;
// 3、文本型:本變量此時為PChar指針,指向默認(rèn)文本串;
// 4、其它所有類型參數(shù)一律無默認(rèn)指定值。
//
////////////////////////////////////////////////////////////////////////////
end;
const
//////////////////////////////////////////////////////////////////////////////
// 以下常量用于LIB_DATA_TYPE_ELEMENT結(jié)構(gòu)的m_dwState成員
LES_HAS_DEFAULT_VALUE = (1 shl 0); // 本數(shù)據(jù)成員有默認(rèn)值,默認(rèn)值在m_nDefault中說明。
type
//////////////////////////////////////////////////////////////////////////////
// “窗口單元屬性”:UNIT_PROPERTY
pUNIT_PROPERTY = ^UNIT_PROPERTY;
UNIT_PROPERTY = record
m_szName : PChar; // 屬性名稱,注意為利于在屬性表中同時設(shè)置多對象的屬性,相同意義屬性的名稱最好一致。
m_szEGName : PChar; // 英文名稱。
m_szExplain : PChar; // 屬性解釋。
m_shtType : SmallInt; // 屬性的數(shù)據(jù)類型,見下面的常量定義
m_wState : Word; // 狀態(tài)值,見下面的常量定義
m_szzPickStr : PChar; // 順序記錄以"\0"分隔的所有備選文本(除開UD_FILE_NAME為所說明的特殊格式),最后以一個"\0"結(jié)束。當(dāng)m_nType為UP_PICK_INT、UP_PICK_TEXT、UD_EDIT_PICK_TEXT、UD_FILE_NAME時不能為NULL。
end;
//////////////////////////////////////////////////////////////////////////////
const
//////////////////////////////////////////////////////////////////////////////
// 以下常量用于UNIT_PROPERTY結(jié)構(gòu)的m_shtType和m_wState成員
// “窗口單元屬性”的數(shù)據(jù)類型(m_shtType)
UD_INT = 1001; // 數(shù)據(jù)為INT值
UD_DOUBLE = 1002; // 數(shù)據(jù)為DOUBLE值
UD_BOOL = 1003; // 數(shù)據(jù)為BOOL值
UD_DATE_TIME = 1004; // 數(shù)據(jù)為DATE值
UD_TEXT = 1005; // 數(shù)據(jù)為字符串
UD_PICK_INT = 1006; // 數(shù)據(jù)為INT值,用戶只能選擇,不能編輯。
UD_PICK_TEXT = 1007; // 數(shù)據(jù)為待選字符串,用戶只能選擇,不能編輯。
UD_EDIT_PICK_TEXT = 1008; // 數(shù)據(jù)為待選字符串,用戶可以編輯。
UD_PIC = 1009; // 為圖片文件數(shù)據(jù)
UD_ICON = 1010; // 為圖標(biāo)文件數(shù)據(jù)
UD_CURSOR = 1011; // 第一個INT記錄鼠標(biāo)指針類型,具體值見Windows API的LoadCursor函數(shù)。如為-1,則為自定義鼠標(biāo)指針,此時后跟相應(yīng)長度的鼠標(biāo)指針文件內(nèi)容。
UD_MUSIC = 1012; // 為聲音文件數(shù)據(jù)
UD_FONT = 1013; // 為一個LOGFONT數(shù)據(jù)結(jié)構(gòu),不能再改。
UD_COLOR = 1014; // 數(shù)據(jù)為COLORREF值。
UD_COLOR_TRANS = 1015; // 數(shù)據(jù)為COLORREF值,允許透明顏色(用CLR_DEFAULT代表,CLR_DEFAULT在VC++的COMMCTRL.H頭文件中定義)。
UD_FILE_NAME = 1016; // 數(shù)據(jù)為文件名字符串。此時m_szzPickStr中的數(shù)據(jù)為:對話框標(biāo)題 + "\0" + 文件過濾器串 + "\0" + 默認(rèn)后綴 + "\0" + "1"(取保存文件名)或"0"(取讀入文件名)+ "\0" 。
UD_COLOR_BACK = 1017; // 數(shù)據(jù)為COLORREF值,允許系統(tǒng)默認(rèn)背景顏色(用CLR_DEFAULT代表)。
UD_ODBC_CONNECT_STR = 1021; // ODBC數(shù)據(jù)連接文本
UD_ODBC_SELECT_STR = 1022; // ODBC數(shù)據(jù)查詢SQL文本
UD_IMAGE_LIST = 1023; // 圖片組,數(shù)據(jù)結(jié)構(gòu)為
{ #define IMAGE_LIST_DATA_MARK (MAKELONG ('IM', 'LT'))
/*
DWORD: 標(biāo)志數(shù)據(jù):為 IMAGE_LIST_DATA_MARK
COLORREF: 透明顏色(可以為CLR_DEFAULT)
后面為圖片組數(shù)據(jù),用CImageList::Read和CImageList::Write讀寫。
*/
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -