標準控制元件
# Smart 控制元件使用(標準)
標準控制元件盤中包含經常會使用到的標準Windows控制元件。可配合顯示標準的Windows程式界面。
# 1. TMainMenu元件
TMainMenu為窗體提供主功能表。要開始設計功能表,請在窗體中新增主功能表,然後雙擊該元件。 TMainMenu引入了用於將主功能表的下拉功能表與另一個窗體的主功能表合併的屬性和方法。 TMainMenu引入了用於輔助OLE容器的功能表協商過程的屬性和方法。 提示:要建立使用者可以在運行時配置的功能表,請將TActionMainMenuBar元件與操作管理器一起使用。
# 1.1. 屬性
- TMainMenu元件主要屬性
屬性 | 功能說明 |
---|---|
AutoHotkeys | 確定是否可以自動重置功能表項的快捷鍵 |
AutoLineReduction | 確定是否從功能表中自動刪除冗餘的分隔條 |
AutoMerge | 確定輔助窗體的主功能表是否在運行時與非MDI應用程式中的主窗體的主功能表合併 |
BiDiMode | 確定中東語言環境中功能表的佈局 |
Images | 列出可以出現在各個功能表項旁邊的影象 |
OwnerDraw | 指定應用程式是否繪製功能表項 |
ParentBiDiMode | 指示BiDiMode屬性是否從使用該功能表的元件繼承 |
# 1.2. 事件
- TMainMenu元件事件列表
事件 | 何時觸發 |
---|---|
OnChange | 在功能表更改時,觸發該事件 |
# 1.3. 方法
- TMainMenu元件主要方法列表
方法 | 功能描述 |
---|---|
GetOle2AcceleratorTable | 返回主功能表的快捷鍵對應表 |
Merge | 將一個窗體的主功能表與另一個窗體的主功能表組合在非MDI應用程式中 |
PopulateOle2Menu | 使用主功能表中的專案填充OLE功能表 |
SetOle2MenuHandle | 將OLE功能表的控制代碼與主功能表相關聯 |
Unmerge | 反轉非MDI應用程式中兩個功能表的合併操作 |
# 2. TPopupMenu元件
TPopupMenu使使用者使用滑鼠右鍵單擊元件時顯示的彈出功能表。要使彈出功能表可用,請將TPopupMenu對像分配給元件的PopupMenu屬性。 提示:要建立使用者可以在運行時配置的彈出功能表,請將TStandardMenuPopup元件與操作管理器一起使用。 注意:如果彈出功能表的ParentBiDiMode為true,則彈出功能表的BiDiMode設定為啟用它的元件的BiDiMode。如果找不到元件,BiDiMode將設定為Application對象的BiDiMode的值。彈出功能表的BiDiMode會影響其所有功能表項。
# 2.1. 屬性
- TPopupMenu元件主要屬性
屬性 | 功能說明 |
---|---|
PopupComponent | 指示上次顯示彈出功能表以響應滑鼠右鍵單擊的元件 |
PopupPoint | 指示彈出功能表顯示的位置 |
Alignment | 確定使用者單擊滑鼠右鍵時彈出功能表的顯示位置 |
AutoHotkeys | 確定是否可以自動重置功能表項的快捷鍵 |
AutoLineReduction | 確定是否從功能表中自動刪除冗餘分隔條 |
AutoPopup | 確定當用戶單擊滑鼠右鍵時是否自動顯示彈出功能表 |
BiDiMode | 確定中東語言環境中功能表的佈局 |
HelpContext | 指定整個彈出功能表的上下文ID |
Images | 列出可以出現在各個功能表項旁邊的影象 |
MenuAnimation | 指定首次顯示功能表時的顯示方式 |
OwnerDraw | 指定應用程式是否繪製功能表項 |
ParentBiDiMode | 指示BiDiMode屬性是否從使用該功能表的元件繼承 |
TrackButton | 指定當與工具欄按鈕關聯時,哪個滑鼠按鈕啟用彈出功能表 |
# 2.2. 事件
- TPopupMenu元件事件列表
事件 | 何時觸發 |
---|---|
OnChange | 在功能表更改時,觸發該事件 |
OnPopup | 在彈出功能表出現之前,觸發該事件 |
# 2.3. 方法
- TPopupMenu元件主要方法列表
方法 | 功能描述 |
---|---|
Popup | 在螢幕上顯示彈出功能表 |
{此示例使用彈出功能表。當用戶按下滑鼠按鈕時,彈出功能表出現在使用者點選滑鼠所在的位置:}
procedure TForm1.FormCreate(Sender:TObject);
begin
FThis.PopupMenu1.AutoPopup:=False;
end;
procedure TForm1.FormMouseDown(Sender:TObject;Button:TMouseButton;Shift:TShiftState;X,Y:Integer);
begin
FThis.PopupMenu1.Popup(Left+X,Top+Y);
end;
2
3
4
5
6
7
8
9
10
# 3. TLabel元件
使用TLabel可新增使用者無法編輯到窗體的文字。此文字可用於標記另一個元件,並可在使用者鍵入快捷鍵時將焦點設定為該元件。 因為TLabel不是TWinControl的子類,所以它沒有自己的視窗,也無法從鍵盤接收直接輸入。要將對像新增到可以響應鍵盤輸入的窗體(除了在鍵入快捷鍵時將焦點設定為另一個對像),還可以使用TStaticText。 要將對像新增到顯示使用者可以滾動或編輯的文字的窗體,請使用TEdit。
# 3.1. 屬性
- TLabel元件主要屬性
屬性 | 功能說明 |
---|---|
Align | 確定元件在其父元件區內的對齊方式 |
Alignment | 控制文字在標籤中的水平放置 |
Anchors | 指定元件如何停放在父窗體中 |
AutoSize | 確定標籤的大小是否自動調整大小以容納文字 |
BiDiMode | 指定元件的方向模式 |
Caption | 指定標識使用者元件的文字字串 |
Color | 指定元件的背景顏色 |
Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大或最小值時,重新調整元件的大小不能超出該限制 |
DragCursor | 目前元件受拖動時游標的形狀 |
DragKind | 獲取或設定元件是拖動操作還是拖動/停靠操作 |
DragMode | 確定元件如何啟動拖放操作或拖掛操作 |
EllipsisPosition | 指定如何在文字中放置省略號以使其適合分配的矩形 |
Enabled | 控制組件是否響應滑鼠,鍵盤和計時器事件 |
FocusControl | 指定與標籤關聯的視窗元件 |
Font | 確定元件內顯示的文字字型 |
GlowSize | 指定標籤周圍發光的半徑 |
Layout | 指定文字在標籤中的垂直位置 |
ParentBiDiMode | 獲得或設定元件是否使用其父元件的BiDiMode屬性 |
ParentColor | 元件要使用與其父元件相同的顏色 |
ParentFont | 確定元件是否使用父元件的Font |
ParentShowHint | 確保窗體中的所有元件以統一格式顯示幫助提示 |
PopupMenu | 在元件上單擊游標右鍵時出現的彈出式功能表 |
ShowAccelChar | 確定標籤文字中的&符號的顯示方式 |
ShowHint | 確定當滑鼠指針暫時停留在元件上時元件是否顯示「幫助提示」 |
Transparent | 指定是否可以通過標籤檢視位於窗體上標籤下方的元件 |
Visible | 確定元件是否可見 |
WordWrap | 指定標籤文字在標籤寬度過長時是否換行 |
# 3.1.1. Alignment 屬性
property Alignment: TAlignment;
設定該屬性可以指定標籤文字在ClientRect區域內如何排列。如果Wordwrap屬性為True, 而且標籤中包含多於一行的文字時,則這個屬性的效果將更加明顯。 Alignment屬性的可選值如下。
- taLeftJustify:輸入的文字在元件的左邊對齊。
- taCenter:輸入的文字在元件的中間對齊。
- taRightJustify:輸入的文字在元件的石邊對齊。
# 3.1.2. AutoSize 屬性
property AutoSize: Boolean;
使用該屬性可自動調整標籤的大小,使客戶區容納文字的高和寬。,設罝該屬性為False 時,標籤大小同定;否則標籤大小將隨文字內容和字型屬性的改變而改變。 當Wordwrap屬性為True時,標籤寬度固定,此時如果該屬性也為True,則改變文字僅使標籤的高度發生改變;如果該屬性為True, Wordwrap為False,則標籤高度由字型決定,文字變化將使標籤寬度變化。
# 3.1.3. FocusControl 屬性
property FocusControl: TWinControl;
設罝該屬性可使元件為當用戶按下標籤中指定的快捷鍵時接收焦點的視窗類元件。指定一 個快捷鍵時,要在標籤文字前新增一個&符號,並將ShowAccelChar屬性設定為True。
- 應用
FocusControl屬性用於設罝標籤元件與窗體上其他沒有標題的元件相關聯,關聯后可以通過鍵盤上的加速鍵使這些元件獲得輸入焦點。
begin
FThis.Button2.SetFocus; //初始化時將焦點置於Button2上。
FThis.Label2.ShowAccelChar := True;
FThis.Label2.Caption := '在目前界面下,按下&A按鍵,Button1獲得焦點';
FThis.Label2.FocusControl := This.Button1;
end.
2
3
4
5
6
# 3.1.4. Layout 屬性
property Layout: TTextLayout;
該屬性用於指定標籤元件的ClientRect內的文字顯示位置,Layout屬性的可選值如下。
- tlTop:頂部對齊。
- tlBottom:底部對齊。
- tICenter:居中對齊。
# 3.1.5. ShowAccelChar 屬性
property ShowAccelChar: Boolean;
設定該屬性為True時,允許任意字元前新增&記號將出現下劃線。如果要顯示一個&號, 可連續使用兩個&&號。如果設定了FocusControl屬性,則當用戶輸入下劃線字元時,視窗焦點將指向FocusControl屬性指定的有窗體的元件,設定該屬性為False時,在標籤中只顯示標籤名稱,而且FocusControl屬性值無效。
- 應用
ShowAccelChar屬性用於設定是否顯示標籤文字中的記號名稱。
begin
This.Label1.ShowAccelChar := True;
This.Label1.Caption := 'An &Underlined character appears here';
This.Label2.ShowAccelChar := False;
This.Label2.Caption := 'An ampersand (&) appears here';
end.
2
3
4
5
6
# 3.1.6. Transparent 屬性
property Transparent: Boolean;
設定該屬性為True時,可透過標籤元件看到其下的元件,例如在一幅影象上新增文字時, 可使用這個屬性將其設為透明顯示,這樣文字框的顯示就會是透明的。
# 3.1.7. Wordwrap 屬性
property Wordwrap: Boolean;
設定該屬性為True時,允許標籤元件顯示多行文字;為False時可以限制標籤文字為單行顯示,超長文字將被截掉。
begin
This.Label1.WordWrap := True;
This.Label1.Caption := '愿中國青年都擺脫冷氣,只是向上走,不必聽自暴自棄者流的話。能做事的做事,'
+ '能發聲的發聲。有一分熱,發一分光。就令螢火一般,也可以在黑暗里發一點光,不必等候炬火。';
This.Label2.WordWrap := False;
This.Label2.Caption := '愿中國青年都擺脫冷氣,只是向上走,不必聽自暴自棄者流的話。能做事的做事,'
+ '能發聲的發聲。有一分熱,發一分光。就令螢火一般,也可以在黑暗里發一點光,不必等候炬火。';
end.
2
3
4
5
6
7
8
# 3.1.8. Caption 屬性
property Caption: TCaption:
使用該屬性可指定標註元件的文字字串。在字元前包括一個與(&)符號可使一個標註元件的該屬性中該字元以下劃線方式顯示。這種型別的字元稱為「加速符」,使用者按住Alt鍵的同時按下劃線字元即可選取該元件。使用雙與號(&&)可在標題中顯示一個&符號。
# 3.2. 事件
- TLabel元件主要事件
事 件 | 描 述 |
---|---|
OnContextPopup | 與使用者右擊元件或用其他方式(鍵盤)呼叫彈出功能表時產生該組 件,編輯其事件處理程式可在響應使用者行為中建立或顯示元件的彈出功能表。該事件允許應用程式集中響應使用者的各種行為 |
OnEndDock | 與對象的拖動結束后產生該事件,使用這個事件的處理程式可指定行為 |
OnEndDrag | 與對象的拖動結束后產生該事件,使用這個事件的處理程式可指定行為 |
OnMouseEnter | 與游標指針移動到標籤上時,觸發該事件,編輯其斑件處理程式可以在滑鼠移動到標籤上時執行其特定的操作 |
OnMouseLeave | 與游標指針離開標籤時,觸發該事件,編輯其事件處理程式可以在滑鼠游標離開標籤時執行其特定的操作 |
OnStartDock | 當用戶開始拖動元件時產生該事件 |
# 3.2.1. OnMouseEnter 事件
type TNotifyEvent = procedure (Sender: Tobject) of object;
property OnMouseEnter: TnotifyEvent;
2
當游標指針移動到標籤上時,觸發該事件,編寫其事件處理程式可以在滑鼠移動到標籤上時執行其特定的操作。
# 3.2.2. OnMouseLeave 事件
type TNotifyEvent = procedure (Sender: TObject) of object;
property OnMouseLeave: TNotifyEvent;
2
當游標指針離開標籤時,觸發該事件,編寫其事件處理程式可以在滑鼠游標離開標籤時執行其特定的操作。
- 應用
當滑鼠移到至標籤上時,標籤變紅色,當滑鼠從標籤上移開時,標籤恢復黑色。
procedure TMyHandler.LABEL2MOUSEENTER;
//滑鼠移動至此處時觸發該事件
begin
if Sender is TLabel then
TLabel(Sender).Font.Color := clRed;
end;
procedure TMyHandler.LABEL2MOUSELEAVE;
//滑鼠離開時觸發該事件
begin
if Sender is TLabel then
TLabel(Sender).Font.Color := clBlack;
end;
2
3
4
5
6
7
8
9
10
11
12
13
# 4. TEdit元件
使用TEdit對像將標準Windows編輯元件放在窗體上。編輯元件用於檢索使用者鍵入的文字。編輯元件還可以向用戶顯示文字。 僅向用戶顯示文字時,選擇編輯元件以允許使用者選擇文字並將其複製到剪貼簿。如果不需要編輯元件的選擇功能,請選擇標籤對像(TLabel)。 TEdit實現了TCustomEdit中引入的泛型行為。TEdit發佈了許多從TCustomEdit繼承的屬性,但沒有引入任何新行為。對於專門的編輯元件,請使用TCustomEdit的其他後代類或從中派生。
# 4.1. 屬性
- TEdit元件主要屬性
屬性 | 功能說明 |
---|---|
Align | 確定元件在其父元件區內的對齊方式 |
Alignment | 確定文字在文字編輯元件中的對齊方式 |
Anchors | 指定元件如何停放在父窗體中 |
AutoSelect | 確定元件獲得焦點時是否自動選擇編輯元件中的所有文字 |
AutoSize | 確定編輯元件的高度是否自動調整大小以容納文字 |
BevelEdges | 使用該屬性可獲得或設定元件成斜角的邊緣 |
BevelInner | 使用該屬性可指定內斜角是否具有凸、凹或平坦的外觀 |
BevelKind | 使用該屬性可修改斜角的風格,即斜角的傾斜程度 |
BevelOuter | 使用該屬性可指定外斜角是否具有凸、凹或平坦的外觀,外斜角直接顯示在邊框內和內斜角的外面 |
BevelWidth | 使用該屬性可指定內外斜角的畫素寬度 |
BiDiMode | 指定元件的方向模式 |
BorderStyle | 使用該屬性可影響編輯元件的客戶區域突出效果,其取值為bsSingle時,編輯元件的客戶區域有一個單線邊框;為bsNone時,無邊框 |
CharCase | 確定編輯元件中文字的大小寫 |
Color | 指定元件的背景顏色 |
Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大或最小值時,重新調整元件的大小不能超出該限制 |
Ctl3D | 確定元件是否具有三維(3-D)或二維外觀 |
DoubleBuffered | 確定元件的影象是直接渲染到視窗還是首先繪製到記憶體中的點陣圖 |
DragCursor | 目前元件受拖動時游標的形狀 |
DragKind | 獲取或設定元件是拖動操作還是拖動/停靠操作 |
DragMode | 確定元件如何啟動拖放操作或拖掛操作 |
Enabled | 控制組件是否響應滑鼠,鍵盤和計時器事件 |
Font | 確定元件內顯示的文字字型 |
HideSelection | True:編輯元件有焦點時,文字選擇的部分有視覺提示;False:即使編輯元件無焦點,文字選擇的部分仍然有視覺反應 |
ImeMode | 設定該屬性可配置IME處理使用者按鍵的方法。對於亞洲語言字元,IME為前端輸入處理器 |
ImeName | 設定該屬性可配置IME名稱 |
Lines | 使用該方法可操作編輯元件中的單行文字 |
MaxLength | 利用該屬性可限制使用者輸入的字元數,為0表示字元的長度沒有限制 |
NumbersOnly | 僅允許在文字編輯中鍵入數字 |
OEMConvert | 確定在編輯元件中鍵入的字元是否從ANSI轉換為OEM,然後再轉換回ANSI |
Paragraph | 讀取該屬性可獲得編輯元件中指定的段落格式資訊 |
ParentBiDiMode | 獲得或設定元件是否使用其父元件的BiDiMode屬性 |
ParentColor | 元件要使用與其父元件相同的顏色 |
ParentCtl3D | 確定元件是否使用父元件的Ctl3D |
ParentDoubleBuffered | 獲得或設定元件是否使用父元件的DoubleBuffered屬性 |
ParentFont | 確定元件是否使用父元件的Font |
ParentShowHint | 確保窗體中的所有元件以統一格式顯示幫助提示 |
PasswordChar | 指示要顯示的字元(如果有),以代替在元件中鍵入的實際字元 |
PlainText | True:忽略RTF文字中的資訊編碼。False:將RTF文字中的格式資訊編輯儲存或流出到檔案 |
PopupMenu | 在元件上單擊游標右鍵時出現的彈出式功能表 |
ReadOnly | 確定使用者是否可以更改編輯元件的文字 |
ScrollBars | 確定是否為多行文字編輯器新增水平或垂直的滾動條 |
ShowHint | 確定當滑鼠指針暫時停留在元件上時元件是否顯示「幫助提示」 |
TabOrder | 確定父元件的切換順序 |
TabStop | 確定使用者是否可以通過Tab按鍵選擇元件 |
Text | 包含與元件關聯的文字字串 |
TextHint | Text屬性為空時顯示的提示或訊息 |
Visible | 確定元件是否可見 |
Ctl3D | 確定元件在其父元件區內的對齊方式 |
DoubleBuffered | 確定文字在文字編輯元件中的對齊方式 |
DragCursor | 指定元件如何停放在父窗體中 |
DragKind | 確定元件獲得焦點時是否自動選擇編輯元件中的所有文字 |
DragMode | 確定編輯元件的高度是否自動調整大小以容納文字 |
Enabled | 使用該屬性可獲得或設定元件成斜角的邊緣 |
Fon | 使用該屬性可指定內斜角是否具有凸、凹或平坦的外觀 |
HideSelection | 使用該屬性可修改斜角的風格,即斜角的傾斜程度 |
ImeMode | 使用該屬性可指定外斜角是否具有凸、凹或平坦的外觀,外斜角直接顯示在邊框內和內斜角的外面 |
ImeName | 使用該屬性可指定內外斜角的畫素寬度 |
MaxLength | 為元件指定雙向模式,控制文字的順序,垂直滾動條的位置以及是否改變對齊方式 |
NumbersOnly | 使用該屬性可影響編輯元件的客戶區域突出效果,其取值為bsSingle時,編輯元件的客戶區域有一個單線邊框;為bsNone時,無邊框 |
OEMConvert | 確定編輯元件中文字的大小寫 |
ParentBiDiMode | 指定元件的背景顏色 |
ParentColor | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大或最小值時,重新調整元件的大小不能超出該限制 |
# 4.1.1. AutoSelect 屬性
property AutoSelect: Boolean;
設定該屬性可以在編輯元件獲得焦點時選中編輯元件中的所有文字。該屬性只能在單行編輯元件中應用。,使用者替代編輯元件中的文字比新增的可能性大時,使用該屬性。
True:當TEdit元件獲得輸入焦點時,選中所有的文字。
False:當TEdit元件獲得輸入焦點時,不選中所有的文字。
應用
使用AutoSelect屬效能夠確定在編輯框獲得焦點時是否選中文字。
constructor TMyHandler.Create(AOwner: TComponent);
begin
FThis :=TBaseForm(AOwner);
FThis.Edit1.AutoSelect := True;
FThis.Edit2.AutoSelect := False;
end;
{方法實現 MODULE-REAL}
procedure TMyHandler.BUTTON1CLICK;
//點選Button1,Edit1獲得焦點
begin
FThis.Edit1.SetFocus;
end;
procedure TMyHandler.BUTTON2CLICK;
//點選Button2,Edit2獲得焦點
begin
FThis.Button2.SetFocus;
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 4.1.2. BorderStyle 屬性
property BorderStyle: TBorderStyle;
使用該屬性可影響編輯元件的客戶區域突出效果,當其取值為bsSingle,則編輯元件的客戶區域會有一個單線邊框;為bsNone,則無邊框。
# 4.1.3. CanUndo 屬性
property CanUndo: Boolean;
讀取該屬性可確定使用者修改文字后是否通過呼叫Undo方法回退,在允許或禁止對應于這些命令的功能表項時這個屬性非常有用。 示例:
begin
if This.Edit1.CanUndo then
This.Edit1.Undo;
end.
2
3
4
# 4.1.4. CharCase 屬性
property CharCase: TEditCharCase;
該屬性用於確定編輯元件中文字的大小寫,可將編輯元件中的內容強制為特定的大小寫。 可取值如下:
ecNormal:輸入的文字不進行大小寫轉換。
ecLowerCase:把輸入的文字強制轉換為小寫。
ecUpperCase:把輸入的文字強制轉換為大寫。
應用
CharCase屬性用於設定是否對Edit中的文字進行大小寫轉換。
procedure TMyHandler.BUTTON1CLICK;
//點選將文字轉換為大寫
begin
FThis.Edit1.CharCase := ecUpperCase;
end;
procedure TMyHandler.BUTTON2CLICK;
//點選將文字轉換為小寫
begin
FThis.Edit2.CharCase := ecLowerCase;
end;
2
3
4
5
6
7
8
9
10
11
# 4.1.5. HideSelection 屬性
property HideSelection: Boolean;
該屬性用於確定當焦點移走後所選文字是否保留視覺提示。設罝為False,編輯元件沒有焦點時,所選文字部分仍保留視覺提示;否則只有在編輯元件獲得焦點時,所選文字部分才保留視覺提示。該屬性不影響選擇的實際值,只是視覺提示。
- 應用
HideSelection屬性用於確定當輸入焦點離開時,是否仍然高亮顯示選中的文字。
begin
This.Edit1.AutoSelect := True;
This.Edit1.HideSelection := False;
This.Edit1.SetFocus;
end.
2
3
4
5
# 4.1.6. MaxLength 屬性
property MaxLength: Integer;
利用該屬性可限制使用者輸入的字元數,為0表示字元的長度沒有使用者定義的限制。如果要將編輯元件中的文字複製到固定長度的緩衝區時,可用該屬性限制編輯元件中的文字長度。 設定該屬性並不截斷已存在的文字,而僅在輸入達到界限后阻止使用者輸入更多的文字。 示例
This.Edit1.MaxLength := 5
Edit1中最多允許存在5個字元,達到5個字元后將無法繼續輸入。
# 4.1.7. Modified 屬性
property Modified: Boolean;
使用該屬性確定編輯元件中的Text屬性是否可修改。如果在應用程式中直接修改編輯元件中的Text屬性,則應將這個屬性設定為True。
- 應用
在程式中使用該屬效能夠確定編輯框文字是否發生了變化。
procedure TMyHandler.BUTTON1CLICK;
//檢測Edit1是否有改動
begin
if FThis.Edit1.Modified then
ShowMessage('Edit1中內容已經改變');
end;
2
3
4
5
6
# 4.1.8. OEMConvert 屬性
property OEMConvert: Boolean;
該屬性用於確定輸入編輯元件中的字元是否從ANSI轉換為OEM,然後轉換為ANSI。要保證編輯元件中輸入的字元轉換為OEM字符集,設定其為True,則使所有字元從ANSI轉換為OEM,然後轉為輸入時的ANSI。如果不需要將文字對映到一個OEM字串,則設定為False可避免轉換的開銷。該屬性大多用在應用程式不用Unicode檔名時在編輯元件中輸入檔名。
- True:文字框Edit中的文字能從ANSI轉換為OEM。
- False:文字框Edit中的文字不能從ANSI轉換為OEM
# 4.1.9. PasswordChar 屬性
property PasswordChar: Char;
利用該屬性可建立編輯元件中用代替輸入字元顯示的特殊字元。如果為空字元(ANSI字元為0),則編輯元件顯示正常文字;如果為其他字元,則顯示PasswordChar代替輸入的字元。 該屬性隻影響編輯元件的外觀,Text屬性的值代表輸入的實際值。
- 應用
begin
This.Edit1.PasswordChar := '*';
end.
2
3
# 4.1.10. Readonly 屬性
property Readonly: Boolean;
該屬性用於確定使用者是否可改變編輯元件中的文字,為True時,則限制編輯元件只能顯示, 確保元件中的文字不被修改,但允許使用者選擇文字,應用程式可處理所選文字,也可複製到剪 貼板;為False時,則允許編輯元件中的內容。
- 應用
begin
This.Edit1.ReadOnly := True;
This.Edit2.ReadOnly := False;
end.
2
3
4
# 4.1.11. SelLength 屬性
property SelLength: Integer;
該屬性用於指定所選文字的字元長度,設定后可改變從SelStart開始前的SelLength字元的選擇。設罝其值大於從SelStart開始到文字結束的字元數,導致全選從SelStart開始到文字結束的字元。此時讀取該屬性返回實際所選取的字元數,而不是設定的值。
- 應用
SelLength屬性用於返回在文字框TEdit中選中字元的長度,這樣,在程式中就能通過程式碼使編輯框中的文字部分被選中。
procedure TMyHandler.BUTTON1CLICK;
//點選以選中部分文字
begin
FThis.Edit1.AutoSelect := True;
FThis.Edit1.SetFocus;
FThis.Edit1.SelStart := 1; //設定開始選中的起始位置
FThis.Edit1.SelLength := Length(FThis.Edit1.Text); //設定被選中區域的長度,延申至字串尾。
end;
2
3
4
5
6
7
8
# 4.1.12. SelStart 屬性
property SelStart: Integer;
讀取該屬性的值可確定第1個被選字元的位置,0指向第1個字元。如果沒有所選文字, 則該屬性指向游標的位置。設罝這個屬性刪除目前的選擇並將游標位罝指向字元的前面。用法詳見SelLength 屬性。
# 4.1.13. SelText屬性
property SelText: string;
讀取該屬性可確定被選文字的值,設定該屬性可用新的字元牢替換已選文字。如果沒有選擇,但是編輯元件有焦點,則設定該屬性可向游標處插入新的字串。
- 應用
在SelLength 屬性的例子中,加入如下程式碼,當Edit1中的文字被選中時,SelText中的內容就是Edit1中選中的內容。
procedure TMyHandler.BUTTON2CLICK;
//顯示目前選中的文字內容
begin
ShowMessage(FThis.Edit1.SelText);
end;
2
3
4
5
# 4.1.14. Text 屬性
property Text: TCaption;
Text屬性用於讀取或設定編輯框中的文字。
# 4.2. 事件
事 件 | 描 述 |
---|---|
OnChange | 當編輯元件中的文字發生改變時觸發該事件,編其事件處理程式 可執行特定的功能 |
OnContextPopup | 當用戶右擊元件或用其他方式(鍵盤)呼叫彈出功能表時產生該元件,編輯其事件處理程式可在響應使用者行為中建立或顯示元件的彈出功能表。該事件允許應用程式集中響應使用者的各種行為 |
OnEndDrag | 與對象的拖動結束后產生該事件 |
OnEnter | 當元件獲得輸入焦點時產生該事件 |
OnExit | 輸入焦點從元件移至另一元件時產生該事件 |
OnKeyPress | 當用戶按下單個字元鍵時產生該事件 |
# 4.3. 方法
- TEdit元件主要方法
方 法 | 描 述 |
---|---|
Clear | 該方法用於刪除編輯元件中的所有文字,可使空字串替換Text屬性 |
ClearSelection | 該方法用於刪除編輯元件中的所選文字 |
ClearUndo | 該方法用於淸除回退緩衝區,以使對文字所做的修改不能回退 |
# 4.3.1. Clear 方法*
procedure Clear; virtual;
該方法用於刪除編輯元件中的所有文字,使用者可使空字元牢替換Text屬性。如果要刪除所選文字,可使用ClearSelection方法。
# 4.3.2. ClearSelcction 方法*
procedure ClearSelection;
該方法用於刪除編輯元件中的所選文字。如果無選擇文字,則不執行操作;如果選擇全部文字,則刪除所有文字。呼叫該方法與為編輯元件發送WM_CLEAR訊息相同。
# 4.3.3. ClearUndo 方法*
procedure ClearUndo;
該方法用於清除回退緩衝區,以使對文字所做的修改不能回退。使用該方法可確認Text屬性的改變,在呼叫后,CanUndo屬性為False並且Undo方法不執行任何操作。
# 5. TMemo元件
使用TMemo在窗體上放置標準Windows多行編輯元件。多行編輯框允許使用者輸入多行文字。它們適合表示冗長的資訊。 TMemo實現了TCustomMemo中引入的通用行為。TMemo發佈了許多從TCustomMemo繼承的屬性,但沒有引入任何新行為。 注意:在Win9x下,此元件的文字限制為64k。
# 5.1. 屬性
- TMemo元件主要屬性
屬性 | 功能說明 |
---|---|
Align | 確定元件在其父元件區內的對齊方式 |
Alignment | 確定文字在文字編輯元件中的對齊方式 |
Anchors | 指定元件如何停放在父窗體中 |
BevelEdges | 使用該屬性可獲得或設定元件成斜角的邊緣 |
BevelInner | 使用該屬性可指定內斜角是否具有凸、凹或平坦的外觀 |
BevelKind | 使用該屬性可修改斜角的風格,即斜角的傾斜程度 |
BevelOuter | 使用該屬性可指定外斜角是否具有凸、凹或平坦的外觀,外斜角直接顯示在邊框內和內斜角的外面 |
BiDiMode | 為元件指定雙向模式,控制文字的順序,垂直滾動條的位置以及是否改變對齊方式 |
BorderStyle | 使用該屬性可影響編輯元件的客戶區域突出效果,其取值為bsSingle時,編輯元件的客戶區域有一個單線邊框;為bsNone時,無邊框 |
CharCase | 確定編輯元件中文字的大小寫 |
Color | 指定元件的背景顏色 |
Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大或最小值時,重新調整元件的大小不能超出該限制 |
Ctl3D | 確定元件是否具有三維(3-D)或二維外觀 |
DoubleBuffered | 確定元件的影象是直接渲染到視窗還是首先繪製到記憶體中的點陣圖 |
DragCursor | 目前元件受拖動時游標的形狀 |
DragKind | 獲取或設定元件是拖動操作還是拖動/停靠操作 |
DragMode | 確定元件如何啟動拖放操作或拖掛操作 |
Enabled | 控制組件是否響應滑鼠,鍵盤和計時器事件 |
Font | 確定元件內顯示的文字字型 |
HideSelectio | True:編輯元件有焦點時,文字選擇的部分有視覺提示;False:即使編輯元件無焦點,文字選擇的部分仍然有視覺反應 |
ImeMode | 設定該屬性可配置IME處理使用者按鍵的方法。對於亞洲語言字元,IME為前端輸入處理器 |
ImeName | 設定該屬性可配置IME名稱 |
Lines | 包含備忘錄元件中的各行文字 |
MaxLength | 利用該屬性可限制使用者輸入的字元數,為0表示字元的長度沒有限制 |
OEMConvert | 確定在編輯元件中鍵入的字元是否從ANSI轉換為OEM,然後再轉換回ANSI |
ParentBiDiMode | 獲得或設定元件是否使用其父元件的BiDiMode屬性 |
ParentColor | 元件要使用與其父元件相同的顏色 |
ParentCtl3D | 確定元件是否使用父元件的Ctl3D屬性 |
ParentDoubleBuffered | 獲得或設定元件是否使用父元件的DoubleBuffered屬性 |
ParentFont | 確定元件是否使用父元件的Font |
ParentShowHint | 確保窗體中的所有元件以統一格式顯示幫助提示 |
PopupMenu | 在元件上單擊游標右鍵時出現的彈出式功能表 |
ReadOnly | 確定使用者是否可以更改編輯元件的文字 |
ScrollBars | 確定是否為多行文字編輯器新增水平或垂直的滾動條 |
ShowHint | 確定當滑鼠指針暫時停留在元件上時元件是否顯示「幫助提示」 |
TabOrder | 確定父元件的切換順序 |
TabStop | 確定使用者是否可以通過Tab按鍵選擇元件 |
Visible | 確定元件是否可見 |
WantReturns | 確定使用者是否可以在文字中插入返回字元 |
WantTabs | 確定使用者是否可以在文字中插入製表符 |
WordWrap | 確定編輯元件是否插入軟回車,以便文字在右邊距處換行 |
# 5.1.1. Alignment 屬性
property Alignment: TAlignment;
確定編輯元件中文字的對齊方式。 可選值如下:
- taLeftJustify:輸入的文字在元件的左邊對齊。
- taCenter:輸入的文字在元件的居中對齊。
- taRightJustify:輸入的文字在元件的右邊對齊。
# 5.1.2. CaretPos 屬性
Propetry CaretPos:TPoint;
指定相對於編輯器的客戶區域原點的X和Y的位置。根據文字字元確定游標的位置時應使用SelStart屬性。
- 應用
指出游標在TMemo元件中的位置。如顯示目前游標在備註框中的行與列。
procedure TMyHandler.MEMO1MOUSEMOVE;
begin
FThis.Label1.Caption := '目前位置:' + IntToStr(FThis.Memo1.CaretPos.X) + ','
+ IntToStr(FThis.Memo1.CaretPos.Y);
end;
2
3
4
5
# 5.1.3. Lines 屬性
property Lines: TStrings;
使用該屬效能夠以行為單位操作文字編輯器的文字,該屬性是TStrings對象,所以TStrings的方法可用其完成各種操作,如計算文字的行數、新增一行、刪除一行或用新的文字替代一行等。如果要處理所有文字,則使用Text屬性;如果要處理文字的單行,則最好使用這個屬性。雖然該屬性作為TStrings的子類實現,但其不支援列表中與字串對像相關的實現。
- 應用
在程式中如果需要向備註框中新增數據,則可以使用Lines屬性的相關方法。
procedure TMyHandler.BUTTON1CLICK;
//點選以新增文字
begin
FThis.Memo1.Lines.Add('愛招飛系列產品');
FThis.Memo1.Lines.Add('Smart智慧控制平臺');
FThis.Memo1.Lines.Add('快速開發智能監測程式');
end;
2
3
4
5
6
7
# 5.1.4. ScrollBars 屬性
property ScrollBars: TScrollStyle;
該屬性用於確定是否為多行文字編輯器新增水平或垂直滾動條。 可選值如下。
- ssNone:沒有滾動條。
- ssBoth:水平、垂直都有滾動條。
- ssHorizontal:水平滾動條。
- ssVerticals垂直滾動條。
# 5.1.5. WantReturns 屬性
property WantReturns: Boolean;
該屬性用於確定Enter鍵是否為換行符,為True時,允許使用者輸入Enter鍵時文字換行; 否則輸入Enter鍵時允許操作窗體而不是換行。例如在窗體中放置一個預設(如OK)按鈕和一 個文字編輯元件,如果該屬性為False,則按Enter鍵選擇OK按鈕;杏則將在文字編輯器中插 入一個換行符。該屬性為False時,使用者按下Ctrl+Enter組合鍵,也可在文字編輯器中插入一個換行符。
# 5.1.6. WantTabs 屬性
property WantTabs: Boolean;
該屬性用於確定使用者可否插入製表符,為True時,允許在編輯文字中插入製表符;否則輸 入Tab鍵將選擇窗體上的下一個元件。設定該屬性為True時,使用者可在編輯器元件中製表,但是不能輸出。
# 5.1.7. Wordwrap 屬性
property Wordwrap: Boolean;
該屬性用於確定編輯元件是否插入了軟回車,以使文字到達右邊界時換行。為True時,將自動換行填充客戶區域。這種換行只是爲了裝飾文字,而不是在文字中真正插入回車符;為False 時,則只有在文字中輸入回車符時才能換行。設罝該屬性為True時,不需要使用水平方向的滾動條。
# 5.1.8. CanUndo 屬性
property CanUndo: Boolean;
讀取該屬性可確定使用者修改文字後足否通過呼叫Undo方法回退,在允許或禁止對應于這些命令的功能表項時這個屬性非常有用。 示例程式碼:
begin
if FThis.Memo1.CanUndo then
FThis.Memo1.Undo;
end;
2
3
4
# 5.1.9. HideSelection 屬性
property HideSelection: Boolean;
該屬性用於確定焦點移走後所選文字是否保留視覺提示。設定為False並且編輯元件沒有焦點時,所選文字部分仍保留視覺提示;否則只有在編輯元件獲得焦點時,所選文字部分才保留視覺提示。該屬性不影響選擇的實際值,只是視覺提示。
# 5.1.10. MaxLength 屬性
property MaxLength: Integer;
利用該屬性可限制使用者輸入的字元數,為0,表示字元的長度沒有使用者定義的限制。如果要將編輯元件中的文字複製到同定長度的緩衝區時,可用該屬性限制編輯元件中的文字長度。設定該屬性並不截斷已存在的文字,而僅在輸入達到界限后阻止使用者輸入更多的文字。
# 5.1.11. Modified 屬性
property Modified: Boolean;
使用該屬性可確定編輯元件中的Text屬性是否可修改。如果在應用程式中直接修改編輯元件中的文字,則應將這個屬性設定為True。 程式碼示例
if FThis.Memo1.Modified then
ShowMessage('文字框中的數據發生了改變');
2
# 5.2. 事件
- TMemo元件主要事件
事 件 | 描 述 |
---|---|
OnChange | 當編輯元件中的文字發生改變時觸發該事件,編其事件處理程式 可執行特定的功能 |
OnContextPopup | 當用戶右擊元件或用其他方式(鍵盤)呼叫彈出功能表時產生該元件,編輯其事件處理程式可在響應使用者行為中建立或顯示元件的彈出功能表。該事件允許應用程式集中響應使用者的各種行為 |
OnEndDrag | 與對象的拖動結束后產生該事件 |
OnExit | 輸入焦點從元件移至另一元件時產生該事件 |
# 5.3. 方法
- TMemo元件主要方法
方 法 | 描 述 |
---|---|
Clear | 刪除編輯元件中的所有文字,可用空字串替換Text屬性 |
ClearSelection | 刪除編輯元件中的所選文字 |
ClearUndo | 淸除回退緩衝區,以使對文字所做的修改不能回退 |
SelectAll | 選中備註框元件中的所有文字 |
Undo | 取消從最後呼叫ClearUndo方法以對Text屬性所做的所有修改 |
# 6. TButton元件
使用TButton在窗體上放置標準按鈕。TButton引入了幾個屬性來控制對話方塊設定中的行為。使用者選擇按鈕元件來啟動操作。命令按鈕最常用的事件是 OnClick事件,該事件在使用者單擊按鈕時被觸發。 要使用顯示點陣圖而不是標籤的按鈕,請使用TBitBtn。要使用可以保持在按下位置的按鈕,請使用TSpeedButton。 注意:由於TButton標題始終居中,因此更改BiDi對齊設定是無效的。
# 6.1. 屬性
- TButton元件主要屬性
屬性 | 功能說明 |
---|---|
Action | 指定與元件關聯的操作 |
Align | 確定元件在其父元件區內的對齊方式 |
Anchors | 指定元件如何停放在父窗體中 |
BiDiMode | 為元件指定雙向模式,控制文字的順序,垂直滾動條的位置以及是否改變對齊方式 |
Cancel | 確定按下Esc鍵時按鈕的OnClick事件處理程式是否執行 |
Caption | 指定標識使用者元件的文字字串 |
CommandLinkHint | 文字顯示為命令鏈接按鈕標題下方的提示 |
Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大或最小值時,重新調整元件的大小不能超出該限制 |
Default | 確定按下Enter鍵時按鈕的OnClick事件處理程式是否執行 |
DisabledImageIndex | 禁用按鈕狀態的影象索引 |
DoubleBuffered | 確定元件的影象是直接渲染到視窗還是首先繪製到記憶體中的點陣圖 |
DragCursor | 目前元件受拖動時游標的形狀 |
DragKind | 獲取或設定元件是拖動操作還是拖動/停靠操作 |
DragMode | 確定元件如何啟動拖放操作或拖掛操作 |
DropDownMenu | 拆分按鈕下拉功能表 |
ElevationRequired | 在按鈕上放置盾牌圖示,表示需要提升訪問許可權 |
Enabled | 控制組件是否響應滑鼠,鍵盤和計時器事件 |
Font | 確定元件內顯示的文字字型 |
HotImageIndex | 熱鍵狀態的影象索引 |
ImageAlignment | 按鈕上的影象對齊 |
ImageIndex | 正常按鈕狀態的影象索引 |
ImageMargins | 按鈕上的影象邊距 |
Images | 按鈕的影象列表 |
ModalResult | 確定按鈕是否以及如何關閉其(模態)父窗體 |
ParentBiDiMode | 獲得或設定元件是否使用其父元件的BiDiMode屬性 |
ParentDoubleBuffered | 獲得或設定元件是否使用父元件的DoubleBuffered屬性 |
ParentFont | 確定元件是否使用父元件的Font |
ParentShowHint | 確保窗體中的所有元件以統一格式顯示幫助提示 |
PopupMenu | 在元件上單擊游標右鍵時出現的彈出式功能表 |
PressedImageIndex | 按下按鈕狀態的影象索引 |
SelectedImageIndex | 所選按鈕狀態的影象索引 |
ShowHint | 確定當滑鼠指針暫時停留在元件上時元件是否顯示「幫助提示」 |
Style | 按鈕的樣式 |
TabOrder | 確定父元件的切換順序 |
TabStop | 確定使用者是否可以通過Tab按鍵選擇元件 |
Visible | 確定元件是否可見 |
WordWrap | 指定按鈕文字是否換行以適合元件的寬度 |
# 6.1.1. Cancel 屬性
property Cancel: Boolean;
該屬性用於確定,Escape鍵被按下時是否執行按鈕的OnClick事件處理程式。如果Cancel 為True,則執行。雖然應用程式可有多個Cancel按鈕,但是窗體僅呼叫元件順序中第1個可視的Cancel按鈕的OnClick事件處理程式。
True:使用者按下Esc鍵時TButton元件的OnClick事件被觸發。
False:使用者按下Esc鍵時TButton元件的OnClick事件不被觸發。
應用
設定當用戶按Esc鍵時是否觸發OnClick事件,預設值為False。
constructor TMyHandler.Create(AOwner: TComponent);
begin
FThis :=TBaseForm(AOwner);
FThis.Button1.Cancel := True;
end;
procedure TMyHandler.BUTTON1CLICK;
//點選按鈕以清空
var
i: Integer;
begin
for i := 0 to FThis.Panel1.ControlCount - 1 do
begin
if FThis.Panel1.Controls[i] is TEdit then
TEdit(FThis.Panel1.Controls[i]).Text := '';
end;
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 6.1.2. Default 屬性
property Default: Boolean;
當按下Enter鍵時,通過該屬性來確定元件的OnClick事件處理程式是否被執行。如果Default為True,則執行。雖然應用程式可有多個Default按鈕,但是窗體僅呼叫元件順序中第 1個可視Default按鈕的OnClick事件處理程式。而任何一個獲得焦點的按鈕可變為臨時 Default的按鈕。如果使用者在按下Enter鍵前選擇了另一個按鈕,則執行所選按鈕的OnClick事件處理程式。
True:使用者按下Enter鍵時TButton元件的OnClick事件被觸發。
False:使用者按下Enter鍵時TButton元件的OnClick事件不被觸發。
應用
在開發程式時,如果需要在其他非按鈕元件獲得焦點時,按Enter鍵響應按鈕的OnClick事件,可以設定按鈕的Default屬性為True。
constructor TMyHandler.Create(AOwner: TComponent);
begin
FThis :=TBaseForm(AOwner);
FThis.Button1.Default := True;
FThis.Edit1.SetFocus;
end;
{方法實現 MODULE-REAL}
procedure TMyHandler.BUTTON1CLICK;
begin
ShowMessage('按鈕已被按下');
end;
2
3
4
5
6
7
8
9
10
11
12
# 6.1.3. Caption 屬性
property Caption: TCaption;
Caption屬性用於設定按鈕的標題。 如果需要在程式中動態地設定按鈕標題,可以修改Caption屬性,程式碼如下:
FThis.Button1.Caption := '確定';
# 6.1.4. Wordwrap 屬性
property Wordwrap: Boolean;
Wordwrap屬性用於標識按鈕文字是否自動換行以適應按鈕的寬度。
- True:標籤中的文字長度,超出按鈕長度時自動換行。
- False:標籤中的文字長度,超出按鈕長度時不自動換行。
# 6.2. 事件
- TButton主要事件
事 件 | 描 述 |
---|---|
OnClick | 當用戶用滑鼠單擊按鈕時觸發OnClick事件 |
# 6.2.1. OnClick 事件
property OnClick: TNotifyEvent;
當用戶用滑鼠單擊按鈕時觸發OnClick事件。
# 7. TCheckBox元件
TCheckBox元件為使用者提供了一個選項。使用者可以選中該框以選擇該選項,或取消選中該選項以取消選擇該選項。
# 7.1. 屬性
- TCheckBox元件主要屬性
屬性 | 功能說明 |
---|---|
Action | 指定與元件關聯的操作 |
Align | 確定元件在其父元件區內的對齊方式 |
Alignment | 確定覈取方塊標籤是否與覈取方塊的左側或右側對齊 |
AllowGrayed | 確定覈取方塊是否可以處於「灰色」狀態 |
Anchors | 指定元件如何停放在父窗體中 |
BiDiMode | 為元件指定雙向模式,控制文字的順序,垂直滾動條的位置以及是否改變對齊方式 |
Caption | 指定標識使用者元件的文字字串 |
Checked | 指定是否選中按鈕元件 |
Color | 指定元件的背景顏色 |
Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大或最小值時,重新調整元件的大小不能超出該限制 |
Ctl3D | 確定元件是否具有三維(3-D)或二維外觀 |
DoubleBuffered | 確定元件的影象是直接渲染到視窗還是首先繪製到記憶體中的點陣圖 |
DragCursor | 目前元件受拖動時游標的形狀 |
DragKind | 獲取或設定元件是拖動操作還是拖動/停靠操作 |
DragMode | 確定元件如何啟動拖放操作或拖掛操作 |
Enabled | 控制組件是否響應滑鼠,鍵盤和計時器事件 |
Font | 確定元件內顯示的文字字型 |
ParentBiDiMode | 獲得或設定元件是否使用其父元件的BiDiMode屬性 |
ParentColor | 元件要使用與其父元件相同的顏色 |
ParentCtl3D | 確定元件是否使用父元件的Ctl3D屬性 |
ParentDoubleBuffered | 獲得或設定元件是否使用父元件的DoubleBuffered屬性 |
ParentFont | 確定元件是否使用父元件的Font |
ParentShowHint | 確保窗體中的所有元件以統一格式顯示幫助提示 |
PopupMenu | 在元件上單擊游標右鍵時出現的彈出式功能表 |
ShowHint | 確定當滑鼠指針暫時停留在元件上時元件是否顯示「幫助提示」 |
State | 指示是選中,取消選中還是灰顯覈取方塊 |
TabOrder | 確定父元件的切換順序 |
TabStop | 確定使用者是否可以通過Tab按鍵選擇元件 |
Visible | 確定元件是否可見 |
WordWrap | 指定按鈕文字是否換行以適合元件的寬度 |
# 7.1.1. Alignment 屬性
property Alignment: TLeftRight;
該屬性用於控制覈取方塊標題的位罝,設罝為taRightlustify時,標題顯示在覈取方塊右邊;設定為taLeftJustify時,顯示在左邊。
- 應用
begin
This.CheckBox1.Alignment := taRightJustify;
This.CheckBox1.Alignment := taLeftJustify;
end.
2
3
4
# 7.1.2. AllowGrayed 屬性
property AllowGrayed: Boolean;
該屬性用於確定覈取方塊是否處於灰色狀態,設定為True時,覈取方塊有3種可能的狀態,即checked、unchecked和grayed;否則只有兩種可能的狀態:checked 和 unchecked。
# 7.1.3. Checked 屬性
property Checked: Boolean;
當覈取方塊是選中狀態時,該屬性值為True;當覈取方塊是未選中或灰色狀態時,為False。
- 應用
在窗體中新增TMemo元件。如果選項被選中,則新增選項資訊到TMemo元件中。
procedure TMyHandler.BUTTON1CLICK;
//點選后,提交checkbox中的內容屬性
var
Str : String;
begin
if FThis.CheckBox1.Checked = True then
Str := FThis.CheckBox1.Caption;
if FThis.CheckBox2.Checked = True then
Str := Str + ' ' + FThis.CheckBox2.Caption;
if FThis.CheckBox3.Checked = True then
Str := Str + ' ' + FThis.CheckBox3.Caption;
if FThis.CheckBox4.Checked = True then
Str := Str + ' ' + FThis.CheckBox4.Caption;
FThis.Memo1.Lines.Clear;
FThis.Memo1.Lines.Insert(0, '已選中的選項:');
FThis.Memo1.Lines.Insert(1, Str + ' ');
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 7.1.4. State 屬性
property State: TCheckBoxState;
該屬性指定覈取方塊是選中、未選中或變灰狀態。
cbUnchecked:覈取方塊沒有複選標記,表示使用者未選中該選項。
cbChecked:覈取方塊有複選標記,表示使用者已選中該選項。
cbGrayed:覈取方塊有複選標記,但為變灰狀態。
應用
設定窗體中的TCheckBox元件的AllowGrayed屬性為True,用State屬性判斷該元件的狀態。
constructor TMyHandler.Create(AOwner: TComponent);
begin
FThis :=TBaseForm(AOwner);
FThis.CheckBox1.AllowGrayed := True;
end;
procedure TMyHandler.BUTTON1CLICK;
//設定窗體中的TCheckBox元件的AllowGrayed屬性為True,用State屬性判斷該元件的狀態,
var
cou: Integer;
begin
FThis.Memo1.Lines.Clear;
for cou := 0 to FThis.GroupBox1.ControlCount - 1 do
begin
if TCheckBox(FThis.GroupBox1.Controls[cou]).State = cbUnchecked then
FThis.Memo1.Lines.Add(TCheckBox(FThis.GroupBox1.Controls[cou]).Caption + ':沒有選中');
if TCheckBox(FThis.GroupBox1.Controls[cou]).State = cbchecked then
FThis.Memo1.Lines.Add(TCheckBox(FThis.GroupBox1.Controls[cou]).Caption + ':選中');
if TCheckBox(FThis.GroupBox1.Controls[cou]).State = cbGrayed then
FThis.Memo1.Lines.Add(TCheckBox(FThis.GroupBox1.Controls[cou]).Caption + ':變為灰色');
end;
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 8. TRadioButton元件
TRadioButton元件封裝了 Windows選項按鈕,有時也稱為單選按鈕。選項按鈕在Windows中很常見,顯示為一個帶文字標題的圓形外框圖。一組選項按鈕中的選項是相互排斥的,同一 時刻只能有一個單選按鈕被選中。 預設情況下,直接包含在同一視窗元件容器中的所有單選按鈕(如TRadioGroup或TPanel)都會進行分組。例如,窗體上的兩個單選按鈕只有在包含在單獨的容器(例如兩個不同的組框)中時才能同時檢查。
# 8.1. 屬性
- TRadioButton元件主要屬性
屬性 | 功能說明 |
---|---|
Action | 指定與元件關聯的操作 |
Align | 確定元件在其父元件區內的對齊方式 |
Alignment | 確定標題相對於單選按鈕的位置 |
Anchors | 指定元件如何停放在父窗體中 |
BiDiMode | 為元件指定雙向模式,控制文字的順序,垂直滾動條的位置以及是否改變對齊方式 |
Caption | 指定標識使用者元件的文字字串 |
Checked | 確定是否選中了單選按鈕所代表的選項 |
Color | 指定元件的背景顏色 |
Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大或最小值時,重新調整元件的大小不能超出該限制 |
Ctl3D | 確定元件是否具有三維(3-D)或二維外觀 |
DoubleBuffered | 確定元件的影象是直接渲染到視窗還是首先繪製到記憶體中的點陣圖 |
DragCursor | 目前元件受拖動時游標的形狀 |
DragKind | 獲取或設定元件是拖動操作還是拖動/停靠操作 |
DragMode | 確定元件如何啟動拖放操作或拖掛操作 |
Enabled | 控制組件是否響應滑鼠,鍵盤和計時器事件 |
Font | 確定元件內顯示的文字字型 |
ParentBiDiMode | 獲得或設定元件是否使用其父元件的BiDiMode屬性 |
ParentColor | 元件要使用與其父元件相同的顏色 |
ParentCtl3D | 確定元件是否使用父元件的Ctl3D屬性 |
ParentDoubleBuffered | 獲得或設定元件是否使用父元件的DoubleBuffered屬性 |
ParentFont | 確定元件是否使用父元件的Font |
ParentShowHint | 確保窗體中的所有元件以統一格式顯示幫助提示 |
PopupMenu | 在元件上單擊游標右鍵時出現的彈出式功能表 |
ShowHint | 確定當滑鼠指針暫時停留在元件上時元件是否顯示「幫助提示」 |
TabOrder | 確定父元件的切換順序 |
TabStop | 確定使用者是否可以通過Tab按鍵選擇元件 |
Visible | 確定元件是否可見 |
WordWrap | 指定按鈕文字是否換行以適合元件的寬度 |
# 8.1.1. Alignment 屬性
property Alignment: TLeftRight;
該屬性用於確定相對於單選按鈕的標題位置:取值為TaLeftJustify時,顯示在單選按鈕的左邊;取值為TaRightlustify時,顯示在單選按鈕的右邊。不要將Alignment屬性和單選按鈕文字區的標題對齊相混淆。標題總是左對齊的。 該屬性只控制文字區出現在元件的一邊。 Alignment屬性的可選值如下。
- taLeftJustify:標題顯示在圓形按鈕的左側。
- taRightJustify:標題顯示在圓形按鈕的右側。
# 8.1.2. Checked 屬性
property Checked: Boolean;
該屬性用於確定單選按鈕足否被選中,若設定為True,則選中,並取消同一容器中其他所有單選按鈕的選擇;否則取消選擇。
- True:可選擇該元件,並使同組的其他元件恢復未選狀態。
- False:該元件不是選中狀態。
# 8.2. 方法
- TRadioButton元件主要方法列表
方法 | 功能描述 |
---|---|
GetControlsAlignment | 返回元件中任何文字的對齊方式 |
# 9. TListBox元件
使用TListBox顯示使用者可選擇、新增或刪除的專案的可滾動列表。TListBox是Windows列表框元件的包裝器。對於專門的列表框,使用TCustomListBox的其他子類或從TCustomListBox派生自己的類。 TListBox實現了TCustomListBox中引入的泛型行為。TListBox發佈了許多從TCustomListBox繼承的屬性,但沒有引入任何新行為。
# 9.1. 屬性
- TListBox元件主要屬性
屬性 | 功能說明 |
---|---|
Align | 確定元件在其父元件區內的對齊方式 |
Anchors | 指定元件如何停放在父窗體中 |
AutoComplete | 確定使用者是否可以通過在列表中鍵入來聚焦專案 |
AutoCompleteDelay | 指定按鍵和嘗試自動填充欄位之間的延遲 |
BevelEdges | 使用該屬性可獲得或設定元件成斜角的邊緣 |
BevelInner | 使用該屬性可指定內斜角是否具有凸、凹或平坦的外觀 |
BevelKind | 使用該屬性可修改斜角的風格,即斜角的傾斜程度 |
BevelOuter | 使用該屬性可指定外斜角是否具有凸、凹或平坦的外觀,外斜角直接顯示在邊框內和內斜角的外面 |
BevelWidth | 使用該屬性可指定內外斜角的畫素寬度 |
BiDiMode | 為元件指定雙向模式,控制文字的順序,垂直滾動條的位置以及是否改變對齊方式 |
BorderStyle | 確定列表框是否具有邊框 |
Color | 指定元件的背景顏色 |
Columns | 指定多列列表框中的列數,無需滾動即可顯示 |
Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大或最小值時,重新調整元件的大小不能超出該限制 |
Ctl3D | 確定元件是否具有三維(3-D)或二維外觀 |
DoubleBuffered | 確定元件的影象是直接渲染到視窗還是首先繪製到記憶體中的點陣圖 |
DragCursor | 目前元件受拖動時游標的形狀 |
DragKind | 獲取或設定元件是拖動操作還是拖動/停靠操作 |
DragMode | 確定元件如何啟動拖放操作或拖掛操作 |
Enabled | 控制組件是否響應滑鼠,鍵盤和計時器事件 |
ExtendedSelect | 使用Shift和CTRL鍵使列表項多選操作 |
Font | 確定元件內顯示的文字字型 |
ImeMode | 設定該屬性可配置IME處理使用者按鍵的方法。對於亞洲語言字元,IME為前端輸入處理器 |
ImeName | 設定該屬性可配置IME名稱 |
IntegralHeight | 確定列表框是否顯示部分專案 |
ItemHeight | 指定所有者-繪製列表框中專案的高度(以畫素為單位) |
Items | 包含列表框中顯示的字串 |
MultiSelect | 指定使用者是否可以選擇多個專案 |
ParentBiDiMode | 獲得或設定元件是否使用其父元件的BiDiMode屬性 |
ParentColor | 元件要使用與其父元件相同的顏色 |
ParentCtl3D | 確定元件是否使用父元件的Ctl3D屬性 |
ParentDoubleBuffered | 獲得或設定元件是否使用父元件的DoubleBuffered屬性 |
ParentFont | 確定元件是否使用父元件的Font |
ParentShowHint | 確保窗體中的所有元件以統一格式顯示幫助提示 |
PopupMenu | 在元件上單擊游標右鍵時出現的彈出式功能表 |
ScrollWidth | 指定列表框可以水平滾動的寬度(以畫素為單位) |
ShowHint | 確定當滑鼠指針暫時停留在元件上時元件是否顯示「幫助提示」 |
Sorted | 指定列表框中的專案是否按字母順序排列 |
Style | 確定列表框是標準框還是所有者繪圖以及它是否為虛擬列表框 |
TabOrder | 確定父元件的切換順序 |
TabStop | 確定使用者是否可以通過Tab按鍵選擇元件 |
TabWidth | 指定列表框中選項卡的大小 |
Visible | 確定元件是否可見 |
# 9.1.1. AutoComplete 屬性
properly AutoComplete: Boolean;
該屬性用於設定是否自動將焦點移動到使用者鍵盤輸入的選項上。
- 應用
輸入字元時,可以快速定位選項在ListBox中的位置。
begin
This.ListBox1.Items.Add('China');
This.ListBox1.Items.Add('American');
This.ListBox1.Items.Add('Japan');
This.ListBox1.Items.Add('England');
This.ListBox1.Items.Add('Gemany');
This.ListBox1.Items.Add('Chile');
This.ListBox1.AutoComplete := True;
end.
2
3
4
5
6
7
8
9
# 9.1.2. BorderStyle 屬性
property BorderStyle: TBorderStyle;
該屬性用於設定TListBox元件是否具有邊框。 取值:bsNone, bsSingle。
# 9.1.3. Columns 屬性
property Columns: Integer;
該屬性用於指定TListBox的可見列數。
- 應用
設定Columns屬效能夠改變TListBox的可見列數。
begin
This.ListBox1.Items.Add('China');
This.ListBox1.Items.Add('American');
This.ListBox1.Items.Add('Japan');
This.ListBox1.Items.Add('England');
This.ListBox1.Items.Add('Gemany');
This.ListBox1.Items.Add('Chile');
This.ListBox1.Columns := 0;
This.ListBox2.Items.Add('China');
This.ListBox2.Items.Add('American');
This.ListBox2.Items.Add('Japan');
This.ListBox2.Items.Add('England');
This.ListBox2.Items.Add('Gemany');
This.ListBox2.Items.Add('Chile');
This.ListBox2.Columns := 1;
This.ListBox3.Items.Add('China');
This.ListBox3.Items.Add('American');
This.ListBox3.Items.Add('Japan');
This.ListBox3.Items.Add('England');
This.ListBox3.Items.Add('Gemany');
This.ListBox3.Items.Add('Chile');
This.ListBox3.Columns := 2;
end.
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 9.1.4. Count 屬性
property Count: Integer;
該屬性用於獲得TListBox元件中的選項數。
- 應用
在程式中可以通過Count統計選項個數,向窗體中新增一個TLabel元件,設定該元件的Caption屬性為「列表中共有%d個選項。」。
begin
This.Label1.Caption := '列表中共有%d個選項';
This.ListBox1.Items.Add('China');
This.ListBox1.Items.Add('American');
This.ListBox1.Items.Add('Japan');
This.ListBox1.Items.Add('England');
This.ListBox1.Items.Add('Gemany');
This.ListBox1.Items.Add('Chile');
This.Label1.Caption := Format(This.Label1.Caption,[This.ListBox1.Count]);
end.
2
3
4
5
6
7
8
9
10
# 9.1.5. ExtendedSelect 屬性
property ExtendedSelect: Boolean;
該屬性用於決定是否可在TListBox中選取一個範圍內的選項。
- 應用
當MultiSelect為True時該屬性才發揮作用,能夠選取連續的幾個選項。
begin
This.ListBox1.MultiSelect := True;
This.ListBox1.Items.Add('China');
This.ListBox1.Items.Add('American');
This.ListBox1.Items.Add('Japan');
This.ListBox1.Items.Add('England');
This.ListBox1.Items.Add('Gemany');
This.ListBox1.Items.Add('Chile');
end.
2
3
4
5
6
7
8
9
# 9.1.6. IntegralHeight 屬性
property IntegralHeight: Boolean;
該屬性用於設定TListBox是否部分顯示那些顯示不全的選項。
# 9.1.7. ItemHeight 屬性
property ItemHeight: Integer;
該屬性用於設定TListBox中的選項高度。
# 9.1.8. Itemlndex 屬性
property Itemlndex: Integer;
該屬性用於指定和獲取在目前列表中選擇的選項。
- 應用
通過Itemlndex屬效能夠得到目前所選擇的選項。
constructor TMyHandler.Create(AOwner: TComponent);
begin
FThis :=TBaseForm(AOwner);
FThis.ListBox1.Items.Add('China');
FThis.ListBox1.Items.Add('American');
FThis.ListBox1.Items.Add('Japan');
FThis.ListBox1.Items.Add('England');
FThis.ListBox1.Items.Add('Gemany');
end;
procedure TMyHandler.LISTBOX1CLICK;
//點選以顯示目前選擇的選項
begin
FThis.Label1.Caption := Format('目前選項: %s',
[FThis.ListBox1.Items.Strings[FThis.ListBox1.ItemIndex]]);
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 9.1.9. Items 屬性
property Items: TStrings;
該屬性用於指定TListBox中包含的所有選項。
- 應用
通過Items屬效能夠對TListBox中的每個選項進行操作
constructor TMyHandler.Create(AOwner: TComponent);
begin
FThis :=TBaseForm(AOwner);
FThis.ListBox1.Items.Add('China');
FThis.ListBox1.Items.Add('American');
FThis.ListBox1.Items.Add('Japan');
FThis.ListBox1.Items.Add('England');
FThis.ListBox1.Items.Add('Gemany');
end;
{方法實現 MODULE-REAL}
procedure TMyHandler.BUTTON1CLICK;
//新增Edit1中的內容至ListBox
begin
if FThis.Edit1.Text <> '' then
begin
FThis.ListBox1.Items.Add(FThis.Edit1.Text);
end;
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 9.1.10. MultiSelect 屬性
property MultiSelect: Boolean;
該屬性用於決定是否使用一次選擇多項的功能。示例詳見ExtendedSelect 屬性
# 9.1.11. ScrollWidth 屬性
property ScrollWidth: Integer;
該屬性用於指定列表框的寬度,當該屬性的值大於列表框寬度時將顯示水平滾動條,否則隱藏滾動條。
# 9.1.12. SelCount 屬性
property SelCount: Integer;
該屬性返回目前選中的選項總數量。
- 應用
通過該屬效能夠返回選中選項的總數量。
constructor TMyHandler.Create(AOwner: TComponent);
begin
FThis :=TBaseForm(AOwner);
FThis.ListBox1.MultiSelect := True;
FThis.ListBox1.Items.Add('China');
FThis.ListBox1.Items.Add('American');
FThis.ListBox1.Items.Add('Japan');
FThis.ListBox1.Items.Add('England');
FThis.ListBox1.Items.Add('Gemany');
FThis.ListBox1.Items.Add('Chile');
end;
procedure TMyHandler.LISTBOX1CLICK;
begin
FThis.Label1.Caption := Format('總共選擇了%d個選項!',[FThis.ListBox1.SelCount]);
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 9.1.13. Selected 屬性
property Selected[Index: Integer]: Boolean;
該屬性返回指定選項是否被選中。Index:索引號,該索引號為選項的編號。
# 9.1.14. Sorted 屬性
property Sorted: Boolean;
該屬性用於設定TListBox中的選項是否按字母順序排列。
# 9.1.15. Style 屬性
property Style: TListBoxStyle;
type TListBoxStyle = (lbStandard, IbOwnerDrawFixed, lbOwnerDraw Variable, lbVirtual, lbVirtualOwnerDraw);
2
該屬性用於確定TListBox元件的風格。
- lbStandard:所有的選項都是字串,並且高度相同。
- IbOwnerDrawFixed:列表中每一項的高度由ItemHeight屬性抱定,且與每一項重繪時都會觸發 OnDrawItem事件來繪製選項。
- IbOwnerDrawVariable:列表框中每一項的高度是可變的,並且與IbOwnerDrawFixed一樣會觸發OnDrawItem事件,但是選擇該選項還會觸發OnMeasureltem事件來設定每一項的高度。
- lbVirtual:列表是一個虛表,必須為列表指出選項的數量,必須為列表實現OnData、OnDataFind、 OnDataObject 事件。
- lbVirtualOwnerDraw:列表是一個虛表而且能夠自繪,必須為列表指出選項的數量,必須為列表實現 OnDrawItem 、OnData OnDataFind、OnDataObject事件。
# 9.1.16. TabWidth 屬性
property TabWidth: Integer;
該屬性用於設罝Tab製表符的寬度。
# 9.1.17. Toplndex 屬性
property Toplndex: Integer;
該屬性用於設定目前所能看到的選項中在最頂端的選項的索引編號。
# 9.2. 事件
- TListBox主要事件
事 件 | 描 述 |
---|---|
OnContextPopup | 當右擊該元件時觸發該事件 |
OnData | 當virtual型別的TListBox需要補充選項中的文字時觸發該事件 |
# 9.2.1. OnData 事件
property OnData: TLBGetDataEvent;
type
TLBGetDataEvent = procedure(Control: TWinControI; Index: Integer; var Data: String) of object;
2
3
OnData事件使得TListBox能夠動態地載入數據項,在程式中能夠動態地為TListBox元件新增和修改數據項,或者為數據項賦值。這種機制大大增加了 TListBox使用的靈活性,應用程式碼如下:
type
TMyHandler = class(TForm)
var
MyItem : Array [0..9] of String;
private
FThis:TBaseForm;
Public
constructor Create(AOwner: TComponent); override;
{模組聲明 MODULE-DECLARE}
procedure ListBox1Data(Control: TWinControl; Index: Integer; var Data: string);
end;
constructor TMyHandler.Create(AOwner: TComponent);
begin
FThis :=TBaseForm(AOwner);
FThis.ListBox1.Style := lbVirtual;
MyItem[0] := '張三';
MyItem[1] := '李四';
MyItem[2] := '王五';
MyItem[3] := '趙六';
FThis.ListBox1.Count := 4;
end;
{方法實現 MODULE-REAL}
procedure TMyHandler.ListBox1Data;
begin
Data := MyItem[index];
end;
var
FMyHandler:TMyHandler;
begin
FMyHandler := TMyHandler.Create(this);
{事件繫結 MODULE-BIND}
this.ListBox1.OnData := FMyHandler.ListBox1Data;
end.
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 9.3. 方法
- TListBox主要方法
方 法 | 描 述 |
---|---|
AddItem | 向TListBox中新增一個選項 |
Clear | 清空列表中的所有選項 |
ClearSelection | 取消所有已經選擇的選項 |
ItemAtPos | 返回指定座標點上的選項索引 |
DeleteSelected | 刪除所選擇的選項 |
SelectAll | 選擇TListBox中的所有選項 |
MoveSelection | 將所有選擇的選項移動到另一個TListBox元件中 |
# 9.3.1. AddItem 方法
procedure AddItem(Item: String; AObject: TObject);
該方法用於向TListBox中新增一個選項。其中Item
為顯示字串的選項,AObject
為關聯的對象選項。
向TListBox中新增一項,例如新增一個Modbus設備,示例程式碼如下:
FThis.ListBox1.AddItem('Modbus Device 1',FThis.ModbusRTUReadChannel1.ModbusList[0]);
# 9.3.2. Clear 方法
procedure Clear;
該方法用於清空列表中的所有選項。
# 9.3.3. ClearSelection 方法
procedure ClearSelection;
取消所有已經選擇的選項。在TListBox允許多選(MultiSelect
為True
)的情況下,如果想要取消所選擇的選項,則可以呼叫ClearSelection 方法,示例如下:
procedure TMyHandler.Button1Click;
begin
FThis.ListBox1.ClearSelection;
end;
2
3
4
# 9.3.4. ItemAtPos 方法
function ItemAtPos(Pos: TPoint; Existing: Boolean): Integer;
該方法用於返回指定座標點上的選項索引。
- Pos: 座標點。
- Existing: 是否返回現有選項,如果Existing為True,則當座標點沒有選項時返回-1;如果 Existing為False,則當座標點沒有選項時返回最後一個選項的索引。
- 返回值: 返回一個表示目前座標所在項的索引的整型值。
在程式運行時,可以通過滑鼠移動訊息處理函式來獲得目前滑鼠所在的選項,程式碼如下:
{模組聲明 MODULE-DECLARE}
procedure ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X: Integer; Y: Integer);
...
procedure TMyHandler.ListBox1MouseMove;
var
s: TPoint;
i: Integer;
begin
s.X := x;
s.Y := y;
i := FThis.ListBox1.ItemAtPos(s, True);
FThis.Label1.Caption := '滑鼠指向:' + FThis.ListBox1.Items.Strings[i];
end;
...
{事件繫結 MODULE-BIND}
this.ListBox1.OnMouseMove := FMyHandler.ListBox1MouseMove;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 9.3.5. DeleteSelected 方法
procedure DeleteSelected; override;
該方法用於刪除所選擇的選項。在程式運行時如果想刪除某些選項的話就要用到該方法,在TListBox中選擇選項,然後呼叫DeleteSelected方法就能夠將選中的選項刪除。該方法在Style為lbStandard時能夠刪除列表中的選項,如果在Style為其他值時必須提供其他操作。
FThis.ListBox1.DeleteSelected;
# 9.3.6. SelectAll 方法
procedure SelectAll;override;
該方法用於選擇TListBox中的所有選項。
# 9.3.7. MoveSelection 方法
procedure MoveSelection(Destination: TCustomListControl); virtual;
該方法將所有選擇的選項移動到另一個TListBox元件中。
- Destination: 移動目標,可以是任何TCustomListControl繼承下來的元件。
在兩個TListBox中移動選項,使用MoveSelection方法是最方便的,程式碼如下:
FThis.ListBox1.MoveSelection(FThis.ListBox2);
# 10. TComboBox 元件
TComboBox元件是一個編輯框,其上附有可滾動的下拉選單。使用者可以從列表中選擇專案或直接在編輯框中輸入。 注意:TComboBox中按鈕的寬度等於Windows用於滾動條的寬度。此寬度取決於使用者選擇的顏色方案(通過右鍵單擊桌面,選擇「屬性」,然後選擇「外觀」)。在WindowsXP上,使用者可以通過單擊「高級」按鈕並選擇滾動條作為專案來專門更改滾動條的寬度。如果仔細調整組合框的大小以使所有文字都可見,則以不同顏色方案運行的使用者可能會發現文字被按鈕遮擋。一種解決方案是在開發應用程式時將滾動條設定為寬。大多數配色方案使用最多21畫素寬的滾動條。
# 10.1. 屬性
- TComboBox元件主要屬性
屬性 | 功能說明 |
---|---|
Align | 確定元件在其父元件區內的對齊方式 |
Anchors | 指定元件如何停放在父窗體中 |
AutoCloseUp | 指定當使用者選擇專案時,下拉選單是否自動關閉 |
AutoComplete | 鍵入時匹配列表項的位置 |
AutoCompleteDelay | 指定按鍵和嘗試自動填充欄位之間的延遲 |
AutoDropDown | 指定下拉選單是否會自動降低以響應使用者擊鍵 |
BevelEdges | 使用該屬性可獲得或設定元件成斜角的邊緣 |
BevelInner | 使用該屬性可指定內斜角是否具有凸、凹或平坦的外觀 |
BevelKind | 使用該屬性可修改斜角的風格,即斜角的傾斜程度 |
BevelOuter | 使用該屬性可指定外斜角是否具有凸、凹或平坦的外觀,外斜角直接顯示在邊框內和內斜角的外面 |
BiDiMode | 為元件指定雙向模式,控制文字的順序,垂直滾動條的位置以及是否改變對齊方式 |
CharCase | 確定組合框中文字的大小寫 |
Color | 指定元件的背景顏色 |
Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大或最小值時,重新調整元件的大小不能超出該限制 |
Ctl3D | 確定元件是否具有三維(3-D)或二維外觀 |
DoubleBuffered | 確定元件的影象是直接渲染到視窗還是首先繪製到記憶體中的點陣圖 |
DragCursor | 目前元件受拖動時游標的形狀 |
DragKind | 獲取或設定元件是拖動操作還是拖動/停靠操作 |
DragMode | 控制使用者何時可拖動元件 |
DropDownCount | 指定下拉選單中顯示的最大專案數 |
Enabled | 控制組件是否響應滑鼠,鍵盤和計時器事件 |
Font | 確定元件內顯示的文字字型 |
ImeMode | 設定該屬性可配置IME處理使用者按鍵的方法。對於亞洲語言字元,IME為前端輸入處理器 |
ImeName | 設定該屬性可配置IME名稱 |
ItemHeight | 指定下拉選單中專案的高度(以畫素為單位) |
ItemIndex | 指定所選項的索引 |
Items | 提供對組合框列表部分中專案(字串)列表的訪問 |
MaxLength | 指定使用者可以在組合框的編輯部分中鍵入的最大字元數 |
ParentBiDiMode | 獲得或設定元件是否使用其父元件的BiDiMode屬性 |
ParentColor | 元件要使用與其父元件相同的顏色 |
ParentCtl3D | 確定元件是否使用父元件的Ctl3D屬性 |
ParentDoubleBuffered | 獲得或設定元件是否使用父元件的DoubleBuffered屬性 |
ParentFont | 確定元件是否使用父元件的Font |
ParentShowHint | 確保窗體中的所有元件以統一格式顯示幫助提示 |
PopupMenu | 在元件上單擊游標右鍵時出現的彈出式功能表 |
ShowHint | 確定當滑鼠指針暫時停留在元件上時元件是否顯示「幫助提示」 |
Sorted | 確定組合框的列表部分是否按字母順序排列 |
Style | 確定組合框的顯示樣式 |
TabOrder | 確定父元件的切換順序 |
TabStop | 使用該屬性可允許或不允許用Tab訪問元件 |
Text | 包含與元件關聯的文字字串 |
TextHint | 指定在組合框元件的編輯框中顯示為文字水印的文字 |
Visible | 確定元件是否可見 |
# 10.1.1. AutoCloseUp 屬性
property AutoCloseUp: Boolean;
確定當用戶選擇一個選項后是否自動關閉下拉選單。當TComboBox元件的AutoCloseUp屬性設定為False時,使用者輸入一個列表中己有的選項TComboBox元件不會自動關閉。當TComboBox元件的AutoCloseUp屬性設定為True時,使用者輸入一個列表中已有的選項后,TComboBox元件會自動關閉。
注意: 當AutoComplete屬性為True時,在TComboBox元件的文字框輸入字元時,下拉選單中將顯示與之匹配的內容。
# 10.1.2. AutoComplete 屬性
property AutoComplete: Boolean;
該屬性用於設定TComboBox元件是否提供自動完成文字輸入的功能。AutoComplete屬性為False時,TComboBox不提供自動完成的功能,AutoComplete屬性為True時,TComboBox提供自動完成的功能。
# 10.1.3. AutoDropDown 屬性
property AutoDropDown: Boolean;
該屬性決定TComboBox元件是否在使用者敲擊鍵盤時自動拉開。
# 10.1.4. CharCase 屬性
property CharCase: TEditCharCase;
type TEditCharCase = (ecNormal, ecUpperCase, ecLowerCase);
2
該屬性確定在TComboBox中輸入字母的格式。
取 值 | 作 用 |
---|---|
ecLowerCase | 全部小寫 |
ecNonnal | 正常 |
ecUpperCase | 全部大寫 |
# 10.1.5. SelText 屬性
property SelText: string;
SelText能夠返回TComboBox中使用者選擇的文字,示例程式碼如下:
procedure TMyHandler.ComboBox1KeyUp;
begin
FThis.Edit1.Text := FThis.ComboBox1.SelText;
end;
2
3
4
該屬性只當TComboBox元件獲得焦點時才能夠獲得所選中的文字,否則返回空字串。
# 10.1.6. Sorted 屬性
property Sorted: Boolean;
該屬性用於決定列表是否按字母順序排列。將該屬性設定為True后能夠使列表中的選項重新按照字母順序排列。
# 10.1.7. Style 屬性
property Style: TComboBoxStyle;
type TComboBoxStyle = (csDropDown, csSimple, csDropDownList, csOwnerDrawFixed, csOwnerDraw Variable);
2
取 值 | 作 用 |
---|---|
csDropDown | 建立一個下拉選單框和一個編輯框,所有的選項字串都是同樣的高度 |
csSimple | 建立一個編輯框和一個固定的列表 |
csDropDownList | 建立一個沒有編輯框的下拉選單,使用者不能手動輸入文字,所有選項都是同等高度的字串 |
csOwnerDrawFixed | 建立一個沒有編輯框的自繪下拉選單,每個選項的高度由ItemHeight屬性指定 |
csOwnerDrawVariable | 建立一個沒有編輯框的自繪下拉選單,列表中的選項高度可變 |
# 10.1.8. DropDownCount 屬性
property DropDownCount: Integer;
該屬性用於指定下拉選單最多顯示的選項數。DropDownCount屬性指定了下拉選單彈出顯示的選項列數,如果選項的數量多於DropDownCount屬性值時,列表的右邊會出現一個滾動條。
# 10.1.9. DroppedDown 屬性
property DroppedDown: Boolean;
該屬性用於確定目前下拉選單是否己經打開並正在顯示,如果為True則表示已經打開,通常作為一個返回值使用。
# 10.1.10. Itemlndex 屬性
property Itemlndex: Integer;
Itemlndex返回的是使用者選擇的選項的索引值,通過該值能夠返回使用者所選擇的選項。
# 10.1.11. Items 屬性
property Items: TStrings;
利用該屬效能夠對TComboBox中的列表進行訪問。
# 10.1.12. MaxLength 屬性
property MaxLength: Integer;
該屬性用於設定使用者最多能夠在編輯框中輸入的字元數。
# 10.1.13. SelLength 屬性
property SelLength: Integer;
該屬性用於獲得使用者在TComboBox的編輯框中選擇的文字長度。
# 10.2. 事件
事 件 | 描 述 |
---|---|
OnChange | 當用戶修改TComboBox編輯框中的文字時觸發該事件 |
OnCloseUp | TComboBox元件的下拉選單關閉時觸發該件 |
OnContextPopup | 當用戶右擊元件或用其他方式(鍵盤)呼叫彈出功能表時觸發該事件 |
OnDropDown | TComboBox元件的下拉選單彈出時觸發該事件 |
OnExit | 輸入焦點從元件移至另一元件時產生該事件 |
OnMeasureltem | 與csOwnerDrawVariable炎型的TComboBox元件中的選項需要重 新顯示時觸發該事件 |
OnSelect | 當用戶在列表中選擇一個字串時觸發該事件 |
OnStartDock | 當用戶開始拖動元件時產生該事件 |
# 10.3. 方法
方 法 | 描 述 |
---|---|
AddItem | 向下拉列表中新增選項 |
Clear | 清除TComboBox列表中的所有選項和編輯框中的義字 |
ClearSelection | 設定Itemlndex屬性為-1 |
CopySelection | 複製己經選擇的選項到另一個組合框中 |
DeleteSelected | 刪除TComboBox中所選擇的選項 |
Focused | 確定TComboBox元件是否獲得焦點 |
MoveSelection | 將所選擇的選項移動到另一個TComboBox中 |
SelectAll | 選擇TComboBox編輯框中的所有文字 |
# 10.3.1. AddItem 方法
procedure Addltem(ltem: String; AObject: TObject);
該方法用於向下拉列表中新增選項。
- Item: 新增項的字串值。
- AObject: 關聯的對象。
向TComboBox中新增一個選項,關聯一個對象,並通過選項能夠讀取和操作對象。本應用是向列表中新增一些單選按鈕,通過選擇列表中的選項就能夠選擇指定的單選按鈕。
FThis.ComboBox1.Clear;
FThis.ComboBox1.AddItem('RadioButton1',FThis.RadioButton1);
FThis.ComboBox1.AddItem('RadioButton2',FThis.RadioButton2);
FThis.ComboBox1.AddItem('RadioButton3',FThis.RadioButton3);
2
3
4
# 10.3.2. Clear 方法
procedure Clear; override;
通過該方法能夠淸除TComboBox列表中的所有選項和編輯框中的文字。
# 10.3.3. ClearSelection 方法
procedure ClearSelection; override
該方法用於設定Itemlndex屬性為-1。清空TComboBox元件編輯框中的文字,並設定Itemlndex屬性為-1,即目前沒有選擇選項。
# 10.3.4. CopySelection 方法
procedure CopySelection (Destination: TCustomListControl); override;
該方法用於將己經選擇的選項複製到另一個框中。
Destination: 複製選項的目標元件,該元件可以是任何Destination繼承而來的類實體。
# 10.3.5. DcleteSelected 方法
procedure DeleteSelected; override
該方法用於刪除在TComboBox中所選擇的選項。在運行程式時,如果想要將TComboBox列表中的選項刪除,可以使用DeleteSelected方法。
# 10.3.6. Focused 方法
function Focused: Boolean; override;
該方法用於確定TComboBox元件是否獲得焦點。
# 10.3.7. MoveSelection 方法
procedure MoveSelection(Destination: TCustomListControl); virtual;
該方法用於將所選擇的選項移動到另一個TComboBox中。
Destination: 移動選項的目標元件,該元件可以是任何Destination繼承而來的類實體。
# 11. TImageComboBox 元件
TImageComboBox元件是一個編輯框,其上附有可滾動的下拉選單。使用者可以從列表中選擇專案。該元件中的選項是從資料庫中進行獲取的,使用者無法自行手動新增。
# 11.1. 屬性
- TImageComboBox元件主要屬性
屬性 | 功能說明 |
---|---|
Enabled | 是否讓該元件響應滑鼠或按鍵操作 |
ItemIndex | 設定預設選擇的選項 |
# 11.2. 方法
# 11.2.1. FillSQL
procedure FillSQL(ASQL:UnicodeString);
該方法可將查詢到的結果回傳至選項中,需要注意回傳的內容格式需包含FID
(主鍵欄位)以及FName
(顯示的選項欄位)。例如下方的例子:
FThis.ImageComboBox1.FillSQL('SELECT FReportID AS FID,FReportName AS FName FROM Dict_Report');
# 12. TScrollBar元件
TScrollBar是一個Windows滾動條,用於滾動視窗,窗體或元件的內容。 使用TScrollBar向窗體新增獨立滾動條。許多元件都具有新增滾動條的屬性,滾動條是元件的一個組成部分(TControlScrollBar對像)。TScrollBar允許在使用者操作TScrollBar對像時滾動沒有整合滾動條或元件分組的元件。 當滾動條的雙向模式改變時,其座標系被反轉。從左到右模式的位置0是左側,從右到左模式的位置0是右側。
# 12.1. 屬性
- TScrollBar元件主要屬性
屬性 | 功能說明 |
---|---|
Align | 確定元件在其父元件區內的對齊方式 |
Anchors | 指定元件如何停放在父窗體中 |
BiDiMode | 為元件指定雙向模式,控制文字的順序,垂直滾動條的位置以及是否改變對齊方式 |
Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大或最小值時,重新調整元件的大小不能超出該限制 |
Ctl3D | 確定元件是否具有三維(3-D)或二維外觀 |
DoubleBuffered | 確定元件的影象是直接渲染到視窗還是首先繪製到記憶體中的點陣圖 |
DragCursor | 目前元件受拖動時游標的形狀 |
DragKind | 獲取或設定元件是拖動操作還是拖動/停靠操作 |
DragMode | 控制使用者何時可拖動元件 |
Enabled | 控制組件是否響應滑鼠,鍵盤和計時器事件 |
Kind | 指定滾動條是水平還是垂直 |
LargeChange | 確定使用者單擊拇指選項卡兩側的滾動條或按PgUp或PgDn時位置的更改量 |
Max | 指定滾動條表示的最大位置 |
Min | 指定滾動條表示的最小位置 |
PageSize | 指定縮圖選項卡的大小 |
ParentBiDiMode | 獲得或設定元件是否使用其父元件的BiDiMode屬性 |
ParentCtl3D | 確定元件是否使用父元件的Ctl3D屬性。 |
ParentDoubleBuffered | 獲得或設定元件是否使用父元件的DoubleBuffered屬性 |
ParentShowHint | 確保窗體中的所有元件以統一格式顯示幫助提示 |
PopupMenu | 在元件上單擊游標右鍵時出現的彈出式功能表 |
Position | 指示滾動條的當前位置 |
ShowHint | 確定當滑鼠指針暫時停留在元件上時元件是否顯示「幫助提示」 |
SmallChange | 確定使用者單擊滾動條上的箭頭按鈕或按下鍵盤上的箭頭鍵時位置的更改量 |
TabOrder | 確定父元件的切換順序 |
TabStop | 使用該屬性可允許或不允許用Tab訪問元件 |
Visible | 確定元件是否可見 |
# 12.2. 事件
- TScrollBar元件主要事件列表
事件 | 何時觸發 |
---|---|
OnScroll | 當用戶使用滑鼠或鍵盤滾動滾動條時,將觸發該事件 |
# 12.3. 方法
- TScrollBar元件主要方法列表
方法 | 功能描述 |
---|---|
SetParams | 一次性設定Position,Max和Min屬性值 |
# 13. TGroupBox 元件
TGroupBox表示Windows組框。 TGroupBox元件表示標準Windows組框,用於對窗體上的相關元件進行分組。當另一個元件元件放置在組框內時,組框將成為該元件的父元件。
# 13.1. 屬性
- TGroupBox元件主要屬性
屬性 | 功能說明 |
---|---|
Align | 確定元件在其父元件區內的對齊方式 |
Anchors | 指定元件如何停放在父窗體中 |
BiDiMode | 為元件指定雙向模式,控制文字的順序,垂直滾動條的位置以及是否改變對齊方式 |
Caption | 指定標識使用者元件的文字字串 |
Color | 指定元件的背景顏色 |
Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大或最小值時,重新調整元件的大小不能超出該限制 |
Ctl3D | 確定元件是否具有三維(3-D)或二維外觀 |
DockSite | 使用該屬性可確定元件是否為拖動和停靠操作目標 |
DoubleBuffered | 確定元件的影象是直接渲染到視窗還是首先繪製到記憶體中的點陣圖 |
DragCursor | 目前元件受拖動時游標的形狀 |
DragKind | 獲取或設定元件是拖動操作還是拖動/停靠操作 |
DragMode | 控制使用者何時可拖動元件 |
Enabled | 控制組件是否響應滑鼠,鍵盤和計時器事件 |
Font | 確定元件內顯示的文字字型 |
Padding | 指定元件的填充 |
ParentBackground | 確定元件是否使用父級的主題背景 |
ParentBiDiMode | 獲得或設定元件是否使用其父元件的BiDiMode屬性 |
ParentColor | 元件要使用與其父元件相同的顏色 |
ParentCtl3D | 確定元件是否使用父元件的Ctl3D屬性 |
ParentDoubleBuffered | 獲得或設定元件是否使用父元件的DoubleBuffered屬性 |
ParentFont | 確定元件是否使用父元件的Font |
ParentShowHint | 確保窗體中的所有元件以統一格式顯示幫助提示 |
PopupMenu | 在元件上單擊游標右鍵時出現的彈出式功能表 |
ShowHint | 確定當滑鼠指針暫時停留在元件上時元件是否顯示「幫助提示」 |
TabOrder | 確定父元件的切換順序 |
TabStop | 使用該屬性可允許或不允許用Tab訪問元件 |
Visible | 確定元件是否可見 |
# 14. TRadioGroup 元件
TRadioGroup代表一組共同作用的單選按鈕。 TRadioGroup對象是一個特殊的組框,僅包含單選按鈕。直接放置在同一控制組件中的單選按鈕被稱為「分組」。當用戶單選按鈕時,其組中的所有其他單選按鈕都將取消選中。因此,只有將窗體放在單獨的容器(例如組框)中時,才能同時檢查窗體上的兩個單選按鈕。 要將單選按鈕新增到TRadioGroup,請編輯對像檢視器中的Items屬性。Items中的每個字串都會在組框中顯示一個單選按鈕,並將字串作為其標題。ItemIndex屬性的值確定目前選擇的單選按鈕。 通過設定「列」屬性,在單列或多列中顯示單選按鈕。 注意: 將組的BiDiMode設定為bdRightToLeft會自動翻轉其單選按鈕。FlipChildren方法無效。
# 14.1. 屬性
- TRadioGroup元件主要屬性
屬性 | 功能說明 |
---|---|
Align | 確定元件在其父元件區內的對齊方式 |
Anchors | 指定元件如何停放在父窗體中 |
BiDiMode | 為元件指定雙向模式,控制文字的順序,垂直滾動條的位置以及是否改變對齊方式 |
Caption | 指定標識使用者元件的文字字元 |
Color | 指定元件的背景顏色 |
Columns | 指定單選按鈕組中的列數 |
Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大或最小值時,重新調整元件的大小不能超出該限制 |
Ctl3D | 確定元件是否具有三維(3-D)或二維外觀 |
DoubleBuffered | 確定元件的影象是直接渲染到視窗還是首先繪製到記憶體中的點陣圖 |
DragCursor | 目前元件受拖動時游標的形狀 |
DragKind | 獲取或設定元件是拖動操作還是拖動/停靠操作 |
DragMode | 控制使用者何時可拖動元件 |
Enabled | 控制組件是否響應滑鼠,鍵盤和計時器事件 |
Font | 確定元件內顯示的文字字型 |
ItemIndex | 指示目前選擇組中的哪個單選按鈕 |
Items | 列出單選按鈕組中的單選按鈕 |
ParentBackground | 確定元件是否使用父級的主題背景 |
ParentBiDiMode | 獲得或設定元件是否使用其父元件的BiDiMode屬性 |
ParentColor | 元件要使用與其父元件相同的顏色 |
ParentCtl3D | 確定元件是否使用父元件的Ctl3D屬性 |
ParentDoubleBuffered | 獲得或設定元件是否使用父元件的DoubleBuffered屬性 |
ParentFont | 確定元件是否使用父元件的Font |
ParentShowHint | 確保窗體中的所有元件以統一格式顯示幫助提示 |
PopupMenu | 在元件上單擊游標右鍵時出現的彈出式功能表 |
ShowHint | 確定當滑鼠指針暫時停留在元件上時元件是否顯示「幫助提示」 |
TabOrder | 確定父元件的切換順序 |
TabStop | 使用該屬性可允許或不允許用Tab訪問元件 |
Visible | 確定元件是否可見 |
WordWrap | 指定單選按鈕的文字是否包裝以適合組的寬度 |
# 15. TPanel 元件
TPanel實現了通用面板元件。 使用TPanel將空面板放在窗體上。面板具有在元件周圍提供斜面邊框的屬性,以及管理嵌入面板中的子元件放置的方法。 您還可以使用面板將元件組合在一起,類似於使用組框的方式,但使用斜面邊框(或無邊框)而不是組框輪廓。面板通常用於單個窗體內的元件組。如果您打算在其他窗體中使用相同的分組,則可能需要使用框架。 在編寫使用拖放的應用程式時,沒有邊框的面板可用作停靠點。
# 15.1. 屬性
- TPanel元件主要屬性
屬性 | 功能說明 |
---|---|
DockManager | 指定元件的停靠管理器界面 |
Align | 確定元件在其父元件區內的對齊方式 |
Alignment | 確定標題在面板中的對齊方式 |
Anchors | 指定元件如何停放在父窗體中 |
AutoSize | 指定元件是否自動調整大小以容納其內容 |
BevelEdges | 使用該屬性可獲得或設定元件成斜角的邊緣 |
BevelInner | 確定面板內斜角的樣式 |
BevelKind | 使用該屬性可修改斜角的風格,即斜角的傾斜程度 |
BevelOuter | 確定面板外斜面的樣式 |
BevelWidth | 確定面板內外斜面的寬度(以畫素為單位) |
BiDiMode | 為元件指定雙向模式,控制文字的順序,垂直滾動條的位置以及是否改變對齊方式 |
BorderStyle | 確定圍繞面板元件周邊繪製的線條樣式 |
BorderWidth | 指定外斜面和內斜面之間的距離(以畫素為單位) |
Caption | 指定標識使用者元件的文字字串 |
Color | 指定元件的背景顏色 |
Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大或最小值時,重新調整元件的大小不能超出該限制 |
Ctl3D | 確定元件是否具有三維(3-D)或二維外觀 |
DockSite | 使用該屬性可確定元件是否為拖動和停靠操作目標 |
DoubleBuffered | 確定元件的影象是直接渲染到視窗還是首先繪製到記憶體中的點陣圖 |
DragCursor | 目前元件受拖動時游標的形狀 |
DragKind | 獲取或設定元件是拖動操作還是拖動/停靠操作 |
DragMode | 控制使用者何時可拖動元件 |
Enabled | 控制組件是否響應滑鼠,鍵盤和計時器事件 |
Font | 確定元件內顯示的文字字型 |
FullRepaint | 確定面板在調整大小時重新繪製自身的方式 |
Locked | 確定用作工具欄的面板是否被OLE伺服器提供的工具欄替換 |
Padding | 指定元件的填充 |
ParentBackground | 確定元件是否使用父級的主題背景 |
ParentBiDiMode | 獲得或設定元件是否使用其父元件的BiDiMode屬性 |
ParentColor | 元件要使用與其父元件相同的顏色 |
ParentCtl3D | 確定元件是否使用父元件的Ctl3D屬性 |
ParentDoubleBuffered | 獲得或設定元件是否使用父元件的DoubleBuffered屬性 |
ParentFont | 確定元件是否使用父元件的Font |
ParentShowHint | 確保窗體中的所有元件以統一格式顯示幫助提示 |
PopupMenu | 在元件上單擊游標右鍵時出現的彈出式功能表 |
ShowCaption | 指定是否顯示面板元件的標題 |
ShowHint | 確定當滑鼠指針暫時停留在元件上時元件是否顯示「幫助提示」 |
TabOrder | 確定父元件的切換順序 |
TabStop | 使用該屬性可允許或不允許用Tab訪問元件 |
UseDockManager | 指定是否在拖放操作中使用停靠管理器 |
VerticalAlignment | 設定標題的垂直位置 |
Visible | 確定元件是否可見 |
# 16. TActionList 元件
TActionList維護元件和元件可以使用的操作列表,例如功能表項和按鈕。 使用操作列表集中響應使用者命令(操作)。操作列表元件維護應用程式中客戶端元件可用的操作列表。從元件面板的標準頁面向窗體或數據模組新增操作列表元件。雙擊操作列表以顯示操作列表編輯器,您可以從中新增,刪除和重新排列操作。 注意:TActionList主要用於管理跨平臺應用程式中的操作。雖然始終可以使用TActionList維護應用程式的操作,但使用操作管理器可能更簡單。
# 16.1. 屬性
- TActionList元件主要屬性
屬性 | 功能說明 |
---|---|
Images | 列出可用於操作列表中的操作的影象 |
State | 當用戶觸發客戶端對像時,操作列表中的操作是否響應 |
# 16.2. 事件
- TActionList元件主要事件列表
事件 | 何時觸發 |
---|---|
OnChange | 在操作列表中發生更改時觸發該事件。 |
OnExecute | 客戶端對像在列表中觸發操作時觸發該事件。 |
OnStateChange | 在OnChange事件之後觸發該事件。 |
OnUpdate | 在應用程式空閑時觸發該事件,以便操作列表可以更新列表中的特定操作。 |
# 17. TBarCode 元件
TBarCode元件用於展示條形碼。在使用該元件時,請先確認所需的條碼編碼格式。
# 17.1. 屬性
- TBarCode元件主要屬性
屬性 | 功能說明 |
---|---|
FitMode | 位於Properities屬性組中, |
ModuleColor | 位於Properities屬性組中,獲取或設定條形碼元件的顯示顏色 |
ModuleWidth | 位於Properities屬性組中,顯示元件的寬度倍數,用以放大或縮小顯示區域 |
RotationAngle | 位於Properities屬性組中,設定元件的順時針旋轉角度 |
ShowText | 位於Properities屬性組中,設定是否在條形碼下方顯示對應文字 |
Symbology | 位於Properities屬性組中,設定條形碼的編碼格式,當選擇為QRCode時展示為二維碼 |
Text | 設定條形碼顯示的數值資訊,根據編碼格式顯示的數值內容會有變化,當Symbology為QRCode時可輸入字元 |
引用Properities屬性組中的屬性
FThis.BarCode1.Properties.ShowText := True;
# 18. TWebBrowser 元件
該元件用於呼叫瀏覽器進行網頁瀏覽。
# 18.1. 方法
# 18.1.1. Navigate 方法
procedure Navigate(const URL : WideString);
該方法用於指定瀏覽器打開的網頁。
FThis.WebBrowser1.Navigate('https://www.baidu.com');
# 19. TIdHTTPServer 元件
該元件實現了一個簡易的HTTP伺服器的功能,用來實現對資料庫的連線功能。
# 19.1. 屬性
屬性 | 功能說明 |
---|---|
DefaultPort | 設定預設的服務埠 |
# 19.2. 事件
事件 | 描述 |
---|---|
OnCommandGet | 當獲取到命令時觸發該事件 |
# 20. TIdTCPClient 元件
TIdTCPClient元件實現了TCP的客戶端部分功能,它封裝了一個完整的TCP客戶端,包括對套接字的支援。該元件可用來實現專門協議的元件的父類。
# 20.1. 屬性
屬性 | 功能說明 |
---|---|
BoundIP | 指定客戶端連線使用的本地IP地址,當與伺服器連線時使用此屬性值初始化繫結 |
BoundPort | 指定本地連線中的首選埠號,即建立客戶連線的本地埠號的整數 |
Host | 指定所要連線的遠端計算機的IP地址或計算機名稱 |
Intercept | 該屬性是TidConnectionlntercept型別,允許擷取連線的讀寫操作 |
LocalName | 本地計算機的主機名 |
MaxLineLength | 最大連線數 |
Port | 指定客戶端連線伺服器所使用的埠號 |
ReadTimeout | 該屬性是一個只讀屬件,用於判斷Read方法是否超時 |
RecvBufferSize | 指定連線所用的接收緩衝區的大小,預設為8192位元組 |
ReadLnTimedOut | 該屬件是一個只讀屬性,用於判斷ReadLn方法是否超時 |
SendBufferSize | 指定連線所用的寫緩衝區的最大位元組數,預設為32768位元組 |
# 20.2. 方法
方法 | 描述 |
---|---|
Connect | 連線資料庫,使用該方法之前必須指定Host屬性和Port屬性 |
CancelWriteBuffer | 停止向緩衝區寫入數據 |
ClearWriteBuffer | 清除寫緩衝區 |
Connected | 判斷連線是否被啟用 |
CurrentReadBuffer | 返回目前緩衝區中的數據 |
Disconnect | 斷開與伺服器的連線 |
DisconnectSocket | 關閉目前連線的套接字的繫結 |
InputLn | 從伺服器讀取一行數據並返回該行數據 |
ReadBuffer | 從緩衝區中讀取AByteCount長度的數據存入ABuffer參數中 |
ReadCardinal | 從連線中讀取一個32位無符號整型值 |
Readlnteger | 從緩衝區中讀取一個4位元組的二進制整型值 |
ReadLn | 從緩衝區中讀取一行數據並作為返回值 |
ReadLnWait | 返回單行數據。使用預設的分隔符和超時設定 |
ReadSmallint | 從連線中讀取一個整型值,範圍在0-255之間 |
ReadStream | 從緩衝區中讀取數據並存入AStream參數指定的流中,AByteCount 參數用來指定讀取的位元組數 |
ReadString | 從緩衝區中讀取由ABytes參數指定位元組的字串 |
WaitFor | 從連線中讀取數據直到遇到AString參數指定的字串為止 |
Write | 將AOut參數指定的字串發送到連線,若參數為空則不發送 |
WriteBuffer | 將緩衝區中的數據發送到連線 |
WriteCardinal | 發送一個32位的無符號整型值到連線 |
WriteFile | 將AFile參數指定的本地系統的檔案發送到連線,與AEnableTransferFile參數為True時,伺服器增加傳輸選項的功能 |
Writelnteger | 將一個二進制整型值發送到連線 |
WriteLn | 將AOut參數指定的字串發送到連線 |
WriteSmalllnt | 將AValue參數中的一個小整型值發送到連線 |
WriteStream | 將AStream參數指定的流發送到連線 |
WriteStrings | 將AValue參數中的多行文字發送到連線 |
# 21. TIdTCPServer 元件
該元件封裝了一個完整的多執行緒TCP伺服器。
# 21.1. 屬性
屬性 | 功能說明 |
---|---|
Active | 該屬性值為True時,伺服器開啟等待客戶端與其建立連線 |
Bindings | 該屬性是包含伺服器分配套接字控制代碼的容器 |
CommandHandlers | 指定伺服器使用的命令控制代碼 |
CommandHandersEnabled | 指定在對等執行緒連線的執行過程中是否使用CommandHandlers |
DefauItPort | 指定伺服器與客戶端連線所用的埠號 |
Greeting | 指定監聽執行緒接收到執行緒客戶連線時,發送到對等方的標識資訊 |
Intercept | 該屬性用來識別套接字數據的控制代碼。該屬性允許程式開發者建立一個Tidlntercept的派生類對數據進行加密或解密、壓縮或解壓縮 |
IOHandler | 指定監聽執行緒所使用的IOHandler |
ImplicitThreadMgr | 指定是否使用隱含的執行緒管理者為伺服器建立和釋放執行緒 |
ListenQueue | 指定系統允許未解決的連線嘗試次數的最大值 |
MaxConnectionReply | 指定連線到伺服器的對等連線數超過MaxConnections屬性值時使用的RFC訊息響應 |
MaxConnections | 指定伺服器允許對等連線數的最大值 |
ReplyExceptionCode | 指定在伺服器上下文中出現異常時使用的數字結果程式碼 |
ReplyTexts | 指定伺服器實現中使用的協議響應 |
ReplyUndnownCommand | 指定在客戶接收到未知命令時使用的RFC響應 |
ReuseSocket | 指定監聽執行緒是否可以重用本地地址 |
TeminateWaitTiine | 設定伺服器終止執行緒時所等待的時間 |
ThreadClass | 在為伺服器建立新的執行緒時指定ThreadMgr使用的執行緒型別 |
ThreadMgr | 給伺服器指定一個執行緒管理者併爲其提供擴充套件機制 |
Threads | 它是一個容器,包含連線到伺服器的所有等同執行緒。這些執行緒是由監聽執行緒所產生的 |
# 21.1.1. 事件
事件 | 描述 |
---|---|
OnAfterCommandHandler | 使用CommandHandlers作為對等執行緒連線伺服器后觸發該事件 |
OnBeforeCommandHandler | 使用CommandHandlers作為對等執行緒連線伺服器前觸發該事件 |
OnConnect | 當有一個客戶端與伺服器連線時就會觸發該事件 |
OnDisconnect | 當有一個客戶端與伺服器斷開連線時就會觸發該事件 |
OnException | 對等執行緒的執行過程中出現異常時觸發該事件 |
OnExecute | 與伺服器與客戶端建立一個新的連線時伺服器會為這個連線建立一個執行緒,該事件就是在這個執行緒運行時被觸發的 |
OnListenException | 在監聽執行緒的執行過程中出現異常時觸發該事件 |
OnNoCommandHandler | 無法定位命令控制代碼時觸發該事件 |
OnStatus | 當連線狀態改變時觸發該事件 |
ThreadMgr | 連線執行緒管理者所產生的事件 |
# 22. TFlying 元件
TFlying元件是配合Flying使用的元件,將必要的列印配置傳遞給該元件的屬性,執行元件的方法即可將數據傳遞至列印伺服器進行列印操作。在使用該元件前請先閱讀Flying使用手冊。
# 22.1. 屬性
# 22.1.1. HTTPOptions
使用 HTTP 列印模式時使用的屬性選項。其中的相關屬性專案說明如下:
屬性 | 說明 |
---|---|
Host | Flying列印服務端地址 |
Port | Flying HTTP/WebSocket 列印服務監聽的埠號 |
SSL | 是否啟用SSL |
# 22.1.2. MailOptions
郵件相關設定選項。
屬性 | 說明 |
---|---|
Addr | 接收郵箱的地址 |
Body | 郵件的正文內容 |
Enable | 是否啟用郵件發送的功能 |
Subject | 郵件的標題 |
# 22.1.3. MQTTOptions
使用 MQTT 列印模式時使用的屬性選項。其中的相關屬性專案說明如下:
屬性 | 說明 |
---|---|
BrokerHost | MQTT 服務端的地址 |
BrokerPort | MQTT 服務端服務監聽的埠號 |
Enabled | 設定是否啟用 MQTT 連線 |
PrintPwd | 列印的密碼 |
PrintTopic | 列印服務訂閱的主題名稱 |
SSL | 是否啟用SSL |
UserName | MQTT 服務的使用者名稱 |
UserPwd | MQTT 服務的密碼 |
# 22.1.4. PrintOptions
列印服務的相關設定項。
屬性 | 說明 |
---|---|
Data | 輸入的列印數據,可通過 AddPrintData 方法自動產生 |
ExportFileType | 設定導出的檔案型別 |
ExportFileUrl | 設定導出檔案的URL |
Preview | 設定是否啟用檔案預覽 |
PrintCopies | 設定檔案的列印份數 |
PrinterName | 設定印表機的名稱,可通過 GetPrinerList 方法獲取印表機名稱 |
PrintOffsetX | 列印偏移 X |
PrintOffsetY | 列印偏移 Y |
PrintType | 設定列印模式,可選 HTTP 、MQTT 、WebSocket |
ReportName | 設定列印的報表模板的名稱,可指定報表模板的檔名(*.fr3 )或者報表模板的別名 |
ReportUrl | 設定列印的報表的輸出地址 |
ReportVersion | 報表版本號 |
TaskID | 列印的任務ID,設定此項可用於區分不同列印客戶端的列印請求 |
Token | 令牌,可用於列印客戶端的身份認證 |
# 22.1.5. WebSocketOptions
使用 WebSocket 進行列印時的設定項。
屬性 | 說明 |
---|---|
Authentication | 是否啟用 WebSocket 身份認證 |
Compressed | 是否啟用數據壓縮 |
Enabled | 是否啟用 WebSocket 通訊連線 |
Host | WebSocket 連線的主機的地址(Flying 服務端的地址) |
Password | WebSocket 使用身份認證連線時使用的密碼 |
Port | WebSocket 服務監聽的埠號 |
SSL | 是否啟用 SSL 連線 |
SSLPort | 啟用SSL 連線時監聽的 WebSocket 服務埠號 |
URL | WebSocket 服務路徑 |
UserName | WebSocket 使用身份認證連線時使用的使用者名稱稱 |
# 22.2. 事件
# 22.2.1. OnReceivedError事件
procedure FlyingOnReceivedError(ASender: TObject; AError:String);
當列印過程中出現錯誤時,可觸發此事件。AError
中包含了錯誤的提示資訊。
# 22.2.2. OnReceivedExport事件
procedure FlyingOnReceivedExport(ASender: TObject; AUrl:String);
當列印包含輸出的檔案時觸發事件,AUrl
中包含了輸出檔案的路徑。
# 22.2.3. OnReceviedPrinter事件
procedure FlyingOnReceivedExport(ASender: TObject; APrinterList:String);
當Flying 向客戶端發送印表機列表的資訊時觸發事件。APrinterList
中包含了印表機列表等資訊。
# 22.3. 方法
- TFlying元件主要方法
方法 | 功能說明 |
---|---|
GetPrinterList | 獲取Flying服務端可用的印表機列表 |
列印報表 | |
ReportPrint | 直接列印 |
ReportPreview | 報表預覽 |
AddPrintData | 列印數據組裝 |
# 22.3.1. GetPrinterList 方法
procedure GetPrinterList;
該元件使用者獲取目前Flying列印伺服器中可用的印表機列表。可通過如下方式來獲取印表機列表:
procedure TMyHandler.Button2Click;
//載入印表機
begin
FThis.Flying1.GetPrinterList;
end;
procedure TMyHandler.Flying1ReceivedPrinter;
//獲取印表機列表
begin
FThis.ComboBoxPrinter.Items.CommaText := APrinterList;
if FThis.ComboBoxPrinter.Items.Count <> 0 Then
FThis.ComboBoxPrinter.ItemIndex := 0;
FThis.ComboBoxPrinter.DroppedDown := True;
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 22.3.2. ReportPrint方法
procedure ReportPrint;
ReportPrint方法是呼叫Flying,進行報表列印。
//Pirnt
Procedure btnPrintOnClick(Sender: TObject);
Begin
if FThis.Combobox1.Count = 0 Then exit;
FThis.Flying1.PrinterName := FThis.Combobox1.Items[FThis.Combobox1.ItemIndex];//讀取印表機名稱
FThis.RFDataSet1.openData;//打開數據
FThis.Flying1.PrintOptions.Data.Clear;
FThis.Flying1.AddPrintData(FThis.RFDataSet1,'A');//數據集轉Json
FThis.Flying1.ReportPrint;//列印報表
End;
procedure TMyHandler.Flying1ReceivedExport;
//輸出
var
F: TBaseForm;
begin
if FThis.SwitchButton1.IsChecked then
begin
F := paxfunc.OpenForm('Form1');
F.TagObject := FThis;
TChrome(F.FindComponent('Chrome1')).Active := True;
TChrome(F.FindComponent('Chrome1')).Uri := AUrl;
end;
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 22.3.3. ReportPreview方法
procedure ReportPreview;
ReportPreview方法是呼叫Flying中介軟體,進行報表輸出,並回傳到客戶端顯示。
//Pirnt
Procedure btnPrintOnClick(Sender: TObject);
Begin
if FThis.Combobox1.Count = 0 Then exit;
FThis.Flying1.PrinterName := FThis.Combobox1.Items[FThis.Combobox1.ItemIndex];//讀取印表機名稱
FThis.RFDataSet1.openData;//打開數據
FThis.Flying1.PrintOptions.Data.Clear;
FThis.Flying1.AddPrintData(FThis.RFDataSet1,'A');//數據集轉Json
FThis.Flying1.ReportPreview;//報表預覽
procedure TMyHandler.Flying1ReceivedExport;
//輸出
var
F: TBaseForm;
begin
if FThis.SwitchButton1.IsChecked then
begin
F := paxfunc.OpenForm('Form1');
F.TagObject := FThis;
TChrome(F.FindComponent('Chrome1')).Active := True;
TChrome(F.FindComponent('Chrome1')).Uri := AUrl;
end;
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 22.3.4. PrintPdf方法
procedure PrintPdf(AUrl: String);
從網路地址獲取 PDF 檔案併發送至 Flying 服務端執行列印。
# 22.3.5. PrintPic方法
procedure PrintPic(AUrl: String);
從網路地址獲取圖片檔案併發送至 Flying 服務端執行列印。
# 23. TPDFViewer 元件
該元件用於顯示對應路徑下的pdf檔案。
# 23.1. 方法
# 23.1.1. LoadFromFile 方法
打開PDF檔案以顯示。
FThis.PDFViewer1.LoadFromFile('test.pdf');
# 24. TSwitchButton元件
表示用於應用程式的可切換圖片按鈕。
每當您需要為使用者提供開關狀態時,請使用TSwitchButton。
# 24.1. 屬性(Properties)
- TSwitchButton元件主要屬性
屬性 | 功能說明 |
---|---|
IsChecked | 指定按鈕切換狀態 |
Bitmap | 目前按鈕所顯示的狀態圖片 |
SwitchOffBmp | 指定按鈕關閉時的狀態圖片 |
SwitchOffBmp | 指定按鈕打開時的狀態圖片 |
# 24.1.1. IsChecked屬性
property IsChecked: Boolean read FIsChecked write SetIsChecked default True;
指定切換圖片按鈕顯示代表不同狀態的圖片。
IsChecked=True為顯示SwitchOffBmp圖片,False時顯示SwithchOnBmp圖片。
# 24.1.2. Bitmap屬性
property Bitmap: TBitmap read GetBitmap write SetBitmap;
目前按鈕所顯示的狀態圖片。
# 24.1.3. SwitchOffBmp屬性
property SwitchOffBmp: TBitmap read GetBitmap write SetBitmap;
指定按鈕關閉時的狀態圖片。
# 24.1.4. SwitchOffBmp屬性
property SwitchOffBmp: TBitmap read GetBitmap write SetBitmap;
指定按鈕打開時的狀態圖片。
# 24.2. 事件(Events)
- TfxSwitchButton元件主要事件
事件 | 何時觸發 |
---|---|
OnSwitch | 當Switch的IsChecked的值發生變化時觸發 |
# 24.2.1. OnSwitch事件
property OnSwitch: TNotifyEvent read GetOnSwitch write SetOnSwitch;
TSwitchButton更改IsChecked的值時呼叫的事件處理程式
# 24.3. 示例(Code)
TSwitchButton更改IsChecked的值時處理程式。
Procedure fxSwitch1OnSwitch(Sender: TObject);
Begin
if fxSwitch1.IsChecked Then
Showmessage('Switch On.')
else
Showmessage('Switch Off.');
End;
2
3
4
5
6
7