免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
DELPHI常見屬性說明【二】

DELPHI常見屬性說明【二】

(2014-03-23 18:57:18)


常用DELPHI控件屬性設置說明
目錄
TForm Class 
TPanel組件 
TToolBar Class 
TToolButton Class 
TTimer Class 
TADOConnection Class 
TADOQuery Class 
TADODataSet Class 
TDBGrid Class 
TADOStoredProc Class 
TButton Class 
TBitBtn Class 
TComboBox Class 
TStaticText Class 
TLabel Class 
TEdit Class 
TGroupBox Class 
TRadioGroup Class 
TListbox Class 
TTreeView Class 
TDataModule Class 
VC++使用串口 
I. Open 16
II. Configuration 
III. Read 
IV. Write 
V. Close 
Conclusion 
License 
TForm Class
TForm代表一個標準的應用程序窗口。
在設計階段,當你在窗體設計器內創(chuàng)建窗體時,他們作為窗體類的子節(jié)點被執(zhí)行。窗體能代表應用程序的主窗口,或者對話框,或MDI的children。一個窗體能包含其它對象,如TButton,TCheckBox和TComboBox對象等。

ArrangeIcons:安排最小化MDI子窗體的圖標;
Cascade:排列MDI子窗體,使他們重疊;
Next:激活在窗體隊列中的下一個子窗體;
Previous:激活在窗體隊列中的前一個MDI子窗體;
Title:排列MDI子窗體,使他們都是一樣的大小。

Action:指定與控件有關的活動;
ActiveControl:指定以窗體為焦點的控件;
Align:控件如何??吭谌萜鳎ǜ缚丶┲?;
AlphaBlend:指定窗體是否透明;
AlphaBlendValue:指定一個透明窗體的半透明度;
Anchors:指定控件如何固定到其父控件上;
AutoScroll:如果窗口不足以顯示它內部的所有控件時,滾動條是否自動顯示在滾動窗口控件中;
AutoSize:指定控件是否自動調節(jié)其大小去容納自身內容;
BiDiMode:指定控件的雙向風格;
BorderIcons:指定顯示在窗體標題欄的圖標;
BorderStyle:指定窗體邊框的外表和行為;
BorderWidth:指定控件邊框的寬度;
Caption:指定用戶辨別控件的文本字符串;
ClientHeight:指定窗體客戶區(qū)域的高度(像素);
ClientWidth:指定窗體客戶區(qū)域的寬度(像素);
Clore:指定控件的背景色;
Constraints:指定控件的尺寸約束。
Ctl3D:指定控件是擁有3D還是2D外觀。
DefaultMonitor:指定窗體顯示所用的顯示器;
DockSite:控件是否可以是拖拽操作的目標;
DoubleBuffered:決定控件影像是被直接呈現(xiàn)到窗口還是首先被描繪做內存位圖;(描繪道內存可防止窗口閃爍,但耗費內存。)
DragKind:指定控件是被正常拖拽還是???;
Dragmode:決定控件怎樣啟動拖放或拖靠;
Enabled:控件是否響應鼠標、鍵盤和定時器事件;
Font:控制控件上顯示的文本的屬性;
FormStyle:決定窗體風格;
GlassFrame:這是一個窗體架構,窗體類的一個成員;
Height:指定控件的垂直尺寸(像素);
HelpFile:指定窗體的幫助文件名;
HorzScrollBar:滾動窗體控件的水平滾動條;
Icon:當窗體最小化時顯示的圖標;
KeyPreview:指定窗體是否在活動控件之前接收鍵盤事件;
Menu:指定窗體德爾主菜單;
ObjectmenuItem:代表一個對OLE對象的選擇響應的OLE菜單項;
OldCreateOrder:指定OnCreate事件和OnDestroy事件發(fā)生的時間;
Padding:指定控件的襯墊;
ParentBiDiMode:指定控件是否使用父控件的BiDiMode屬性;
ParentFont:決定在哪里找到控件的字體信息;
PixelsPerInch:描述在設計窗體的系統(tǒng)中字體的比例;
PopupMenu:確定與控件有關的彈出菜單;
PopupMode:控制最高層窗體如何表現(xiàn)得如同window的WS_POPUP的風格;
PopupParent:為窗體棧設置一個用戶不能改變的順序;
Position:描繪窗體的尺寸和位置;
PrintScale:描繪打印窗體的比例;
Scaled:指定窗體是否依PixelPerInch屬性的值確定大??;
ScreenSnap:指定窗體是否對齊到屏幕的邊緣;
ShowHint:決定當鼠標在控件上短暫停留時,控件是否顯示幫助提示;
SnapBuffer:指定屏幕對齊的間隔;
TransparentColor:指定窗體的顏色是否透明顯示;
TransparentColorValue:當TransparentColor為true時,指示窗體顏色的半透明值;
UseDockManager:指示在拖靠操作中是否使用??抗芾砥?;
VertScrollBar:描繪滾動窗體控件的垂直滾動條;
Visible:指示窗體是否可見;
Width:指示控件或窗體的水平尺寸(像素);
WindowMenu:為MDI父窗體指定window菜單;
WindowState:指定窗體在屏幕上的顯示方式;

OnActivate:當窗體變成活動窗體時發(fā)生;
OnAlignInsertBefore:當一個擁有自定義對齊的對象被對齊時發(fā)生;
OnAlignPosition:當一個擁有自定義對齊的對象被對齊時發(fā)生;
OnCanResize:當試圖調整控件尺寸時發(fā)生;
OnClick:當用戶鼠標點擊控件時發(fā)生;
OnClose:當窗體關閉時發(fā)生;
OnCloseQuery:當試圖關閉窗體時發(fā)生;
OnConstrainedResize:使調整大小約束合適;
OnContexPopup:當用戶右鍵點擊控件或其它引起彈出菜單(如:使用鍵盤)時發(fā)生;
OnCreate:當窗體被創(chuàng)建時發(fā)生;
OnDblClick:當用戶在控件上雙擊鼠標按鈕時發(fā)生;
OnDeactivate:當窗體失去焦點是發(fā)生;
OnDestroy:當窗體被銷毀時發(fā)生;
OnDockDrop:當另一個控件停駐到本控件時發(fā)生;
OnDockOver:當另一控件被拖出本控件時發(fā)生;
OnDragDrop:當用戶拖下一個被拖動的對象時發(fā)生;
OnDragOver:當用戶把一個對象拖上控件時發(fā)生;
OnEndDock:當用戶拖動一個對象結束,要么??繉ο笠慈∠蟿樱?br style="Line-HeiGHT: 28px">OnGetSiteInfo:返回控件的??啃畔ⅲ?br style="Line-HeiGHT: 28px">OnHelp:當窗體接收到一個幫助請求時發(fā)生;
OnHide:當窗體被隱藏(即Visible屬性被設置成false)時發(fā)生;
OnKeyDown:當控件擁有焦點,用戶按下任意鍵時發(fā)生;
OnKeyPress:當一個鍵盤鍵被按時發(fā)生;
OnKeyUp:當用戶釋放一個被按下的鍵盤鍵時發(fā)生;
OnMouseActivate:當控件的父窗體非活動,鼠標指針在控件上,用戶按下鼠標按鈕時發(fā)生;
OnMouseDown當鼠標指針在控件上用戶按下鼠標按鈕時發(fā)生;
OnMouseEnter:當用戶把鼠標移動到控件上時發(fā)生;
OnMouseLeave:當用戶把鼠標移出控件時發(fā)生;
OnMouseMove:當鼠標指針在控件上用戶移動鼠標指針時發(fā)生;
OnMouseUp:當用戶釋放一個按在組件上的鼠標按鈕時發(fā)生;
OnMouseWheel:當鼠標滾輪滾動時發(fā)生;
OnMouseWheelDown:當鼠標滾輪向下滾動時發(fā)生;
OnMouseWheelUp:當鼠標滾輪向上滾動時發(fā)生;
OnPaint:當窗體被重新繪制時發(fā)生;
OnResize:當控件被調整大小后立即發(fā)生;
OnShortCut:當用戶按下一個鍵盤鍵時發(fā)生(在OnKeyDown事件前);
OnShow:當窗體被顯示時發(fā)生(還需要窗體的Visible被設置為true);
OnStartDock:當用戶開始拖拽一個DragKind屬性是dkDock的控件時發(fā)生;
OnUnDock:當應用程序試圖去移除一個被拖入有窗口的控件中的控件時發(fā)生;

TLoginDialog Class
TLoginDialog是一個在應用程序里提供安全登錄的對話框。
function LoginDialog(const ADatabaseName: string; var AUserName:string; var APassword: string): Boolean;
通常,一個TLoginDialog對象是和LoginDialogEx或RemoteLoginDialog函數(shù)一起被創(chuàng)建,并用于提供對一個當?shù)財?shù)據(jù)庫表的安全訪問。然而TLoginDialog也能被用做其它登錄對話框的基對象。
調用LoginDialogEx提出標準登錄窗口提示用戶輸入有效的用戶名和密碼。ADatabaseName指定被訪問的數(shù)據(jù)庫。NameReadOnly指定用戶是否可以改變從對話框中獲得的用戶名。
function LoginDialogEx(const ADatabaseName: string; var AUserName:string; var APassword: string; NameReadOnly: Boolean):Boolean;
此對話框返回用戶名和密碼作為AUserName和APassword的值。
如果用戶取消對話框,那么LoginDialogEx返回false。如果LoginDialogEx返回true,那么應用程序就能提示用提供的用戶名和密碼連接數(shù)據(jù)庫服務器。
提示:當在C++中創(chuàng)建跨平臺的應用程序,添加QDBLogDlg.pasunit(而不是DBLogDlg)到工程中,如果你想要默認的數(shù)據(jù)庫登錄對話框在運行時顯示。如果你的C++應用程序中包含一個DBGrid組件,QDBLogDlg就不需要被包含進去了。
用TPasswordDialog允許用戶為基于BDE的應用程序指定登錄密碼(登錄通過TSession對象表現(xiàn)出來)。密碼被用于應用程序打開一個請求輸入密碼的Paradox數(shù)據(jù)表。
TPasswordDialog對象通常使用PasswordDialog函數(shù)創(chuàng)建。然而TPasswordDialog也能被用作另一類密碼對話窗口的基對象。
function PasswordDialog(const ASession: IDBSession):Boolean;
顯示一個對話窗口,提示用戶輸入局部受密碼保護的表對應的密碼。
TPanel組件
使用TPanel把一個面板(panel)放到窗體上。面板擁有提供控件邊框傾斜度的屬性和方法幫助管理子控件嵌入面板中。
你也可以用面板把控件聚集在一起,就好像使用一個group box,但是擁有傾斜邊框而不是groupbox輪廓。在單窗體中,panel專門用于控件組。如果你打算在其它的窗體內使用相同的分組,你可能想去使用frame代替。在寫使用drag-and-dock的應用程序時,沒有邊框的panel是有用的去做停靠站。
盡管你能使用panel實現(xiàn)狀態(tài)條和工具條,請不要忘記你也可以使用TToolBar、TStatusBar類完成相同功能。
arr:array[0..3]of TPanel;
Align:決定控件在容器(父控件)中的對齊方式;
Alignment:panel中標題(Caption)的對齊方式;
Anchors:指定控件怎樣被固定到它的父窗體上;
AutoSize:指定控件是否自動調整自身大小以容納它的內容;
BevelEdges:指定控件的哪條邊框是傾斜的;
BevelInner:決定panel內邊框風格;
BevelKind:指定控件的傾斜風格;
BevelOuter:決定panel外邊框的傾斜風格;
BevelWidth:決定panel內外邊框的傾斜寬度(像素);
BiDiMode:指定控件的雙向模式;
BorderStyle:決定panel控件邊框線的風格;
BorderWidth:指定內外邊框的距離(像素);
Caption:用戶識別控件所用的文本字符串;
Color:指定控件的背景色;
Constraints:指定控件的尺寸約束條件;
Ctl3D:決定控件擁有三維還是二維視圖;
DockSite:指定控件能否執(zhí)行拖拽操作;
DoubleBuffered:決定控件的影像是被直接描繪到窗口還是首先被繪制成內存位圖;
DragCursor:當控件被拖動時,被用于代表鼠標指針的圖片;
DragKind:指定控件是被正常拖動還是???;
DragMode:決定控件怎樣啟動拖入拖出操作;
Enabled:控制控件是否響應鼠標、鍵盤和定時器事件;
Font:控制寫入控件的文本的屬性;
FullRepaint:決定當panel尺寸改變時怎樣重繪自身;
Locked:決定被用于工具條的panel是否被OLE服務器提供的工具條替換。
Padding:指定控件的襯墊;
ParentBackground:決定控件是否使用父主題的背景;
ParentBiDiMode:同上;
ParentColor:同上;
ParentCtl3D:同上;
ParentDooubleBuffered:同上;
ParentFont:同上;
ParentShowHint:同上;
PopupMenu:識別與控件有關的彈出菜單;
ShowCaption:TPanel類的成員;
ShowHint:當鼠標短暫停留在控件上時是否顯示控件的幫助提示;
TabOrder:在parent’s Tab order中,指示控件在位置;
TabStop:決定用戶是否能Tab to控件;
UseDockManmager:指定在拖拽操作中是否使用??抗芾砥鳎?br style="Line-HeiGHT: 28px">VerticalAlignment:設置標題的垂直位置;
Visible:決定組件是否顯示在屏幕上;

OnAlignInsertBefore:當一個具有客戶點校整的對象被調整時發(fā)生;
OnAlignPosition:當一個具有客戶點校整的對象被定位時發(fā)生;
OnCanResize:當試圖調整控件大小時發(fā)生;
OnClick:當用戶點擊控件時發(fā)生;
OnConstrainedResize:調整大小限制;
OnContextPopup:當用戶右擊控件或者引發(fā)彈出菜單(如使用鍵盤)時發(fā)生;
OnDblClick:當鼠標指針在控件上,用戶雙擊鼠標左鍵時發(fā)生;
OnDockDrop:當另一個控件??吭诒究丶蠒r發(fā)生;

TToolBar Class
TToolBar管理工具按鈕和其它控件,把它們排成行并且讓它們自動適應它們的大小和位置。
TToolBar=class(TToolWindow);
TToolBar是工具按鈕(TToolButton)的容器。它提供一個簡單的辦法去排列和管理虛擬控件。
在一個工具條內的所有工具按鈕都保持統(tǒng)一的寬度和高度。
其它控件能放置到工具條上。這些固定在不可見工具按鈕上的控件保持一個統(tǒng)一的高度。
在工具條上,當控件放不下時,這些控件就會自動環(huán)繞并且開辟新行以容納控件。
Flat屬性允許透過工具條顯示背景并且把突出邊框給工具按鈕。
一般來講,工具按鈕響應應用程序菜單項,并提供用戶對應用程序命令更直接的訪問。
Public Properties:
ButtonCount:給出工具條中按鈕的數(shù)量;
Buttons:在工具條中列出工具按鈕;
Canvas:指定工具條的皮膚;
CustomizeKeyName:在用戶使用工具條自定義對話框改變它之前,指定registrykey(工具條將其現(xiàn)有按鈕配置保存的位置);
CustomizeValueName:指定registry value;
RowCount:指示工具條的行數(shù);
Published Properties:
Align:決定控件怎樣和它所在的容器對齊;
AllowTextButtons:決定僅有文本組成的工具按鈕是否能被工具條替代;
Anchors:指定控件怎樣固定到其父控件中;
AutoSize:指示工具條的高度是否自動改變以容乃它包含的控件;
BorderWidth:指定工具條的邊框寬度;
ButtonHeight:指定工具條中控件的高度;
ButtonWidth:指定在工具條中的工具按鈕的寬度;
Caption:指定一個用戶識別控件的文本字符串;
Color:指定控件的背景色;
Constraints:指定控件的尺寸約束;
Ctl3D:決定控件是否擁有3D視圖;
Customizable:指定在運行時用戶是否能定制用戶界面工具條;
DisabledImages:列出可以顯示不可用工具按鈕的圖片;
DockSite:指定控件是否能作為拖動和??坎僮鞯哪繕耍?br style="Line-HeiGHT: 28px">DoubleBuffered:Determines whether the control's image is rendereddirectly to the window or painted to an in-memory bitmapfirst.
DragCursor:當控件被拖動時鼠標指針的形狀;
DranKind:指定控件是被正常拖動還是??浚?br style="Line-HeiGHT: 28px">DragMode:Determines how the control initiates drag-and-drop ordrag-and-dock operations.
DrawingStyle:存儲風格類型;
EdgeBorders:決定工具條的那一邊有邊界;
EdgeInner:決定工具條內部邊緣的邊框風格;
EdgeOuter:決定工具條外部邊緣的邊框風格;
Enabled:控制控件是否響應鼠標、鍵盤和定時器事件;
Flat:使工具條半透明并且消除工具按鈕邊框;
Font:控制控件上書寫的文本的屬性;
GradientDirection:指定傾斜方向是水平還是垂直;
GradientDrawingOptions:存儲已選定的繪畫選項;
GradientEndColor:斜坡的結束色;
GradientStartColor:斜坡的開始色;
Height:指定控件的垂直尺寸;
HideClippedButtons:指定通過鄰近工具條掩蓋按鈕操作;
HotImages:列出當鼠標指向工具按鈕時在工具按鈕上顯示的圖片;
HotTrackColor:在傾斜風格中最新的跟蹤色;
Images:列出工具按鈕上顯示的圖片;
Indent:指定工具條左邊的頁邊空白;
List:在工具按鈕的右邊顯示主題,左邊顯示圖片;
Menu:工具條關聯(lián)的菜單項;
ParentColor:決定控件在哪里尋找它的顏色信息;
PopupMenu:認出和空間有關的彈出菜單;
ShowCaption:決定是否在工具按鈕上顯示文本主題;
ShowHint:決定當鼠標指針短暫停留在控件上時,控件是否顯示幫助提示;
TabOrder:指示在父背的tab順序里控件的位置;
TabStop:決定用戶是否可以使用tab鍵使控件獲得焦點;
Transparent:指定工具條是否透明;
Visible:決定組建是否顯示在屏幕上;
Wrapable:自動調整工具條上的組件包;

OnAdvandedCustomDraw:發(fā)生在繪制工具條背景期間的離散階段;
OnAdvancedCustomDrawButton:發(fā)生在繪制工具條按鈕期間的離散階段;
OnClick:當用戶點擊控件時發(fā)生;
OnContextPopup:當用戶右鍵點擊控件或其它引發(fā)彈出菜單(如使用鍵盤)時發(fā)生;
OnCustomDraw:當工具條必須被繪制時發(fā)生;
OnCustomDrawButton:當在工具條上的一個按鈕必須被繪制時發(fā)生;
OnCustomizeAdded:當用戶向工具條添加一個按鈕時發(fā)生;
OnCustomizeCanDelete:當用戶試圖刪除工具條上的一個按鈕時發(fā)生;
OnCustomizeCanInsert:當用戶試圖向工具條添加一個按鈕時發(fā)生;
OnCustomized:當用戶結束更改工具條時發(fā)生;
OnCustomizeDelete:當用戶從工具條上刪除一個按鈕時發(fā)生;
OncustomizeNewButton:當用戶試圖向工具條添加一個新按鈕時發(fā)生;
OnCustomizeReset:當用戶取消工具條的用戶化時發(fā)生;
OnCustomizing:當用戶顯示工具條定制對話框為了改變工具條時發(fā)生;
OnDbClick:當鼠標指針在控件上,用戶雙擊鼠標左鍵時發(fā)生;
OnDockDrop、OnDockOver、OnDragDrop、OnDragOver、OnEndDock、OnEndDrag
OnEnter:當一個控件接收到輸入焦點時發(fā)生;
OnExit:當輸入焦點從一個控件移到另一個控件時發(fā)生;
OnGetSiteInfo:返回控件的??啃畔ⅲ?br style="Line-HeiGHT: 28px">OnMouseActivate:當鼠標指針在控件上,控件的父窗體非活動而用戶按下一個鼠標按鈕時發(fā)生;
OnMouseDown:當鼠標指針在控件上,而用戶又按下一個鼠標按鈕時發(fā)生;
OnMouseEnter:當用戶把鼠標指針移到一個控件上時發(fā)生;
OnMouseLeave:當用戶把鼠標指針移出控件時發(fā)生;
OnMouseMove:當鼠標指針在控件上,用戶移動鼠標指針時發(fā)生;
OnMouseUp:當用戶釋放按在組件上的鼠標指針時發(fā)生;
OnResize:控件尺寸改變后立即發(fā)生;
OnStartDock:DragKind屬性為dkDock,當用戶開始拖動一個控件時發(fā)生;
OnStartDrag:當用戶開始拖動一個控件或包含有鼠標保持按下狀態(tài)在控件上的對象時發(fā)生;
OnUnDock:當應用程序試圖移出一個已??吭诖翱诳丶系目丶r發(fā)生;

TToolButton Class
TToolButton是工具條對象上的一個按鈕控件。
TToolButton = class(TGraphicControl);
使用TToolButtoon實施工具條上的按鈕。在工具條上,其它控件(包括TButton和TSpeedButton)能被替代掉時,TToolButton使用特殊的工具條特征簡化按鈕布局,提供諸如彈出邊框和透明度等的選項;
在設計階段在工具條上放置工具按鈕,選擇工具條->右鍵->New Button。
Public Properties
Index:指定工具按鈕的索引;
Published Properties
Action:指派與控件有關的行為;
AllowAllUp:指定是否在同一組中的所有工具按鈕可以同時不被選中;
AutoSize:指定是否工具按鈕自動調整大小以容納它的文本和圖片;
Caption:指定按鈕主題;
Down:指定是否按鈕被選擇(down)還是未被選擇(up);
DragCursor:當控件被拖動時,指示代表鼠標指針的圖片;
DragKind:Specifies whether the control is being dragged normally orfor docking.
DragMode:Determines how the control initiates drag-and-drop ordrag-and-dock operations.
DropdownMenu:識別一個與工具按鈕有關的彈出菜單;
Enabled:控制控件是否響應鼠標、鍵盤和定時器事件;
Grouped:聚集一些相鄰的工具條按鈕;
Height:指定控件的垂直尺寸(像素);
ImageIndex:決定哪張圖片顯示在工具按鈕上;
Indeterminate:指定工具按鈕既不被選擇也不未被選擇;
Marked:指定按鈕是否被標記;
MenuItem:指定響應按鈕的菜單項;
ParentShowHint:決定當控件的幫助提示應該顯示時,控件到那找到這個提示;
PopupMenu:指定與控件有關的彈出菜單;
ShowHint:決定當鼠標短暫停留在控件上時,控件是否顯示幫助提示;
Style:決定工具按鈕的風格;
Visible:決定組建是否顯示在屏幕上;
Width:指定窗體控件的水平尺寸(像素);
Wrap:Forces a new row after the tool button.

TTimer Class
TTimer被用于簡化調用WindowsAPI定時器函數(shù)SetTimer和KillTimer,簡化處理WM_TIMER消息。在應用程序中一個TTimer組件對應一個定時器。
定時器通過它的OnTimer事件執(zhí)行。TTimer有一個Interval屬性,它決定了OnTimer事件發(fā)生的頻率。Interval和WindowsAPI的SetTimer函數(shù)的參數(shù)相對應。
注意:全系統(tǒng)所能擁有的定時器的數(shù)量限制和系統(tǒng)有關。

TADOConnection Class
TADOConnection壓縮了ADO連接對象。使用TADOConnection連接到ADO數(shù)據(jù)存儲。通過一個單獨TADOConnection組件提供的連接能被多個ADO命令和數(shù)據(jù)集組件通過它們的連接屬性共享。
TADOConnection = class(TCustomConnection, IUnknown,ConnectionEventsVT);
TADOConnection允許你控制連接到數(shù)據(jù)存儲的屬性和狀況。使用TADOConnection的屬性去控制這些諸如記錄鎖計劃(樂觀鎖或非樂觀鎖)、光標類型、光標定位、隔離級別和連接超時等屬性。方法提供了實施業(yè)務和獲得關于組件連接到的數(shù)據(jù)庫的元數(shù)據(jù)。
Public Properties
CommandCount:指示和連接有關的命令組件的數(shù)量;
Commands:列出連接組件的所有活動命令;
ConnectionObject:提供直接訪問ADO連接對象;
DataSets:為一個連接組件提供活動的數(shù)據(jù)集的索引數(shù)組;
Errors:Errors是錯誤集的一個補充;
InTransaction::指示業(yè)務是否正在進展中;
Properties:TADOConnection類的一個成員;
State:指示ADO連接現(xiàn)在的狀態(tài);
Version:指示使用的ADO的版本;
Published Properties
Attributes:指定自動操作的交易行為;
CommandTimeout:指定試圖執(zhí)行一個命令所需要的時間;
Connected:指定連接是否活動的;
ConnectionString:指定對數(shù)據(jù)存儲的連接信息;
ConnectionTimeOut:指定嘗試連接所需要的時間;
ConnectOptions:指定連接是同步還是異步;
CursorLocation:指定連接的光標時客戶端的還是服務器端的;
DefaultDatabase:指定ADO連接使用的默認數(shù)據(jù)庫;
IsolationLevel:指定交易的隔離級別;
KeepConnection:指定在沒有數(shù)據(jù)集處于打開狀態(tài)時,應用程序是否仍然保持對數(shù)據(jù)庫的連接;
LoginPrompt:指定在打開一個連接之前登錄對話框是否立即顯示;
Mode:指示允許使用的連接;
Provider:指定ADO連接的提供者;
Published Events
AfterConnect:創(chuàng)建一個連接后發(fā)生;
AfterDisconnect:關閉一個連接后發(fā)生;
BeforeConnect:創(chuàng)建一個連接前立即發(fā)生;
BeforeDisconnect:連接關閉前立即發(fā)生;
OnBeginTransComplete:開始一個交易后發(fā)生;
OnCommitTransComplete:提交一個交易后發(fā)生;
OnConnectComplete:開始一個連接后發(fā)生;
OnDisconnect:終止一個連接后發(fā)生;
OnExecuteComplete:執(zhí)行完一個命令后發(fā)生;
OnInfoMessage:當從數(shù)據(jù)存儲連接接收到信息消息時發(fā)生;
OnLogin:當打開通向服務器的通訊通道時發(fā)生;
OnRollbackTransComplete:回滾交易后發(fā)生;
OnWillConnect:請求開始連接后發(fā)生;
OnWillExecute:數(shù)據(jù)庫服務器發(fā)送命令執(zhí)行信號后發(fā)生;

Public Methods
BeginTrans:在相關的數(shù)據(jù)庫上開始一個新的交易;
Cancel:終止對數(shù)據(jù)存儲的連接企圖;
CommitTrans:提交一個打開的交易;
Execute:對Execute方法重載的概述;
GetFieldNames:同上;
GetProcedureNames:同上;
GetTableNames同上;
Open:開始一個對數(shù)據(jù)庫的連接;
OpenScheme:從連接提供者檢索綱要信息;
RollbackTrans:回滾一個活動的交易;

TADOQuery Class
TADOQuery = class(TCustomADODataSet);
使用TADOQuery訪問一個或更多在使用SQL語句數(shù)據(jù)存儲中的表。
通過使用SQL語句,從數(shù)據(jù)存儲的表中接收數(shù)據(jù)。在數(shù)據(jù)存儲中,使用像INSERT、DELETE、UPDATE、ALTERTABLE和CREATE TABLE這樣的語句在數(shù)據(jù)表和其它元數(shù)據(jù)對象上執(zhí)行操作。執(zhí)行存儲過程。
Public Properties
RowsAffected:返回最后一次執(zhí)行查詢影響的行數(shù);
Published Properties
CommandTimeout:指定試圖執(zhí)行一個命令所需要的時間;
DataSource:指定數(shù)據(jù)源組件,從而提取和在查詢SQL語句中使用的參數(shù)相同的域值;
EnableBCD:指定采用浮點法還是BCD法對待數(shù)據(jù);
ParamCheck:指定如果在運行時SQL語句改變了,數(shù)據(jù)集組件的參數(shù)列表是否也跟著改變;
Parameters:SQL語句的參數(shù)集;
Prepared:指定命令是否在執(zhí)行前已準備好;
SQL:包含ADO查詢所要執(zhí)行的SQL文本;
Public Methods
ExecSQL:執(zhí)行ADO查詢組件的SQL語句;

TADODataSet Class
TADODataSet代表從數(shù)據(jù)存儲接收到的一個數(shù)據(jù)集;
TADODataSet = class(TCustomADODataSet);
TADODataSet是最一般的ADO數(shù)據(jù)集組件。TADODataSet接收從ADO數(shù)據(jù)存儲中的一個或多個表中返回的結果集。接收的內容既可以直接來自某個表也可以通過SQL語句來自一個或多個表。在用TADODataSet接收一個數(shù)據(jù)集前,應將它連接至數(shù)據(jù)存儲。通過TADODataSet的ConnectionString屬性或使用在Connection屬性中已指定的TADOConnection組件。
使用TADODataSet組件的CommandText屬性接收數(shù)據(jù)集,指定一個表名或一個SELECT語句。TADODataSet不適合數(shù)據(jù)操作語言(像DELETEINSERTUPDATE等沒有返回集)的SQL語句。對于這些SQL語句應使用像TADOCommmand或TADOQuery等組件。
AfterCancel:應用程序完成對活動記錄的更改后發(fā)生;
AfterClose:應用程序關閉一個數(shù)據(jù)集后發(fā)生;
AfterDelete:應用程序刪除一條記錄后發(fā)生;
AfterEdit:應用程序開始編輯一條記錄后發(fā)生;
AfterInsert:應用程序插入一條新記錄后發(fā)生;
AfterOpen:應用程序打開數(shù)據(jù)集以后但沒發(fā)生數(shù)據(jù)訪問以前發(fā)生;
AfterPost:應用程序把活動記錄寫入數(shù)據(jù)庫或改變日志和返回瀏覽狀態(tài)后發(fā)生;
AfterScroll:應用程序從一條記錄滾動到另一條記錄后發(fā)生;
BeforeCancel:應用程序執(zhí)行取消對活動記錄的改變的請求前發(fā)生;
BeforeClose:數(shù)據(jù)集關閉前立即發(fā)生;
BeforeDelete:應用程序試圖刪除活動記錄前發(fā)生;
BeforeEdit:應用程序進入對活動記錄的編輯模式前發(fā)生;
BeforeInsert:應用程序進入插入模式前發(fā)生;
BeforeOpen:應用程序執(zhí)行一個打開數(shù)據(jù)集的請求前發(fā)生;
BeforePost:應用程序放棄對數(shù)據(jù)庫或改變日志的活動記錄的改變前發(fā)生;
BeforeScroll:應用程序從一條記錄滾動到另一條記錄前發(fā)生;
OnCalsFields:當應用程序重新計算已計算的數(shù)據(jù)域時發(fā)生;
OnDeleteError:當應用程序試圖刪除一條記錄并且引起了一個例外時發(fā)生;
OnEditError:當應用程序試圖修改或插入一條記錄并且引起了一個例外時發(fā)生;
OnNewRecord:當應用程序插入或追加一條新數(shù)據(jù)集記錄時發(fā)生;
OnPostError:當應用程序試圖去修改或插入一條記錄并且引起了一個例外時發(fā)生;

TDBGrid Class
TDBGrid顯示和操作來自一個表格內的數(shù)據(jù)集內的記錄。
TDBGrid = class(TCustomDBGrid);
把一個TDBGrid對象放到窗體上去顯示和編輯來自數(shù)據(jù)庫的表中或查詢的記錄。應用程序能使用這個表格去insert、delete或編輯在數(shù)據(jù)庫中的數(shù)據(jù),或者簡單的顯示數(shù)據(jù)。
在運行時,用戶能使用數(shù)據(jù)庫的TDBNavigator去移動表格中的數(shù)據(jù),并且去插入、刪除和編輯這些數(shù)據(jù)。在數(shù)據(jù)表格中做的編輯并不被提交給潛在的數(shù)據(jù)集直到用戶移動到另一條記錄或關閉應用程序。
TDBGrid擁有從TCustomDBGrid繼承來的一般行為。TDBGrid發(fā)布了一些從TCustomDBGrid繼承的屬性但是并沒介紹任何新的行為。
Public Properties
Canvas:指定為控件繪制皮膚的TCanvas對象;
SelectedRows:為在數(shù)據(jù)集中的所有記錄指定一個書簽集,類似于表格中的選擇集。
Published Properties
Align:決定控件在它的父控件中如何對齊;
Anchors:指定控件如何固定到其父控件中;
BiDiMode:指定控件的雙向模式;
BorderStyle:決定在表格四周是否繪制單線邊框;
Color:指定控件的背景色;
Columns:描述顯示屬性和與列綁定的字段;
Constraints:指定控件的尺寸約束;
Ctl3D:決定控件有三維或二維視圖;
DataSource:獲得到數(shù)據(jù)集的連接,以便數(shù)據(jù)感知控件找到數(shù)據(jù)源;
DefaultDrawing:指示數(shù)據(jù)感知表格是否自動繪制;
Enabled:控制是否響應鼠標、鍵盤和定時器事件;
FixedColor:指定表格中固定行和列的背景色;
Font:控制控件上的文本的屬性;
ImeMode:決定輸入方法編輯者行為;
ImeName:向用戶指定輸入者把鍵盤輸入轉變?yōu)閬喼拚Z言字符;
Options:指定數(shù)據(jù)感知控件的多種顯示和行為屬性;
PopupMenu:指定和空間有關的彈出菜單;
ReadOnly:指定使用的表格是否只供顯示,或者是否能使用表格編輯數(shù)據(jù);
ShowHint:決定當鼠標指針短暫停留在控件上時,控件是否顯示幫助提示;
TabOrder:指示控件在其父控件的Tab順序中的位置;
TabStop:決定用戶是否能使用Tab使控件獲得焦點;
TitleFont:描述畫表格列標題的字體;
Visible:決定組件是否顯示在屏幕上;

Published Events
OnCellClick:當用戶釋放表格單元格中的鼠標時發(fā)生;
OnColEnter:當焦點移動到表格中的一個新的單元格中時發(fā)生;
OnColExit:當單元格失去焦點前立即發(fā)生;
OnColumnMoved:當用戶用鼠標移動一列時發(fā)生;
OnDblClick:當鼠標指針在控件上,用戶雙擊鼠標左鍵時發(fā)生;
OnDragDrop:當用戶放棄對對象的拖動時發(fā)生;
OnDrapOver:當用戶把一個對象拖動到一個控件上時發(fā)生;
OnDrawColumnCell:當表格需要繪制一個單元格時發(fā)生;
OnDrawDataCell:如果Columns的State屬性是csDefault,表格需要繪制一個單元格時發(fā)生;
OnEditButtonClick:當用戶按下一個表格列中的省略按鈕時發(fā)生;
OnEnter:當控件接收到輸入焦點時發(fā)生;
OnExit:當輸入焦點從一個控件移動到另一個控件時發(fā)生;
OnKeyDown:當控件擁有焦點,一個用戶按下任意鍵盤鍵時發(fā)生;
OnKeyPress:當一個鍵被按下時發(fā)生;
OnKeyUp:當用戶釋放一個已被按下的鍵時發(fā)生;
OnMouseActivate:當父窗體處于非活動哦能夠狀態(tài),鼠標指針在控件上,用戶按下鼠標按鈕時發(fā)生;
OnMouseDown:當鼠標指針在控件上,用戶按下一個鼠標鍵時發(fā)生;
OnMouseEnter:當用戶把鼠標移入一個控件時發(fā)生;
OnMouseLeave:當用戶把鼠標移出一個控件時發(fā)生;
OnMouseMove:當用戶在控件上移動鼠標指針時發(fā)生;
OnMouseUp:當用戶釋放已按在組件上的鼠標指針時發(fā)生;
OnTitleClick:當用戶釋放在某列頭的鼠標時發(fā)生。

TADOStoredProc Class
Published Properties
CommandTimeout:指定試圖執(zhí)行命令所用的時間;
DataSource:代表給數(shù)據(jù)集提供值的數(shù)據(jù)源;
EnableBCD:指定數(shù)值字段值是使用浮點數(shù)表示還是BCD碼表示;
Parameters:包含一個SQL語句的參數(shù)的集合;
Prepared:指定命令在執(zhí)行前是否準備好;
ProcedureName:指示被TADOStoredProc使用的存儲過程;
Public Methods
ExecProc:執(zhí)行在服務器上的存儲過程;
TButton Class
TButton = class(TCustomButton);
使用TButton把一個標準的按鈕放到窗體上。在一個對話框設置窗體中,TButton引進幾個屬性去控制它的行為。用戶選擇按鈕控件看是行動。
使用TBitBtn顯示一個代替標簽的位圖。使用TSpeedButton顯示進度。
提示:因為TButton主題總是在中心的,改變BiDi的對齊方式對其沒有影響。
CommandLinkHint:在按鈕主題下面作為對連接命令的文本提示;
Default:決定當Enter鍵被按下時,是否執(zhí)行按鈕的OnClick事件;
DisabledImageIndex:無效按鈕狀態(tài)的圖片索引號;
ElevationRequired:把防火墻圖標放在按鈕上,指示改善訪問權限;
HotImageIndex:熱鍵狀態(tài)的圖片索引;
ImageAlignment:在按鈕上圖片的對齊方式;
ImageIndex:通常按鈕狀態(tài)的圖片索引;
ImageMargins:在按鈕上的圖片的邊緣;
Images:按鈕的圖片列表;
ModalResult:決定按鈕是否關閉以及怎樣關閉它(modal)的父窗體;
PressImageIndex:按鈕處于按下狀態(tài)時的圖片索引;
SelectedImageIndex:按鈕被選中時的圖片索引;
WordWrap:指定指定是否按鈕文本自動調整大小以適應控件的寬度;

TBitBtn Class
TBitBtn = class(TCustomButton);
位圖按鈕和按鈕控件展示相同的行為。使用它們從窗體和對話框中開始行為。
位圖按鈕實施在按鈕上指定位圖圖片和他們的顯示和放置的屬性。你可以從預定義位圖按鈕格式中或使用你自己定制的位圖。雖然按鈕只能和一個位圖結合,位圖(glyph屬性)可以被細分為四個尺寸相等的部分。這些都基于按鈕的up、down、disable和clicked狀態(tài)顯示。
TBitBtn的Kind屬性提供經常使用的按鈕,如OK、Cancel、Help等。這些預定義的按鈕類型有相應的生動的圖片和默認的行為,所以你能輕易的將他們添加到你的應用程序中甚至無需任何代碼。
其它按鈕種類相應用戶點擊的推薦方法是從事件列表中選擇一個事件作為Action屬性的值。通過設置Action屬性,你使按鈕作為了事件委托人,并且當用戶點擊按鈕時,事件操作改變按鈕的屬性和響應。
當用戶點擊按鈕時,如果你不使用對指定種類按鈕或事件內置的響應,那么你能通過寫OnClick事件指定響應。
Glyph:指定顯示在位圖按鈕上的位圖;
Layout:指定位圖按鈕的種類;
Margin:指定圖片邊緣與按鈕邊緣之間的像素大??;
ModalResult:決定按鈕是否和怎樣關閉它的父窗體;
NumGlyphs:指示在Glyph屬性中被生動的指定的圖片的數(shù)量;
Spacing:決定在位圖和進度條上哪里顯示圖片和文本;
TComboBox Class
TComboBox把一個編輯框和一個滾動列表整合。
TComboBox = class(TCustomComboBox);
在TComboBox中,按鈕的寬度和Windows使用的滾動條的寬度相等。這個寬度依賴于用戶選擇的配色方案(通過桌面右鍵,選擇屬性,選擇外觀)。在WindowsXP上,用戶可以通過點擊高級按鈕和選擇滾動條項明確的改變滾動條的寬度。如果你調整了組合框的大小以至于所有的文本可見,那么當用戶選用不同德配色方案時可以發(fā)現(xiàn)文本變模糊了。一個解決方法是當開發(fā)應用程序時設置滾動條寬度。大多顏色配置使用一個大概21像素的寬度的滾動條。
AutoCloseUp:指定當用戶選擇一個項目時,下拉列表是否自動關閉;
AutoComplete:當你鍵入字符時,自動匹配列表項;
AutoCompleteDelay:指定在一個鍵按下和試圖自動匹配字段之間的延遲;
AutoDropDown:指定下拉列表是否自動打開以相應用戶鍵;
BevelEdges:指定指定控件的那條邊有斜面;
CharCase:決定組合框中文本的大小寫;
Item:提供的在組合框列表位置要訪問的列表項;
MaxLength:指定用戶可以鍵入組合框編輯位置的最大字符數(shù)量;
Sorted:決定組合框列表位置是否按字母順序排列;
Text:包含一個與控件有關的文本字符串。

OnChange:當用戶改變現(xiàn)實在編輯區(qū)域的文本時發(fā)生;
OnClick:當用戶點擊控件時發(fā)生;
OnCloseUp:當當下拉列表由于用戶的某些行為而關閉時發(fā)生;
OnContextPopup:當用戶右擊控件或引發(fā)彈出菜單(如:使用鍵盤)時發(fā)生;
OnDblClick:當鼠標指針在控件上用戶雙擊鼠標左鍵時發(fā)生;
OnDrawItem:當一個在用戶自定義組合框中的項目需要顯示時發(fā)生;
OnMeasureItem:當在一個csOwnerDrawVariable組合框中的項目需要顯示時發(fā)生;
OnSelect:當用戶在下拉列表中選擇一個字符串時發(fā)生;

TStaticText Class
TStaticText是一個窗口化的控件,在一個窗體上顯示文本。
TStaticText = class(TCustomStaticText);
TStaticText組件函數(shù)像TLabel,除了TStaticText起源于TWinControl,因此有一個窗口句柄。當組件的加速鍵必須屬于一個窗口化的控件(如在一個ActiveX屬性上)時使用TStaticText代替TLabel。

TLabel Class
TLabel = class(TCustomLabel);
使用TLabel添加用戶不能在窗體上編輯的文本。這個文本能被用于標記另一個控件,并且當用戶鍵入快捷鍵時,對那個控件設置焦點。
因為TLabel不是從TWinControl繼承,它沒有自己的窗口,并且不能接收鍵盤的輸入。向窗體添加一個能響應鍵盤輸入并且可以顯示文本的對象是TStaticText。
向窗體添加一個可以顯示文本的對象并且用戶可以滾動或編輯,就使用TEdit。

EllipsisPosition:指定省略(并不適合于已分配的矩形)怎樣被放置在文本中;
FocusControl:指派一個與label相關的窗口化控件;
GlowSize:
ShowAccelChar:決定‘&’在標簽文本中如何顯示。

TEdit Class
TEdit = class(TCustomEdit);
使用TEdit對象把一個標準的Windows編輯控件放置到窗體上。編輯控件被用于接收用戶鍵入的文本。編輯控件也可以向用戶顯示文本。
當僅向用戶顯示文本時,選擇一個編輯控件允許用戶選擇文本和把文本復制到剪貼板上。如果不需要編輯控件的選擇功能,就選擇用標簽對象。
TEdit引入了TCustomEdit的一般行為。TEdit發(fā)布了一些繼承自TCustomEdit的屬性,但是并沒有引入任何新的行為。對于特殊的編輯控件,使用從TCustomEdit或其子類繼承的其它類。
AutoSelect:決定當控件獲得焦點時,是否編輯控件中的所有文本都自動被選中;
CharCase:決定在編輯控件中的文本的大小寫;
HideSelection:決定當焦點轉移到另一個控件時文本被選擇的指示是否保留;
MaxLength:指定用戶可以鍵入編輯控件的字符的最大數(shù)量;
NumbersOnly:僅允許數(shù)字被鍵入文本編輯控件中。
OnChange:當編輯控件的文本可能已經改變時發(fā)生;
OnContextPopup:當用戶右擊控件或執(zhí)行其它引發(fā)彈出菜單的操作。

TGroupBox Class
TGroupBox = class(TCustomGroupBox);
TGroupBox組件代表一個標準的窗口編組框,用于把控件上相關的控件分組。當另一個控制組件被放置到一個分組框,這分組框就變成此控件的父組件。

TRadioGroup Class
TRadioGroup = class(TCustomRadioGroup);
一個TRadioGroup對象時一個特殊的編組框,它僅包含單選按鈕。被直接放置在同一控制組件上的單選按鈕屬于一組。當用戶選擇一個單選按鈕時,所有其它在同一族中的單選按鈕變得未被選中。因此,在同一窗體中的兩個單選按鈕只有在它們被放置在單獨的容器(如:分組框)中時才能被同時選中。
要向TRadiaGroup添加單選按鈕,就在objectInspector中編輯Items屬性。在Items中的每個字符串作為單選按鈕的主題,在分組框中代表一個單選按鈕。ItemIndex屬性的值決定哪一個單選按鈕目前處于被選中狀態(tài)。
通過設置Columns屬性,單選按鈕可以單列或多列顯示。
Note:設置單選組的BiDiMode為bdRightToLeft自動翻轉單選按鈕,F(xiàn)lipChildren方法將失去作用。
Columns:指定在單選組中列的數(shù)量;
ItemIndex:指示在分組框中的那個單選按鈕目前處于選中狀態(tài);
Items:列出在單選組中的單選按鈕;

TListbox Class
TListBox = class(TCustomListBox);
使用TListBox顯示一個用戶可以選擇、添加或刪除的項的列表。TListBox時Windows列表框控件的封裝。對于特殊的列表框,使用其它繼承自TCustomListBox或其子類的類。
TListBox實施繼承自TCustomListBox的行為。TListBox發(fā)布了一些繼承自TCustomListBox的屬性,但是并沒有引入任何新的行為。
AutoComplete:決定用戶是否能通過在列表中鍵入字符使列表中的項獲得焦點;
AutocompleteDelay:指定一個鍵按下和自動完成字段獲得焦點之間的間隔;
ExtendedSelect:使用Shift和CTRL鍵使列表項實現(xiàn)多選;
IntegralHeight:決定列表框是否顯示部分項。
ItemHeight:指定在一個自己繪制的列表框中列表項的高度(像素);
Items:包含顯示在列表框中的字符串;
MultiSelect:指定用戶是否能選擇多于一個的列表項;
ScrollWidth:指定列表框水平滾動的寬度(像素);
Sorted:指定在列表框中的項是否按字母順序排列;
TabWidth:指定在列表框中Tabs的尺寸。

OnData:當一個虛擬列表框需要提供一個項的文字時發(fā)生;
OnDataFind:當一個虛擬列表框需要認出已經給定文字的項的索引時發(fā)生;
OnDataObject:當一個虛擬列表框需要提供和某一項有關的對象時發(fā)生。

TTreeView Class
TTreeView代表一個顯示項的階層列表的窗口,就像文檔的頭、索引的入口或者在硬盤上的文件和路徑。
TTreeView = class(TCustomTreeView);
使用TTreeView向窗體添加一個擴展的和簡化的縮略圖。在樹形視圖控件中的每個節(jié)點都有一個標簽和可選的位圖圖片組成。每個節(jié)點擁有一系列有關的子節(jié)點。通過在一個節(jié)點上點擊,用戶能展開或縮回有關子節(jié)點列表。
AutoExpand:指定樹視圖的節(jié)點是否依選擇自動展開或收縮;
ChangeDelay:指定一個當一個節(jié)點被選擇時到當OnChange事件發(fā)生時之間的間隔;
HideSelection決定當焦點轉移到另一個控件時,一個被選擇的節(jié)點是否仍然顯示被選擇;
HotTrack:指定當鼠標通過列表項時,列表項是否高亮顯示;
Images:決定哪個圖片和樹形視圖有關;
Indent:指定列表的子節(jié)點被展開時的縮進量(像素);
Items:列出顯示在樹形視圖控件內的單獨節(jié)點;
 PropertyItems:TTreeNodes;
TTreeNodes = class(TPersistent);
在樹形控件中單獨的節(jié)點時TTreeNode對象。這些單獨的節(jié)點可以通過使用Items樹形和item的索引來訪問。例如:訪問樹形可噢噢你關鍵的第二個項:
 MyTreeNode:=TreeView1.Items[1];
MultiSelect:決定用戶是否可以一次性選擇多于一個的樹形節(jié)點;
MultiSelectStyle:決定多個被選的節(jié)點如何工作;
ReadOnly:決定用戶是否可以編輯節(jié)點標簽;
RightClickSelect:決定決定Selected屬性是否返回鼠標右鍵選擇的節(jié)點;
RowSelect:指定被選擇項是否整行都高亮顯示;
ShowButtons:指定是否在每個父節(jié)點項的左邊顯示‘+’或‘-’按鈕;
ShowLines:指定是否顯示連接子節(jié)點和相應父節(jié)點的連線;
ShowRoot:決定線連得高階層節(jié)點是否顯示;
SortType:決定在樹形視圖中的節(jié)點是否和怎樣自動排序;
StateImages:決定哪一個圖片被用做狀態(tài)圖片;
ToolTips:指定樹形視圖中的項是否有工具提示。

通過使用treeview1.Selected.Text來判斷哪個節(jié)點被選中了。

OnAddition:當新節(jié)點被添加時發(fā)生;
OnAdvancedCustomDraw:在樹形視圖控件繪制期間的個別階段發(fā)生;
OnAdvancedCustomDrawItem:在繪制樹形控件節(jié)點期間的個別階段發(fā)生;
OnChange:無論何時選擇已經從一個節(jié)點變?yōu)榱硪粋€節(jié)點時發(fā)生;
OnChanging:當選擇即將從一個節(jié)點變?yōu)榱硪粋€節(jié)點時發(fā)生;
OnCollapsed:一個節(jié)點已被倒塌后發(fā)生;
Oncollapsing:一個節(jié)點即將倒塌時發(fā)生;
OnCompare:當樹形視圖節(jié)點的排序過程中,兩個節(jié)點必須比較時發(fā)生;
OncreateNodeClass:當樹形視圖的一個節(jié)點即將被創(chuàng)建時發(fā)生;
OnCustomDraw:繪制樹形視圖控件以前立即發(fā)生;
OnCustomDrawItem:繪制樹形視圖節(jié)點前立即發(fā)生;
OnDeletion:當樹形視圖中一個節(jié)點被刪除時發(fā)生;
OnEdited:當用戶編輯一個節(jié)點的文本屬性后發(fā)生;
OnEditing:當用戶開始編輯節(jié)點的文本屬性時發(fā)生;
OnExpanding當一個節(jié)點即將被展開時發(fā)生;
OnGetImageIndex:當樹形視圖找到一個節(jié)點的圖片索引時發(fā)生;
OnGetSelectedIndex:當樹形視圖找到被選擇的節(jié)點的索引時發(fā)生;

TDataModule Class
TDataModule = class(TComponent);
在應用程序中,使用TDataModule對象提供非可視組件的集中處理位置。尤其是如TSQLDataSet、TSQLConnection等數(shù)據(jù)訪問組件。數(shù)據(jù)模板并未被限制于數(shù)據(jù)訪問組件,它們也能包含其它非可視組件,如TTimer、TOpenDialog、TImageList等。
在設計階段,TDataModule對象提供一個可視的容器,開發(fā)者可以放置非可視組件,設置它們的屬性,為他們編寫事件處理程序。在設計階段創(chuàng)建一個數(shù)據(jù)模板,選擇File|NewData Module。
在數(shù)據(jù)模板的單元文件中,開發(fā)者也可以放置任何應用程序使用的業(yè)務規(guī)則。
為了使數(shù)據(jù)模板在應用程序的其它單元中可用,選擇那個單元,選擇File|UseUnit添加數(shù)據(jù)模板到uses語句里。
OnCreate:當應用程序舉例說明一個數(shù)據(jù)模板時發(fā)生;
Ondestroy:當數(shù)據(jù)模板即將被銷毀時發(fā)生;

VC++使用串口
The purpose of this article is to demonstrate the use of Win32functions for serial port communication in Visual C++. A C++ classCSyncSerialComm has been developed to implement the followingserial port communication operations:
Open
Configuration
Read
Write
Close
A background in Visual C++ programming is sufficient to grasp thetechnical details of this article. Access to MSDN is required forlooking at the definition of functions, structures etc. used inthis article. The article takes a look at only non-overlapped(synchronous) operations supported by Win32. My next article willshow implementation of serial port communication using overlapped(asynchronous) structures.
I. Open
Before starting any communication on a serial port, we must firstopen a connection. This is achieved by using CreateFile function inWin32. (Those of you familiar with File I/O must be aware of thisfunction.) The following code is used to open a serial portconnection in non-overlapped mode.
 Collapse | CopyCode
m_hSerialComm = CreateFile(m_pszPortName,
            GENERIC_READ |GENERIC_WRITE,
            0,
            NULL,
            OPEN_EXISITING,
            0,
            
NULL);

if (m_hSerialComm == INVALID_HANDLE_VALUE)
    //Handle ErrorCondition
The CreateFile function takes in seven parameters. (Please take abrief moment to look at this function in MSDN.)
The firstparameter specifies the port name. In our case, this is usuallyCOM, COM2, COM3 or COM4.
The secondparameter must be GENERIC_READ | GENERIC_WRITE to support both readand write access.
The thirdparameter must always be 0 for serial port communication becauseunlike files, serial port access cannot be shared.
The fourthparameter is used to set security attributes. If no securityattribute needs to be specified, just use NULL.
The fifthparameter must always be set to OPEN_EXISTING.
The sixthparameter is used to specify flags and attributes (either 0 orFILE_ATTRIBUTE_NORMAL can be used).
The lastparameter must always be NULL as we only support non-overlappedcommunication.
The HANDLE m_hSerialComm that is returned by the CreateFilefunction can now be used for performing operations like Configure,Read and Write.
II. Configuration
After opening connection to a serial port, the next step is usuallyto configure the serial port connect settings like Baud Rate,Parity Checking, Byte Size, Error Character, EOF Character etc.Win32 provides a DCB struct that encapsulates these settings (referto MSDN for DCB struct definition). Configuration of the serialport connection settings is performed in the following threesteps:
1. First, we haveto access the present settings of the serial port using theGetCommState function. The function takes in twoparameters:
The firstparameter is the HANDLE we received from the call to the CreateFilefunction.
The secondparameter is an output parameter, which returns the DCB structurecontaining the present settings.
2. Next, usingthe DCB structure that we obtained from the previous step, we canmodify the necessary settings according to the applicationneeds.
3. Finally, weupdate the changes by using the SetCommState method.
The following code is a sample shown explaining the use of thesefunctions. (Note: A number of the fields in the DCB struct are notused in the example. A more sophisticated application must allowthe client to configure these settings.)
 Collapse | CopyCode
DCB dcbConfig;

if(GetCommState(m_hSerialComm, &dcbConfig))
{
    dcbConfig.BaudRate= dwBaudRate;
    dcbConfig.ByteSize= 8;
    dcbConfig.Parity =NOPARITY;
    dcbConfig.StopBits= ONESTOPBIT;
    dcbConfig.fBinary= TRUE;
    
dcbConfig.fParity= TRUE;
}

else
    //Handle ErrorCondition

if(!SetCommState(m_hSerialComm, &dcbConfig))
    //Handle ErrorCondition
Another important part of configuration of serial port connectionsettings is setting timeouts. Again, Win32 provides a COMMTIMEOUTSstruct for setting Read and Write Timeouts. We are also providedwith two functions GetCommTimeouts and SetCommTimeouts to access,modify, and update the timeout settings. The following code can beused to set the serial port timeouts:
 Collapse | CopyCode
COMMTIMEOUTS commTimeout;

if(GetCommTimeouts(m_hSerialComm, &commTimeout))
{
    commTimeout.ReadIntervalTimeout     =1000 * dwReadTimeOutIntervalInSec;
    commTimeout.ReadTotalTimeoutConstant     =1000 * dwReadTimeOutConstantInSec;
    commTimeout.ReadTotalTimeoutMultiplier     =1000 * dwReadTimeOutMultiplier;
    commTimeout.WriteTotalTimeoutConstan    =1000 * dwWriteTimeOutInSec;
    
commTimeout.WriteTotalTimeoutMultiplier= 1000 * dwWriteTimeOutMultiplier;
}

else
    //Handle ErrorCondition

if(!SetCommTimeouts(m_hSerialComm, &commTimeout))
//Handle Error Condition
III. Read
There are many different implementations for reading from a SerialPort Connection. In the CSyncSerialComm class that is provided withthis article, serial communication events are used in theimplementation of the Read operation. There are three importantsets in this implementation.
1. First, wesetup a Read Event using the SetCommMask function. (Note: Thisfunction can also be used to set many other different types ofserial communication events.) This event is fired when a characteris read and buffered internally by Windows Operating System. TheSetCommMask function takes in two parameters:
The firstparameter is the HANDLE we received from the call to the CreateFilefunction.
The secondparameter is used to specify the event type. To specify a ReadEvent, we use EV_RXCHAR flag.
2. After callingthe SetCommMask function, we call the WaitCommEvent function towait for the event to occur. This function takes in threeparameters:
The firstparameter is the HANDLE we received from the call to the CreateFilefunction.
The secondparameter is an output parameter, which reports the event type thatwas fired.
The thirdparameter is a pointer to an OVERLAPPED structure. Since, ourimplementation is for Non-Overlapped communication, it must be setto NULL.
3. Once thisevent is fired, we then use the ReadFile function to retrieve thebytes that were buffered internally. The ReadFile function takes infive parameters:
The firstparameter is the HANDLE we received from the call to the CreateFilefunction.
The secondparameter is a buffer that would receive the bytes if the ReadFilefunction returns successfully.
The thirdparameter specifies the size of our buffer we passed in as thesecond parameter.
The fourthparameter is an output parameter that will notify the user aboutthe number of bytes that were read.
The lastparameter is always NULL for our purpose since we do not deal withnon-overlapped mode.
In our example, we read one byte at a time and store it in atemporary buffer. This continues until the case when ReadFilefunction returns successfully and the fourth parameter has a valueof 0. This indicates that the internal buffer used by Windows OS isempty and so we stopping reading. The following code shows theimplementation of this technique:
 Collapse | CopyCode
std::stringbuf sb;
DWORD dwEventMask;

if(!SetCommMask(m_hSerialComm, EV_RXCHAR))
    //Handle ErrorCondition

if(WaitCommEvent(m_hSerialComm, &dwEventMask, NULL))
{
    charszBuf;
    
DWORDdwIncommingReadSize;

    do
    {
        if(ReadFile(m_hSerialComm,&szBuf, 1, &dwIncommingReadSize, NULL) != 0)
        {
            if(dwIncommingReadSize> 0)
            {
                dwSize +=dwIncommingReadSize;
                sb.sputn(&szBuf,dwIncommingReadSize);
            }
        
}

        else
            //Handle ErrorCondition
    
}while(dwIncommingReadSize > 0);
}

else
    //Handle ErrorCondition
IV. Write
Write operation is easier to implement than Read. It involves usingjust one function, WriteFile. It takes in five parameters similarto ReadFile function. The second parameter in WriteFile specifiesthe buffer to be written to the serial port. The following exampleshows implementation of Write using WriteFile. It writes one byteat a time until all the bytes in our buffer are written:
 Collapse | CopyCode
unsigned long dwNumberOfBytesSent = 0;

while(dwNumberOfBytesSent < dwSize )
{
    unsigned longdwNumberOfBytesWritten;

    if(WriteFile(m_hSerialComm,&pszBuf[dwNumberOfBytesSent], 1,
                            &dwNumberOfBytesWritten,NULL) != 0)
    {
        if(dwNumberOfBytesWritten> 0)
            ++dwNumberOfBytesSent;
        else
            //Handle ErrorCondition
    
}

    else
        //Handle ErrorCondition
}
V. Close
After we finish all our communication with the serial port, we haveto close the connection. This is achieved by using the CloseHandlefunction and passing in the serial port HANDLE we obtained from theCreateFile function call. Failure to do this results in hard tofind handle leaks. The follow code snippet explains the use of thisfunction:
 Collapse | CopyCode
if(m_hSerialComm != INVALID_HANDLE_VALUE)
{
    CloseHandle(m_hSerialComm);
    
m_hSerialComm= INVALID_HANDLE_VALUE;
}
Conclusion
I hope my demonstration of the use of Win32 functions in serialport communication will serve as a starting point. I am sure as youbrowse through MSDN looking for these function definitions, youwill come across more sophisticated functions that might be bettersuited for your application needs.
License
This article has no explicit license attached to it but may containusage terms in the article text or the download files themselves.If in doubt please contact the author via the discussion boardbelow.

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
問與答33:如何改變用戶窗體中的鼠標圖形?
VBA系列講座(3):學習控件
delphi的bugs
Web應用界面設計規(guī)范
Google桌面5軟件體驗分析
Excel VBA制作Escel怪異的登錄窗體
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服