小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

DELPHI常見屬性說明【二】

 quasiceo 2016-11-18

DELPHI常見屬性說明【二】

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


常用DELPHI控件屬性設(shè)置說明
目錄
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代表一個(gè)標(biāo)準(zhǔn)的應(yīng)用程序窗口。
在設(shè)計(jì)階段,當(dāng)你在窗體設(shè)計(jì)器內(nèi)創(chuàng)建窗體時(shí),他們作為窗體類的子節(jié)點(diǎn)被執(zhí)行。窗體能代表應(yīng)用程序的主窗口,或者對話框,或MDI的children。一個(gè)窗體能包含其它對象,如TButton, TCheckBox和TComboBox對象等。

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

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

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

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

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

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

OnAdvandedCustomDraw:發(fā)生在繪制工具條背景期間的離散階段;
OnAdvancedCustomDrawButton:發(fā)生在繪制工具條按鈕期間的離散階段;
OnClick:當(dāng)用戶點(diǎn)擊控件時(shí)發(fā)生;
OnContextPopup:當(dāng)用戶右鍵點(diǎn)擊控件或其它引發(fā)彈出菜單(如使用鍵盤)時(shí)發(fā)生;
OnCustomDraw:當(dāng)工具條必須被繪制時(shí)發(fā)生;
OnCustomDrawButton:當(dāng)在工具條上的一個(gè)按鈕必須被繪制時(shí)發(fā)生;
OnCustomizeAdded:當(dāng)用戶向工具條添加一個(gè)按鈕時(shí)發(fā)生;
OnCustomizeCanDelete:當(dāng)用戶試圖刪除工具條上的一個(gè)按鈕時(shí)發(fā)生;
OnCustomizeCanInsert:當(dāng)用戶試圖向工具條添加一個(gè)按鈕時(shí)發(fā)生;
OnCustomized:當(dāng)用戶結(jié)束更改工具條時(shí)發(fā)生;
OnCustomizeDelete:當(dāng)用戶從工具條上刪除一個(gè)按鈕時(shí)發(fā)生;
OncustomizeNewButton:當(dāng)用戶試圖向工具條添加一個(gè)新按鈕時(shí)發(fā)生;
OnCustomizeReset:當(dāng)用戶取消工具條的用戶化時(shí)發(fā)生;
OnCustomizing:當(dāng)用戶顯示工具條定制對話框?yàn)榱烁淖児ぞ邨l時(shí)發(fā)生;
OnDbClick:當(dāng)鼠標(biāo)指針在控件上,用戶雙擊鼠標(biāo)左鍵時(shí)發(fā)生;
OnDockDrop、OnDockOver、OnDragDrop、OnDragOver、OnEndDock、OnEndDrag
OnEnter:當(dāng)一個(gè)控件接收到輸入焦點(diǎn)時(shí)發(fā)生;
OnExit:當(dāng)輸入焦點(diǎn)從一個(gè)控件移到另一個(gè)控件時(shí)發(fā)生;
OnGetSiteInfo:返回控件的??啃畔?;
OnMouseActivate:當(dāng)鼠標(biāo)指針在控件上,控件的父窗體非活動(dòng)而用戶按下一個(gè)鼠標(biāo)按鈕時(shí)發(fā)生;
OnMouseDown:當(dāng)鼠標(biāo)指針在控件上,而用戶又按下一個(gè)鼠標(biāo)按鈕時(shí)發(fā)生;
OnMouseEnter:當(dāng)用戶把鼠標(biāo)指針移到一個(gè)控件上時(shí)發(fā)生;
OnMouseLeave:當(dāng)用戶把鼠標(biāo)指針移出控件時(shí)發(fā)生;
OnMouseMove:當(dāng)鼠標(biāo)指針在控件上,用戶移動(dòng)鼠標(biāo)指針時(shí)發(fā)生;
OnMouseUp:當(dāng)用戶釋放按在組件上的鼠標(biāo)指針時(shí)發(fā)生;
OnResize:控件尺寸改變后立即發(fā)生;
OnStartDock:DragKind屬性為dkDock,當(dāng)用戶開始拖動(dòng)一個(gè)控件時(shí)發(fā)生;
OnStartDrag:當(dāng)用戶開始拖動(dòng)一個(gè)控件或包含有鼠標(biāo)保持按下狀態(tài)在控件上的對象時(shí)發(fā)生;
OnUnDock:當(dāng)應(yīng)用程序試圖移出一個(gè)已停靠在窗口控件上的控件時(shí)發(fā)生;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

OnData:當(dāng)一個(gè)虛擬列表框需要提供一個(gè)項(xiàng)的文字時(shí)發(fā)生;
OnDataFind:當(dāng)一個(gè)虛擬列表框需要認(rèn)出已經(jīng)給定文字的項(xiàng)的索引時(shí)發(fā)生;
OnDataObject:當(dāng)一個(gè)虛擬列表框需要提供和某一項(xiàng)有關(guān)的對象時(shí)發(fā)生。

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

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

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

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

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

if (m_hSerialComm == INVALID_HANDLE_VALUE)
    //Handle Error Condition
The CreateFile function takes in seven parameters. (Please take a brief moment to look at this function in MSDN.)
The first parameter specifies the port name. In our case, this is usually COM, COM2, COM3 or COM4.
The second parameter must be GENERIC_READ | GENERIC_WRITE to support both read and write access.
The third parameter must always be 0 for serial port communication because unlike files, serial port access cannot be shared.
The fourth parameter is used to set security attributes. If no security attribute needs to be specified, just use NULL.
The fifth parameter must always be set to OPEN_EXISTING.
The sixth parameter is used to specify flags and attributes (either 0 or FILE_ATTRIBUTE_NORMAL can be used).
The last parameter must always be NULL as we only support non-overlapped communication.
The HANDLE m_hSerialComm that is returned by the CreateFile function 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 usually to 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 (refer to MSDN for DCB struct definition). Configuration of the serial port connection settings is performed in the following three steps:
1. First, we have to access the present settings of the serial port using the GetCommState function. The function takes in two parameters:
The first parameter is the HANDLE we received from the call to the CreateFile function.
The second parameter is an output parameter, which returns the DCB structure containing the present settings.
2. Next, using the DCB structure that we obtained from the previous step, we can modify the necessary settings according to the application needs.
3. Finally, we update the changes by using the SetCommState method.
The following code is a sample shown explaining the use of these functions. (Note: A number of the fields in the DCB struct are not used in the example. A more sophisticated application must allow the client to configure these settings.)
 Collapse | Copy Code
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 Error Condition

if(!SetCommState(m_hSerialComm, &dcbConfig))
    //Handle Error Condition
Another important part of configuration of serial port connection settings is setting timeouts. Again, Win32 provides a COMMTIMEOUTS struct for setting Read and Write Timeouts. We are also provided with two functions GetCommTimeouts and SetCommTimeouts to access, modify, and update the timeout settings. The following code can be used to set the serial port timeouts:
 Collapse | Copy Code
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 Error Condition

if(!SetCommTimeouts(m_hSerialComm, &commTimeout))
//Handle Error Condition
III. Read
There are many different implementations for reading from a Serial Port Connection. In the CSyncSerialComm class that is provided with this article, serial communication events are used in the implementation of the Read operation. There are three important sets in this implementation.
1. First, we setup a Read Event using the SetCommMask function. (Note: This function can also be used to set many other different types of serial communication events.) This event is fired when a character is read and buffered internally by Windows Operating System. The SetCommMask function takes in two parameters:
The first parameter is the HANDLE we received from the call to the CreateFile function.
The second parameter is used to specify the event type. To specify a Read Event, we use EV_RXCHAR flag.
2. After calling the SetCommMask function, we call the WaitCommEvent function to wait for the event to occur. This function takes in three parameters:
The first parameter is the HANDLE we received from the call to the CreateFile function.
The second parameter is an output parameter, which reports the event type that was fired.
The third parameter is a pointer to an OVERLAPPED structure. Since, our implementation is for Non-Overlapped communication, it must be set to NULL.
3. Once this event is fired, we then use the ReadFile function to retrieve the bytes that were buffered internally. The ReadFile function takes in five parameters:
The first parameter is the HANDLE we received from the call to the CreateFile function.
The second parameter is a buffer that would receive the bytes if the ReadFile function returns successfully.
The third parameter specifies the size of our buffer we passed in as the second parameter.
The fourth parameter is an output parameter that will notify the user about the number of bytes that were read.
The last parameter is always NULL for our purpose since we do not deal with non-overlapped mode.
In our example, we read one byte at a time and store it in a temporary buffer. This continues until the case when ReadFile function returns successfully and the fourth parameter has a value of 0. This indicates that the internal buffer used by Windows OS is empty and so we stopping reading. The following code shows the implementation of this technique:
 Collapse | Copy Code
std::stringbuf sb;
DWORD dwEventMask;

if(!SetCommMask(m_hSerialComm, EV_RXCHAR))
    //Handle Error Condition

if(WaitCommEvent(m_hSerialComm, &dwEventMask, NULL))
{
    char szBuf;
    
DWORD dwIncommingReadSize;

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

        else
            //Handle Error Condition
    
} while(dwIncommingReadSize > 0);
}

else
    //Handle Error Condition
IV. Write
Write operation is easier to implement than Read. It involves using just one function, WriteFile. It takes in five parameters similar to ReadFile function. The second parameter in WriteFile specifies the buffer to be written to the serial port. The following example shows implementation of Write using WriteFile. It writes one byte at a time until all the bytes in our buffer are written:
 Collapse | Copy Code
unsigned long dwNumberOfBytesSent = 0;

while(dwNumberOfBytesSent < dwSize )
{
    unsigned long dwNumberOfBytesWritten;

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

    else
        //Handle Error Condition
}
V. Close
After we finish all our communication with the serial port, we have to close the connection. This is achieved by using the CloseHandle function and passing in the serial port HANDLE we obtained from the CreateFile function call. Failure to do this results in hard to find handle leaks. The follow code snippet explains the use of this function:
 Collapse | Copy Code
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 serial port communication will serve as a starting point. I am sure as you browse through MSDN looking for these function definitions, you will come across more sophisticated functions that might be better suited for your application needs.
License
This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多