視窗控制元件
# Smart控制元件說明-Windows(視窗)
視窗空間盤區域包含用於視窗顯示補充的佈局控制元件以及一些基礎的設定工具控制元件。
# 1. TTabControl元件
TTabControl元件使用起來,根本不會使程式簡單化,所以不提倡使用此元件,可以用TPageControl元件代替。
與TPageControl元件不同的是,雖然Tab元件上可以有一組按鈕,但它們的客戶區是公用的,當用戶選擇其中某個按鈕時,將觸發OnChange事件。在處理OnChange事件的控制代碼中,必須自己定義怎樣操縱客戶區上的內容。例如,可以用Tab元件做一個圖片管理器,使用者選擇不同的按鈕,Tab按鈕的客戶區就顯示不同的內容(使用者必須用程式碼實現)。
# 1.1. 屬性
- TTabControl元件主要屬性
屬性 | 功能說明 |
---|---|
DisplayRect | 指定選項卡元件客戶區的邊框 |
Align | 確定元件在其父元件區內的對齊方式 |
Anchors | 指定元件如何停放在父窗體中 |
BiDiMode | 為元件指定雙向模式,控制文字的順序,垂直滾動條的位置以及是否改變對齊方式 |
Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大或最小值時,重新調整元件的大小不能超出該限制 |
DockSite | 使用該屬性可確定元件是否為拖動和停靠操作目標 |
DoubleBuffered | 確定元件的影象是直接渲染到視窗還是首先繪製到記憶體中的點陣圖 |
DragCursor | 目前元件受拖動時游標的形狀 |
DragKind | 獲取或設定元件是拖動操作還是拖動/停靠操作 |
DragMode | 控制使用者何時可拖動元件 |
Enabled | 控制組件是否響應滑鼠,鍵盤和計時器事件 |
Font | 確定元件內顯示的文字字型 |
HotTrack | 確定滑鼠下方選項卡上的標籤是否自動突出顯示,設定該屬性為True,為使用者單擊選擇的標籤提供視覺上的反應 |
Images | 指定在選項卡中繪製的影象 |
MultiLine | 確定選項卡是否可以顯示在多行上 |
MultiSelect | 指定是否可以選擇多個選項卡 |
OwnerDraw | 指定選項卡元件是否處理自己的繪製 |
ParentBiDiMode | 獲得或設定元件是否使用其父元件的BiDiMode屬性 |
ParentDoubleBuffered | 獲得或設定元件是否使用父元件的DoubleBuffered屬性 |
ParentFont | 確定元件是否使用父元件的Font |
ParentShowHint | 確保窗體中的所有元件以統一格式顯示幫助提示 |
PopupMenu | 在元件上單擊游標右鍵時出現的彈出式功能表 |
RaggedRight | 指定是否拉伸選項卡以填充元件的寬度 |
ScrollOpposite | 確定如何在多行選項卡元件中滾動選項卡行 |
ShowHint | 確定當滑鼠指針暫時停留在元件上時元件是否顯示「幫助提示」 |
Style | 指定選項卡元件的樣式 |
TabHeight | 設定該屬性可控制組件客戶區域上顯示標籤的高度,這是單個標籤的畫素高度。如果設定為0,標籤會自動改變其大小以容納文字 |
TabIndex | 標識選項卡元件上已選定的選項卡 |
TabOrder | 確定父元件的切換順序 |
TabPosition | 確定選項卡是顯示在頂部還是底部 |
Tabs | 包含標籤選項卡元件選項卡的文字字串列表 |
TabStop | 使用該屬性可允許或不允許用Tab訪問元件 |
TabWidth | 設定該屬性可控制組件客戶區域上顯示標籤的寬度,這是單個標籤的畫素寬度。如果將TabWidth設定為0,標籤會自動改變其大小以容納文字 |
Visible | 確定元件是否可見 |
下面介紹程式中TTabControl元件經常用的屬性。
# 1.1.1. Images屬性
在Images屬性中與ImageList元件關聯,可以為每個標籤設定一個圖示。主要方法是將一個ImageList元件中調入n個圖片,然後將TTabControl元件的Images屬性設定為擁有圖片列表的ImageList元件,就可以看見TTabControl元件的標籤頁上有圖示顯示。
# 1.1.2. Multiline屬性
此屬性用於設定TTabControl元件標籤按鈕的顯示位置。True值表示按鈕可以自動分成幾行顯示;False值表示按鈕顯示在一行,如果一行不能顯示全部按鈕,則在按鈕右側顯示兩個可以左右移動標籤按鈕的箭頭狀按鈕。
# 1.1.3. MultiSelect屬性
此屬性用於設定TTabControl元件是否可以選擇多個標籤按鈕。MultiSelect屬性必須與Style屬性配合使用,當MultiSelect屬性為True值時,並且Style屬性的取值不為tsTabs值時,使用者在按下Ctrl鍵的情況下單擊標籤按鈕時可以選擇多個;當MultiSelect屬性為False值時,不管Style屬性為何值,只能選擇一個標籤按鈕。
# 1.1.4. ScrollOpposite屬性
此屬性決定使用者在單擊另一行上的按鈕后,前一行移到最下面或上面一行。在Multiline屬性為False值時,並且有多行按鈕行顯示的前提下:True值將位於目前行下面的所有按鈕行移動到最下面;False值是將目前選中的按鈕行移動到與使用者區相臨的位置。
# 1.1.5. Style屬性
改變Styles屬性,可以將標籤的顯示方式設定為標籤方式(tsTabs)、按鈕方式(tsButtons)和平板按鈕方式(tsFlatButtons)。
# 1.1.6. TabIndex屬性
此屬性是Tab元件上的每個按鈕的序號,可以用來設定Tab元件上選中的按鈕或獲取已經等距的按鈕。
# 1.1.7. TabPosition屬性
此屬性可以設定Tab元件的標籤按鈕顯示的位置,TabPosition屬性的設定可能會與Style屬性的設定產生衝突,在後面的實體中將提到如何解決此問題。它有如下4個選項。
- tpBottom:在Tab元件的下部顯示標籤按鈕。
- tpLeft:在Tab元件的左部顯示標籤按鈕。
- tpRight:在Tab元件的右部顯示標籤按鈕。
- tpTop:在Tab元件的上部顯示標籤按鈕。
# 1.1.8. Tabs屬性
通過修改Tabs屬性,可以手工地新增標籤的個數。其中在Tabs屬性的編輯器中,每一行內容可以形成一個標籤頁,可以利用一個TStringList型別的變數對此屬性進行設定。
# 1.2. 事件
- TTabControl元件主要事件列表
事件 | 何時觸發 |
---|---|
OnChange | 選擇新選項卡后觸發該事件 |
OnChanging | 在選擇新選項卡之前立即觸發該事件 |
OnContextPopup | 當用戶右鍵單擊元件或以其他方式呼叫彈出功能表(例如使用鍵盤)時觸發該事件 |
OnDockDrop | 當另一個元件停靠到元件時觸發該事件 |
OnDockOver | 在元件上拖動另一個元件時觸發該事件 |
OnDragDrop | 使用者刪除正在拖動的對象時觸發該事件 |
OnDragOver | 當用戶在元件上拖動對像時觸發該事件 |
OnDrawTab | 即將繪製選項卡時觸發該事件 |
OnEndDock | 當對象的拖動結束后產生該事件 |
OnEndDrag | 當對象的拖動結束后產生該事件 |
OnEnter | 在元件接收輸入焦點時觸發該事件 |
OnExit | 當輸入焦點從一個元件轉移到另一個元件時觸發該事件 |
OnGetImageIndex | 選項卡即將顯示其關聯影象時觸發該事件 |
OnGetSiteInfo | 返回元件的停靠資訊 |
OnMouseActivate | 當用戶使用滑鼠指針在元件上按下滑鼠按鈕並且父窗體未啟用時觸發該事件 |
OnMouseDown | 當用戶使用滑鼠指針在元件上按下滑鼠按鈕時觸發該事件 |
OnMouseEnter | 使用者將滑鼠移動到元件中時觸發該事件 |
OnMouseLeave | 使用者將滑鼠移出元件之外時觸發該事件 |
OnMouseMove | 當用戶在滑鼠指針懸停在元件上時移動滑鼠指針時觸發該事件 |
OnMouseUp | 當用戶釋放用滑鼠指針在元件上按下的滑鼠按鈕時觸發該事件 |
OnResize | 在調整元件大小后立即觸發該事件 |
OnStartDock | 當用戶開始拖動元件時觸發該事件 |
OnStartDrag | 當用戶通過左鍵單擊元件並按住滑鼠按鈕開始拖動元件或其包含的對象時觸發該事件 |
OnUnDock | 當應用程式嘗試取消停靠到視窗元件的元件時觸發該事件 |
下面介紹程式中TTabControl元件的常用事件。
當用戶按下了另一個按鈕時將觸發OnChanging事件。在使用者按下了其他按鈕並且輸入焦點已切換到新的按鈕上之後,將觸發OnChange事件。
OnChanging事件與OnChange事件及功能基本相同,只是OnChanging事件發生在OnChange事件的前面。如果需要在按下某個按鈕時做相應的處理,可以在這兩個事件的任意一個中新增執行程式碼,並利用TabIndex屬性獲得按下的按鈕。
# 1.3. 方法
- TTabControl元件主要方法列表
方法 | 功能描述 |
---|---|
RowCount | 返回Tab元件上的按鈕行數 |
ScrollTabs | 相當於使用者單擊箭頭來滾動 |
下面介紹程式中TTabControl元件的常用方法。
RowCount方法 此方法用來返回Tab元件上按鈕的行數,返回值為Integer型別,可以將此值賦給一個Integer型別的變數。
ScrollTabs方法 此方法可以用來代替使用者單擊箭頭滾動的動作。方法中包含一個Delta參數,其取值型別為Integer,可以用此參數來設定移動的位置,正數表示向後移動,負數表示向前移動,0表示不移動。
# 2. TPageControl元件
TPageControl元件主要用於程式的選項視窗,因為選項視窗擁有很多方面的設定。在TPageControl元件上單擊滑鼠右鍵,在彈出式功能表中選中「NewPage」功能表命令,將會增加一個新的頁面。對於TPageControl元件,利用滑鼠左鍵單擊標籤與單擊頁面位置選中的對象是不同的。如果單擊標籤,則選中了整個元件,同時設定目前啟用頁,這時按下Delete鍵,會把整個元件刪除。如果單擊頁面位置,則選中了當前啟用頁的頁面,這時按下Delete鍵,只刪除目前選中的頁面。在TPageControl元件的不同頁面中,可以加入不同的元件。
# 2.1. 屬性
- TPageControl元件主要屬性
屬性 | 功能說明 |
---|---|
ActivePageIndex | 使用該屬性可獲得或設定活動頁的索引 |
PageCount | 表示TPageControl對像中的頁數 |
Pages | 列出TPageControl中的所有頁面 |
ActivePage | 讀取該屬性的值可確定使用者所選頁 |
Align | 確定元件在其父元件區內的對齊方式 |
Anchors | 指定元件如何停放在父窗體中 |
BiDiMode | 為元件指定雙向模式,控制文字的順序,垂直滾動條的位置以及是否改變對齊方式 對齊方式不改變元件包含的數量、日期、事件和目前數 |
Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大或最小值時,重新調整元件的大小不能超出該限制 |
DockSite | 使用該屬性可確定元件是否為拖動和停靠操作目標 |
DoubleBuffered | 確定元件的影象是直接渲染到視窗還是首先繪製到記憶體中的點陣圖 |
DragCursor | 目前元件受拖動時游標的形狀 |
DragKind | 獲取或設定元件是拖動操作還是拖動/停靠操作 |
DragMode | 控制使用者何時可拖動元件 |
Enabled | 控制組件是否響應滑鼠,鍵盤和計時器事件 |
Font | 確定元件內顯示的文字字型 |
HotTrack | 確定滑鼠下方選項卡上的標籤是否自動突出顯示,設定該屬性為True,為使用者單擊選擇的標籤提供視覺上的反應 |
Images | 指定在選項卡中繪製的影象 |
MultiLine | 使用該屬性可確定如何顯示標籤(多行顯示) |
OwnerDraw | 確定標籤控制組件是否自己處理繪製 |
ParentBiDiMode | 獲得或設定元件是否使用其父元件的BiDiMode屬性 |
ParentDoubleBuffered | 獲得或設定元件是否使用父元件的DoubleBuffered屬性 |
ParentFont | 確定元件是否使用父元件的Font |
ParentShowHint | 確保窗體中的所有元件以統一格式顯示幫助提示 |
PopupMenu | 在元件上單擊游標右鍵時出現的彈出式功能表 |
RaggedRight | 確定是否拉伸選項卡行以填充元件的寬度 |
ScrollOpposite | 設定該屬性可確定當用戶在其他行選擇標籤時,應當將多行標籤控制組件中前面一行的標籤移到何處 |
ShowHint | 確定當滑鼠指針暫時停留在元件上時元件是否顯示「幫助提示」 |
Style | 使用該屬性可確定標籤的外觀,可作為筆記本標籤或按鈕顯示 |
TabHeight | 設定該屬性可控制組件客戶區域上顯示標籤的高度,這是單個標籤的畫素高度。如果設定為0,標籤會自動改變其大小以容納文字 |
TabIndex | 讀取該屬性可確定使用者顯示的標籤,這個屬性是儲存在Tabs屬性中的標籤列表中的標籤索引 |
TabOrder | 確定父元件的切換順序 |
TabPosition | 確定選項卡是顯示在頂部還是底部 |
TabStop | 使用該屬性可允許或不允許用Tab訪問元件 |
TabWidth | 設定該屬性可控制組件客戶區域上顯示標籤的寬度,這是單個標籤的畫素寬度。如果將TabWidth設定為0,標籤會自動改變其大小以容納文字 |
Visible | 確定元件是否可見 |
下面介紹程式中TPageControl元件常用的屬性。
# 2.1.1. ActivePage屬性
property ActivePage: TTabSheet;
在選中整個元件的情況下,改變ActivePage屬性,可以改變目前的啟用頁。
- 應用
設定該屬性可使所選頁顯示在最前面。
procedure TMyHandler.BUTTON1CLICK;
//點選按鈕載入頁面資訊
var
i: Integer;
begin
for i := 0 to FThis.PageControl1.PageCount - 1 do
FThis.ComboBox1.Items.AddObject(FThis.PageControl1.Pages[i].Name , FThis.PageControl1.Pages[i]);
FThis.ComboBox1.ItemIndex := 0;
end;
procedure TMyHandler.COMBOBOX1CHANGE;
//選擇需要的頁面進行顯示
begin
if (Sender is TComboBox) then
with(Sender as TComboBox) do
FThis.PageControl1.ActivePage := TTabSheet(Items.Objects[ItemIndex]);
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 2.1.2. ActivePageIndex屬性
property ActivePagelndex: Integer;
使用該屬性可獲得或設定活動頁的索引。其值大於0或小於PageCount-1,超出時將導致頁面元件中沒有活動頁。改變其值即改變ActivePage屬性,反之亦然。如果無活動頁,該屬性值為-1。
# 2.1.3. PageCount屬性
property PageCount: Integer;
使用該屬性可確定Page屬性中列出的頁數。如果MultiLine屬性為False,則並不是所有頁面都有使用者可視的標籤。
# 2.1.4. Pages屬性
property Pages[Index: Integer]: TTabSheet;
該屬性為只讀,列出TPageControl中的所有頁,用其可直接存取在頁面元件中指定的頁。
# 2.2. 事件
- TPageControl元件主要事件列表
事件 | 何時觸發 |
---|---|
OnChange | 選擇新選項卡后觸發該事件 |
OnChanging | 在選擇新選項卡時立即觸發該事件 |
OnContextPopup | 當用戶右鍵單擊元件或以其他方式呼叫彈出功能表(例如使用鍵盤)時觸發該事件 |
OnDockDrop | 當另一個元件停靠到元件時觸發該事件 |
OnDockOver | 當另一個元件拖放至該元件時觸發該事件 |
OnDragDrop | 使用者刪除正在拖動的對象時觸發該事件 |
OnDragOver | 當用戶在元件上拖動對像時觸發該事件 |
OnDrawTab | 即將繪製選項卡時觸發該事件 |
OnEndDock | 當對象的拖動結束后產生該事件 |
OnEndDrag | 當對象的拖動結束后產生該事件 |
OnEnter | 在元件接收輸入焦點時觸發該事件 |
OnExit | 當輸入焦點從一個元件轉移到另一個元件時觸發該事件 |
OnGetImageIndex | 選項卡顯示其關聯影象時觸發該事件 |
OnGetSiteInfo | 返回元件的停靠資訊 |
OnMouseActivate | 當用戶使用滑鼠指針在元件上按下滑鼠按鈕並且父窗體未啟用時觸發該事件 |
OnMouseDown | 當用戶使用滑鼠指針在元件上按下滑鼠按鈕時觸發該事件 |
OnMouseEnter | 使用者將滑鼠移動到元件中時觸發該事件 |
OnMouseLeave | 使用者將滑鼠移出元件之外時觸發該事件 |
OnMouseMove | 當用戶在滑鼠指針懸停在元件上時移動滑鼠指針時觸發該事件 |
OnMouseUp | 當用戶釋放用滑鼠指針在元件上按下的滑鼠按鈕時觸發該事件 |
OnResize | 在調整元件大小后立即觸發該事件 |
OnStartDock | 當用戶開始拖動元件時觸發該事件 |
OnStartDrag | 當用戶通過左鍵單擊元件並按住滑鼠按鈕開始拖動元件或其包含的對象時觸發該事件 |
OnUnDock | 當應用程式嘗試取消停靠到視窗元件的元件時觸發該事件 |
下面介紹程式中TPageControl元件的常用事件。
- 當用戶按下了另一個Page頁時將觸發OnChanging事件。在使用者按下了其他Page頁並且輸入焦點已切換到新的Page頁上之後,將觸發OnChange事件。
- OnChanging事件與OnChange事件及功能基本相同,只是OnChanging事件發生在OnChange事件的前面。如果需要在按下某個按鈕時做相應的處理,可以在這兩個事件的任意一個中新增執行程式碼,並利用PageIndex屬性獲得按下的按鈕。
# 2.3. 方法
- TPageControl元件主要方法列表
方法 | 功能描述 |
---|---|
FindNextPage | 此函式返回CurPage參數指定的頁的相鄰頁 |
SelectNextPage | 此過程用於選擇目前頁的前一頁或下一頁 |
下面介紹程式中TPageControl元件的常用方法。
# 2.3.1. FindNextPage方法
function FindNextPage(CurPage: TTabSheet; GoForward,CheckTabVisible: Boolean): TTabSheet;
此方法可以返回CurPage參數指定頁的相鄰頁,它包含3個參數。
CurPage參數:取值為TTabSheet型別,用於指定TTabSheet。
GoForward參數:取值為Boolean型別,True值取下一頁,False值取上一頁。
CheckTabVisible參數:取值為Boolean型別,True值為檢查TTabSheet的TabVisible屬性,如果TabVisible屬性為False,則不顯示此頁而直接跳至下一頁或上一頁;如果CheckTabVisible參數為False,則不檢查TTabSheet的TabVisible屬性,即不管TabVisible屬性為True還是False,都顯示這一頁的內容。
應用
若GoForward參數為True,則返回頁面元件中CurPage參數指定的下一頁;否則返回前一 頁。如果CurPage不是頁面元件中的一頁,且GoForward為True,則返回第1頁;GoForward 為False,返回最後一頁;如果GoForward為True,且CurPage為頁面元件的最後一頁。CheckTabVisible為True,該方法返回用TabVisible屬性設定為True的下一頁;否則返回包括用 TabVisible屬性設定為False的下一頁。
procedure TMyHandler.PAGECONTROL1CHANGE;
//頁面發生變化時觸發該事件
var
PrevCaption,NextCaption: ShortString;
begin
with (Sender as TPageControl) do
begin
NextCaption := FindNextPage(ActivePage, True, False).Caption;
PrevCaption := FindNextPage(ActivePage, False, False).Caption;
end;
ShowMessage('Previous tab Caption:''' + PrevCaption + ''' Next tab Caption: ''' + NextCaption + '''');
end;
2
3
4
5
6
7
8
9
10
11
12
# 2.3.2. SelectNextPage方法
procedure SelectNextPage(GoForward: Boolean; CheckTabVisible:Boolean = True);
此方法用於選擇目前頁的上一頁或下一頁,與FindNextPage方法類似,只是其參數中沒有CurPage參數,只有GoForward參數和CheckTabVisible參數,取值及功能請參見FindNextPage方法的說明。 下面的程式碼是將一個名稱為PageControl1的TPageControl元件順序往前移動一頁,並且檢測TTabSheet的TabVisible屬性:
FThis.PageControl.SelectNextPage(False,True);
# 3. TImageList元件
TImageList元件用於儲存和管理相同大小的一組影象,其中的每個影象可以通過影象索引訪問
# 3.1. 屬性
- TImageList元件主要屬性
屬性 | 功能說明 |
---|---|
AllocBy | 當TImageList元件需要為新新增的影象分配控制元件時,設定影象列表新增影象的數量 |
BkColor | 此屬性用於設定影象的背景顏色 |
BlendColor | 此屬性用於設定圖形的前景顏色 |
Count | 此屬性用於返回影象列表中影象的個數 |
DrawingStyle | 此屬性用於設定圖形顯示的風格 |
Handle | 此屬性用於返回Windows影象列表的控制代碼 |
Height | 此屬性用於設定圖形的畫素高度 |
Width | 此屬性用於設定影象的寬度 |
ImageType | 此屬性用於設定圖形的型別(繪畫時是否使用掩碼) |
Masked | 圖形列表中允許有透明的圖形 |
下面介紹程式中TImageList元件的常用屬性。
# 3.1.1. BlendColor屬性
property BlendColor: TColor;
BlendColor屬性用於確定影象的前景顏色。當影象列表的DrawingStyle屬性為dsFocus或 dsSelected時,設定BlendColor屬效能夠改變影象的前景顏色。
# 3.1.2. BkColor屬性
property BkColor: TColor;
BkColor屬性用於確定影象的背景顏色。當BkColor屬性為clNone時,影象是透明的,否 則影象的背景採用BkColor屬性值。BkColor屬性只有在Masked屬性為True時才起作用。
# 3.1.3. Count屬性
property Count: Integer;
Count屬性用於顯示影象列表中的影象數量。使用該屬效能夠遍歷影象列表中的影象(通過 GetBitmap、Getlcon 等方法)。
# 3.1.4. DrawingStyle屬性
property DrawingStyle: TDrawingStyle;
此屬性用於設定圖形顯示的風格,他有如下4個可選值。
- dsFocused:表示目前影象有輸入焦點。
- dsSelected:表示目前影象被選擇。
- dsNormal:表示目前影象處於通常狀態。
- dsTransparent:表示目前影象是透明的。
# 3.1.5. Height屬性和Width屬性
property Height: Integer;
property Width: Integer;
2
這連個屬性用來指定圖形的高度和寬度。列入喜愛功能表中引用的影象進場將這個連個值設定為16(預設值),而在工具欄中是用時可以將這個連個屬性設定為32,這樣就可以是在工具欄中顯示的影象比較大。當然這個兩個值可以根據需要去不同的值。
# 3.1.6. ImageType屬性
property ImageType: TImageType;
此屬性用於設定影象的型別,它有如下兩個可選項
- itImage表示普通的影象。
- itmask表示畫的是影象的掩碼。
# 3.2. 方法
- TImageList元件主要方法列表
方法 | 功能描述 |
---|---|
Add | 此方法想影象列表中加入一個影象及其掩碼,並返回點陣圖在影象列表中的索引號 |
AddIcon | 此方法想影象列表中加入一個圖示,並返回圖示在影象列表中的索引號 |
AddImages | 此方法用於把另一個TImageList元件的影象加到影象列表中 |
Addmasked | 此方法向影象列表中加入一個影象 |
Assign | 此方法用Source參數指定的另一個影象列表取代自己 |
Clear | 清空影象列表中的所有影象 |
CreateSize | 建立一個影象列表,並指定影象的高度和寬度 |
Delete | 此方法用於刪除影象列表中的一個影象 |
Draw | 此方法吧影象列表中的指定序號的影象畫到指定畫布的指定的位置 |
DrawOverLay | 此方法用於把影象列表中的指定序號的影象畫到指定畫布的指定位置 |
FileLoad | 此方法用於從一個資原始檔中讀取影象到影象列表中 |
GetBitmap | 此方法吧指定序號的影象寫到Image參數指定的點陣圖中 |
GetIcon | 此方法是把指定序號的影象寫到Image參數指定的影象中 |
Insert | 此方法吧一個圖示查到影象列表的指定序號之後 |
InserIcon | 此方法是吧一個圖示查到影象列表的指定序號之後 |
InsertMasked | 此方法吧一個點陣圖查到指定的序號之後 |
Move | 此方法用於把影象列表中的一個影象移動到另一個位置 |
Replace | 此方法用於一個新的點陣圖機器掩碼代替影象列表中指定序號的影象 |
ReplanceIcon | 此方法用一個新的圖示替換影象列表中指定序號的影象 |
TeplaceMasked | 此方法用一個新的點陣圖代替影象列表中指定序號的影象 |
ResourceLoad | 此方法從一個指定的資原始檔中取出指定型別的影象到影象列表中 |
下面介紹程式中TImageList元件常用的方法。
# 3.2.1. Add方法
function Add(Image: TBitmap; Mask: TBitmap): Integer;
此方法向影象列表中加入一個點陣圖及其掩碼,並返回點陣圖在圖形列表中的索引號。他有兩個屬性為TBitMap型別的參數
- Image加入的點陣圖
- Mask點陣圖的掩碼
# 3.2.2. AddIcon方法*
function Addlcon(Image: TIcon): Integer;
Addlcon方法用於向影象列表中新增一個圖示,如果操作成功,則返回新增的圖示索引, 否則返回-1。
# 3.2.3. AddImages方法
procedure AddImages(Value: TCustomImageList);
Addlmages方法用於從另一個影象列表中新增影象。AddImages方法中的Value參數是TCusTomImageList型別,例如用下面的程式碼可以將兩個TImageList元件的影象合併到一個影象列表中。
FThis.ImageList1.Addimages(FThis.Imagelist2);//將ImageList2d影象新增到ImageList1中
# 3.2.4. Assign方法
procedure Assign(Source: TPersistent); override;
Assign方法用於從一個影象列表中向另一個影象列表中複製資訊。使用該方法能夠從另一個對像中複製資訊到影象列表中。如果參數Source為一個影象列表,Assign操作將丟棄,前影象列表中的所有資訊,用Source中的資訊替換;如果Source為Nil,則淸空影象列表中的所有影象。下面的程式碼演示了通過Assign方法克隆ImageList1元件。
FThis.ImageList2.Assign(FThis.ImageListl);
# 3.2.5. Clear方法
procedure Clear;
此方法用於清空影象列表中的所有影象。例如ImageList1影象列表中的所有影象,可以用下面的程式碼實現:
FThis.ImageList1.Clear;
# 3.2.6. CreatSize方法
constructor CreateSize(AWidth: Integer; AHeight: Integer);
此方法實際是TImageList的構造。用於建立一個影象列表,並指定影象列表中影象的高度和寬度。GreateSize方法中有如下兩個參數:
- AWidth影象的寬度
- AHeight影象的高度
在一個已經引用影象的列表中,可以利用此方法重新指定影象的寬度和高度。
# 3.2.7. Delete方法
procedure Delete(Index: Integer);
Delete方法用於從影象列表中刪除指定的影象。在程式中,呼叫Delete方法一次能夠刪除 一個影象。
FThis.ImageList1.Delete(0);
# 3.2.8. FileLoad方法
function FileLoad(ResType: TResType; const Name: string; MaskColor: TColor): Boolean;
FileLoad方法用於載入影象到影象列表中。利用FileLoad方法能夠從磁碟檔案中載入影象到影象列表中,同時可以指定影象的透明顏色。
- ResType:標識載入的影象型別,可以是點陣圖、滑鼠指針或圖示。
- Name:標識影象檔案的名稱。
- MaskColor:設定影象的背景顏色。如果方法執行成功,返回值為True,否則為False。
if FThis.ImageList1.FileLoad(rtBitmap,'c:\temp.bmp',clwhite) then
FThis.ImageList1.Draw(Canvas,0,0,0);
2
# 3.2.9. Insertlcon方法
procedure Insertlcon(lndex: Integer; Image: TIcon);
Insertlcon方法用於在影象列表中的指定位置插入一個圖示。
- Index:標識插入點。
- Image:待插入的圖示。
# 3.2.10. Move方法
procedure Move(CurIndex, Newlndex: Integer);
Move方法用於將所標識的影象移動到指定的位罝。
- Curlndex:標識影象的原位置。
- Newlndex:標識影象的新位置。
使用Move方法能夠將影象列表中的某個影象移動到新的位置。下面的程式碼是將影象列表中的第一個影象(Index為0)移動到第二個位置(Index為1)。
FThis.ImageList1.Move(0,1);
# 4. TRichEdit元件
使用TRichEdit元件,對象可在窗體中放置一個標準的允許使用者輸入包含字型屬性和段落格式文字的文字編輯元件。該元件提供了多種屬性和方法用來輸入或編輯文字,但不提供使用者使用這些格式選項時的介面元件。應用程式必須編輯實現用戶界面的元件以實現該對象的文字編輯功能。
# 4.1. 屬性
- TRichEdit元件主要屬性
屬性 | 功能說明 |
---|---|
Align | 確定元件在其父元件區內的對齊方式 |
Alignment | 確定文字在文字編輯元件中的對齊方式 |
Anchors | 指定元件如何停放在父窗體中 |
BevelEdges | 使用該屬性可獲得或設定元件成斜角的邊緣 |
BevelInner | 使用該屬性可指定內斜角是否具有凸、凹或平坦的外觀 |
BevelKind | 使用該屬性可修改斜角的風格,即斜角的傾斜程度 |
BevelOuter | 使用該屬性可指定外斜角是否具有凸、凹或平坦的外觀,外斜角直接顯示在邊框內和內斜角的外面 |
BevelWidth | 使用該屬性可指定內外斜角的畫素寬度 |
BiDiMode | 為元件指定雙向模式,控制文字的順序,垂直滾動條的位置以及是否改變對齊方式 |
BorderStyle | 使用該屬性可影響編輯元件的客戶區域突出效果,其取值為bsSingle時,編輯元件的客戶區域有一個單線邊框;為bsNone時,無邊框 |
BorderWidth | 使用該屬性可獲得或設定元件的邊框寬度 |
Color | 指定元件的背景顏色 |
Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大或最小值時,重新調整元件的大小不能超出該限制 |
Ctl3D | 確定元件是否具有三維(3-D)或二維外觀 |
DefAttributes | 使用該屬性可獲得或設定編輯元件中新插入文字時預設字元的格式 |
DragCursor | 目前元件受拖動時游標的形狀 |
DragKind | 獲取或設定元件是拖動操作還是拖動/停靠操作 |
DragMode | 控制使用者何時可拖動元件 |
Enabled | 控制組件是否響應滑鼠,鍵盤和計時器事件 |
Font | 確定元件內顯示的文字字型 |
HideScrollBars | False:編輯元件內容改變時,可放置滾動條閃爍。ScrollBars屬性設定為ssNone時,該屬性不執行操作 |
HideSelection | True:編輯元件有焦點時,文字選擇的部分有視覺提示;False:即使編輯元件無焦點,文字選擇的部分仍然有視覺反應 |
ImeMode | 設定該屬性可配置IME處理使用者按鍵的方法。對於亞洲語言字元,IME為前端輸入處理器 |
ImeName | 設定該屬性可配置IME名稱 |
Lines | 使用該方法可操作編輯元件中單行的文字 |
MaxLength | 利用該屬性可限制使用者輸入的字元數,為0表示字元的長度沒有限制 |
ParentBiDiMode | 獲得或設定元件是否使用其父元件的BiDiMode屬性 |
ParentColor | 元件要使用與其父元件相同的顏色 |
ParentCtl3D | 確定元件是否使用父元件的Ctl3D屬性 |
ParentFont | 確定元件是否使用父元件的Font |
ParentShowHint | 確保窗體中的所有元件以統一格式顯示幫助提示 |
PlainText | True:忽略RTF文字中的資訊編碼。 False:將RTF文字中的格式資訊編輯儲存或流出到檔案 |
PopupMenu | 在元件上單擊游標右鍵時出現的彈出式功能表 |
ReadOnly | 確定使用者是否可以更改編輯元件的文字 |
ScrollBars | 確定是否為多行文字編輯器新增水平或垂直的滾動條 |
SetAttributes | 使用該屬性可獲得或設定目前選擇文字的字型格式 |
SetLength | 使用該屬性可確定文字的字元長度 |
SelStart | 讀取該屬性可確定第1個被選字元的位置,0表示第1個字元 |
SelText | 設定該屬性可用新的字串代替選擇的文字 |
ShowHint | 確定當滑鼠指針暫時停留在元件上時元件是否顯示「幫助提示」 |
TabOrder | 確定父元件的切換順序 |
TabStop | 使用該屬性可允許或不允許用Tab訪問元件 |
Visible | 確定元件是否可見 |
WantReturns | 確定使用者是否可以在文字中插入返回字元 |
WantTabs | 確定使用者是否可以在文字中插入製表符 |
WordWrap | 確定編輯元件是否插入軟回車,以便文字在右邊距處換行 |
下面介紹程式中TRichEdit元件的常用屬性。
# 4.1.1. DefAttributes屬性*
property DefAttributes: TTextAttributes;
使用該屬性可獲得或設罝編輯元件中新插入文字時的預設字元格式,這是在特殊格式使用前的字元格式。一旦在文字中應用了特殊格式,從這一點開始就認為沒有預設字元的格式,即使字元格式匹配該屬性。
# 4.1.2. HideSelection屬性
property HideSelection: Boolean;
- True:編輯元件有焦點時,文字的選擇部分有視覺指示。
- False:即使編輯元件無焦點,文字的選擇部分仍然有視覺反應,結果使包含多個編輯元件的窗休較亂。
# 4.1.3. Lines屬性
property Lines: TStrings;
使用該方法可操作編輯元件中的單行文字。
# 4.1.4. Paragraph屬性*
property Paragraph: TParaAttributes;
讀取該屬性可獲得編輯元件中指定的段落格式資訊。
# 4.1.5. PlainText屬性
property PlainText: Boolean;
- True:忽略RTF文字中的資訊編碼。
- False:將RTF文字中的格式資訊編輯儲存或流出到檔案。
# 4.1.6. SelAttributes屬性
property SelAttributes: TTextAttributes;
使用該屬性可獲得或設定目前選擇文字的字型格式。
# 4.1.7. SelLength屬性
property SelLength: Integer;
讀取該屬性可確定選擇文字的字元長度。
# 4.1.8. SelStart屬性
property SelStart: Integer;
讀取該屬性可確定第1個被選字元的位置,0表示第1個字元。
# 4.1.9. SelText屬性
property SelText: string;
設定該屬性可用新的字串代替選擇的文字。
- 應用
如果沒有選擇的文字,但是編輯元件有焦點,設罝SelText可在游標處將新的字串插入到文字中。
procedure TMyHandler.BUTTON1CLICK;
//點選按鈕以替換
begin
with FThis.RichEdit1 do
begin
SelText := FThis.Edit1.Text;
end;
end;
2
3
4
5
6
7
8
# 4.2. 方法
- TRichEdit元件主要方法列表
方法 | 功能描述 |
---|---|
Clear | 清除富文字編輯框中的文字內容 |
Add | 向富文字編輯框中增加文字內容 |
FindText | 使用該方法可在編輯元件中指定範圍的文字中查詢指定的字串 |
GetSelTextBuf | 使用該方法可複製所選文字到字元緩衝區 |
使用該方法可列印編輯元件的內容 |
# 4.2.1. Clear方法
procedure Clear; override;
使用該方法可用空字串代替Text屬性,並刪除所有文字,刪除己選文字使用ClearSelection 方法。
- 應用
刪除所有文字並新增新文字。
procedure TMyHandler.BUTTON1CLICK;
//點選以清空文字並新增新文字
begin
FThis.RichEdit1.Lines.Clear;
FThis.RichEdit1.Lines.Add('歡迎使用愛招飛系列產品!');
end;
2
3
4
5
6
# 4.2.2. FindText方法*
使用該方法可在編輯元件中指定範圍的文字中查詢指定的字串。
type
TSearchType = (st Whole Word, stMatchCase);
TSearchTypes = set of TSearchType;
function FindText(const SearchStr: string; StarlPos, Length: Integer; Options: TSearchTypes): Integer;
2
3
4
# 5. TTrackBar元件
該元件是一個Windows滾動條封裝,用於調節區域或範圍。使用者可以對跟蹤條做進一步的處理,例如將其設定為垂直或水平,設定滑尺的高度及寬度,設定刻度單位,設定滑尺風格等。程式運行時可以用滑鼠來拖動滑尺到指定位置,也可以用游標鍵或PageUp或PageDown鍵移動。
# 5.1. 屬性
- TTrackBar元件主要屬性
屬性 | 功能說明 |
---|---|
Align | 確定元件在其父元件區內的對齊方式 |
Anchors | 指定元件如何停放在父窗體中 |
BorderWidth | 使用該屬性可獲得或設定元件的邊框寬度 |
Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大或最小值時,重新調整元件的大小不能超出該限制 |
Ctl3D | 確定元件是否具有三維(3-D)或二維外觀 |
DoubleBuffered | 確定元件的影象是直接渲染到視窗還是首先繪製到記憶體中的點陣圖 |
DragCursor | 目前元件受拖動時游標的形狀 |
DragKind | 獲取或設定元件是拖動操作還是拖動/停靠操作 |
DragMode | 控制使用者何時可拖動元件 |
Enabled | 控制組件是否響應滑鼠,鍵盤和計時器事件 |
Frequency | 該屬性用於設定刻度的單位 |
LineSize | 使用該屬性指定滑動塊移動一個單位的距離 |
Max | 設定滾動條的最終位置 |
Min | 設定滾動條的起始位置 |
Orientation | 設定跟蹤條是水平放置還是垂直放置 |
PageSize | 使用該屬性指定與一個檢視相應的跟蹤條的距離 |
ParentCtl3D | 確定元件是否使用父元件的Ctl3D屬性 |
ParentDoubleBuffered | 獲得或設定元件是否使用父元件的DoubleBuffered屬性 |
ParentShowHint | 確保窗體中的所有元件以統一格式顯示幫助提示 |
PopupMenu | 在元件上單擊游標右鍵時出現的彈出式功能表 |
Position | 設定滑尺的位置 |
PositionToolTip | 確定顯示軌跡條位置的(可選)工具提示的位置 |
SelEnd | 設定該屬性可確定SelStart開始選定的範圍長度 |
SelStart | 指定選擇範圍起始點的位置 |
ShowHint | 確定當滑鼠指針暫時停留在元件上時元件是否顯示「幫助提示」 |
ShowSelRange | 指定軌跡條是否顯示選擇範圍 |
SliderVisible | 指定軌跡欄的滑塊是否可見 |
TabOrder | 確定父元件的切換順序 |
TabStop | 使用該屬性可允許或不允許用Tab訪問元件 |
ThumbLength | 指定軌跡欄滑塊的長度 |
TickMarks | 指定刻度線的位置 |
TickStyle | 設定該屬性可確定跟蹤條是否顯示刻度線 |
Visible | 確定元件是否可見 |
下面介紹一下TTrackBar中的常用屬性。
# 5.1.1. Max屬性
property Max:integer;
Max屬性用於設定TTrackBar元件中Position屬性的最大值,即滾動條的最終位置。
# 5.1.2. Min屬性
property Min: Integer;
Min屬性用於設定TTrackBar元件中Position屬性的最小值,即滾動條的起始位置。
# 5.1.3. Position屬性
property Position: Integer;
Position屬性代表了滑塊所在位置的值。
# 5.1.4. SelStart屬性
property SelStart: Integer;
SelStart屬性用於設定滑塊拖動範圍的起始點。
# 5.1.5. SelEnd屬性
property SelEnd: Integer;
SelEnd屬性用於設定滑塊拖動範圍的終止點。
# 5.1.6. Frequency屬性
property Frequency: Integer;
Frequency屬性用於設定刻度標記的頻率,此頻率與取值範圍有關。
# 5.1.7. LineSize屬性
property LineSize: Integer;
用於設定當按箭頭鍵時,TTrackBar元件的Position屬性增加或減少的值。按向下箭頭或左箭頭時,Position屬性值將按該屬性的值減少,按向上箭頭或右箭頭時,Position屬性值將按該屬性的值增加。
# 5.1.8. PageSize屬性
property PageSize: Integer;
用於設定當按PageDown、PageUp鍵時或在TTrackBar元件上單擊時,TTrackBar元件的Position屬性增加或減少的值。按PageDown鍵時,Position屬性值減少一個PageSize屬性的值,按PageUp鍵時,Position屬性值將增加一個PageSize屬性的值。
- 應用
當移動滑塊時每移動一次的Position是10。
procedure TMyHandler.TRACKBAR1CHANGE;
//滑塊拖動時發生
begin
FThis.Label1.Caption := IntToStr(FThis.TrackBar1.Position);
end;
procedure TMyHandler.BUTTON1CLICK;
//載入刻度
begin
FThis.TrackBar1.Min := 0;
FThis.TrackBar1.Max := 100;
FThis.TrackBar1.PageSize := 10;
end;
2
3
4
5
6
7
8
9
10
11
12
13
# 5.1.9. Orientation屬性
property Orientation: TtrackBarOrientation;
用於定義TTrackBar元件是水平排列的還是垂直排列的。取值為trHorizontal表示是水平排列的,取值為trVertical表示是垂直排列的。
# 5.2. 事件
- TTrackBar元件主要事件列表
事件 | 何時觸發 |
---|---|
OnChange | 在Position更改值后立即觸發該事件 |
OnContextPopup | 當用戶右鍵單擊元件或以其他方式呼叫彈出功能表(例如使用鍵盤)時觸發該事件 |
OnDragDrop | 使用者刪除正在拖動的對象時觸發該事件 |
OnDragOver | 當用戶在元件上拖動對像時觸發該事件 |
OnEndDock | 當對象的拖動結束后產生該事件 |
OnEndDrag | 當對象的拖動結束后產生該事件 |
OnEnter | 在元件接收輸入焦點時觸發該事件 |
OnExit | 當輸入焦點從一個元件轉移到另一個元件時觸發該事件 |
OnKeyDown | 當用戶在元件具有焦點時按任意鍵時觸發該事件 |
OnKeyPress | 按下某個鍵時觸發該事件 |
OnKeyUp | 使用者釋放已按下的鍵時觸發該事件 |
OnStartDock | 當用戶開始拖動元件時觸發該事件 |
OnStartDrag | 當用戶通過左鍵單擊元件並按住滑鼠按鈕開始拖動元件或其包含的對象時觸發該事件 |
# 5.2.1. OnChange事件
procedure TrackBarlChange(Sender: TObject);
Trackbar改變時可以觸發OnChange事件。實體詳見PageSize屬性。
# 5.3. 方法
- TTrackBar元件主要方法列表
方法 | 功能描述 |
---|---|
SetTick | 使用該方法可為跟蹤條在Value參數指定位置上放置一個刻度線,只有當TickStyle屬性設定為tsManual時,刻度線才有效 |
# 5.3.1. SetTick方法
procedure SetTick(Value:integer);
使用該方法可為跟蹤條在Value參數指定位置上放置一個刻度線,只有當TickStyle屬性設定為tsManual時,刻度線才有效。
# 6. TProgressBar元件
TProgressBar為進度條元件。使用TProgressBar可在窗體中新增進度條。進度條為使用者提供一個應用程式執行進度的可視的反饋。當程式執行時,矩形的進度條用系統高亮度的顏色逐漸從左到右填充。
# 6.1. 屬性
- TProgressBar元件主要屬性
屬性 | 功能說明 |
---|---|
Align | 確定元件在其父元件區內的對齊方式 |
Anchors | 指定元件如何停放在父窗體中 |
BackgroundColor | 設定並獲取進度條背景的顏色 |
BarColor | 設定並獲取進度條突出顯示部分的顏色 |
BorderWidth | 使用該屬性可獲得或設定元件的邊框寬度 |
Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大或最小值時,重新調整元件的大小不能超出該限制 |
DoubleBuffered | 確定元件的影象是直接渲染到視窗還是首先繪製到記憶體中的點陣圖 |
DragCursor | 目前元件受拖動時游標的形狀 |
DragKind | 獲取或設定元件是拖動操作還是拖動/停靠操作 |
DragMode | 控制使用者何時可拖動元件 |
Enabled | 控制組件是否響應滑鼠,鍵盤和計時器事件 |
Hint | 包含使用者將滑鼠移到元件上時可以顯示的文字字串 |
MarqueeInterval | 選框動畫更新間隔的時間(以毫秒為單位) |
Max | 設定進度條的最大值 |
Min | 設定進度條的最小值 |
Orientation | 指定進度條是垂直還是水平方向 |
ParentDoubleBuffered | 獲得或設定元件是否使用父元件的DoubleBuffered屬性 |
ParentShowHint | 確保窗體中的所有元件以統一格式顯示幫助提示 |
PopupMenu | 在元件上單擊游標右鍵時出現的彈出式功能表 |
Position | 指定進度條的當前位置 |
ShowHint | 確定當滑鼠指針暫時停留在元件上時元件是否顯示「幫助提示」 |
Smooth | 指定進度條是平滑移動還是塊移動 |
SmoothReverse | 設定並獲得顯示進度條進度減少的功能 |
State | 設定並獲取進度條的當前狀態:pbsNormal,pbsError或pbsPaused |
Step | 指定呼叫StepIt方法時Position增加的量 |
Style | 確定TProgressBar如何說明進度 |
TabOrder | 確定父元件的切換順序 |
TabStop | 使用該屬性可允許或不允許用Tab訪問元件 |
Visible | 確定元件是否可見 |
# 6.1.1. Smooth屬性
property Smooth:Boolean;
指定進度條是平滑移動還是塊移動。
False:塊移動
True:平猾移動
應用
指定進度條的移動方式。
procedure TMyHandler.BUTTON2CLICK;
//設定進度條的移動方式
begin
FThis.ProgressBar1.Smooth := False; //塊移動
FThis.ProgressBar2.Smooth := True; //平滑移動
end;
procedure TMyHandler.BUTTON1CLICK;
//執行進度條增加過程
begin
FThis.ProgressBar1.StepBy(100);
FThis.ProgressBar2.StepBy(100);
end;
2
3
4
5
6
7
8
9
10
11
12
13
# 6.1.2. Step屬性
property Step: Integer;
該屬性用於指定,呼叫Step方法時Position的步長。
# 6.2. 方法
- TProgressBar元件主要方法列表
方法 | 功能描述 |
---|---|
StepBy | 呼叫該方法可使Position的值增加一定的值 |
StepIt | 呼叫該方法可使Position的值增加一定的值,增量即Step屬性的值 |
# 6.2.1. StepBy方法
procedure StepBy(Delta:Integer);
StepBy方法可指定ProgressBar的增量,如果要設定預設的增量的,請呼叫StepIt方法。StepBy方法實體詳見Smooth屬性
# 6.2.2. StepIt方法
procedure Steplt;
StepIt方法用於增加固定的進度條增量,固定增量請在Step屬性中設定,每次呼叫StepIt均會增加該固定增量。
FThis.ProgressBar1.StepIt;
# 7. TUpDown元件
使用TUpDown可在窗體中新增上下元件。上下元件由一對箭頭按鈕組成,用於建立數值增減的上下箭頭,它允許使用者通過單擊箭頭按鈕改變數值大小。例如將UpDown與一個Edit元件相關聯,相當於一個SpinEdit元件的功能。程式運行后,使用者單擊向上或向下按鈕時,Edit中的數字將連續變化。
# 7.1. 屬性
- TUpDown元件主要屬性
屬性 | 功能說明 |
---|---|
AlignButton | 指定上下元件相對於其伴隨元件的左右位置 |
Anchors | 指定元件如何停放在父窗體中 |
ArrowKeys | 使用該屬性可指定上下元件是否相應鍵盤輸入(上下方向鍵),上下元件和同伴元件相關聯時才可使用這個屬性 |
Associate | 指定用於連線上下元件的伴隨元件 |
Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大或最小值時,重新調整元件的大小不能超出該限制 |
DoubleBuffered | 確定元件的影象是直接渲染到視窗還是首先繪製到記憶體中的點陣圖 |
Enabled | 控制組件是否響應滑鼠,鍵盤和計時器事件 |
Hint | 包含使用者將滑鼠移到元件上時可以顯示的文字字串 |
Increment | 指定每次按下向上或向下按鈕時位置值的更改量 |
Max | 指定Position屬性的最大值 |
Min | 指定Position屬性的最小值 |
Orientation | 指定箭頭按鈕鍵指向的方向 |
ParentDoubleBuffered | 獲得或設定元件是否使用父元件的DoubleBuffered屬性 |
ParentShowHint | 確保窗體中的所有元件以統一格式顯示幫助提示 |
PopupMenu | 在元件上單擊游標右鍵時出現的彈出式功能表 |
Position | 使用該屬性可獲得或改變上下元件的值,這個屬性必須在Min和Max之間 |
ShowHint | 確定當滑鼠指針暫時停留在元件上時元件是否顯示「幫助提示」 |
TabOrder | 確定父元件的切換順序 |
TabStop | 使用該屬性可允許或不允許用Tab訪問元件 |
Thousands | 確定在十進制字串的每三個數字之間是否顯示千位分隔符 |
Visible | 確定元件是否可見 |
Wrap | 使用該屬性可指定上下元件是否處於由Max和Min屬性指定的連線循環的範圍內 |
TUpDown元件的主要屬性如下:
# 7.1.1. Associate屬性
property Associate: TWinControl;
該屬性用於指定UpDown元件所依附的元件類,如Edit1等。運行時UpDown元件自動出現在依附元件的左側或右側。實體詳見Max屬性。
# 7.1.2. AlignButton屬性
type TUDAlignButton = (udLeft, udRight);
property AlignButton: TUDAlignButton;
2
AlignButton屬性用於指定UpDown元件出現依附元件的位置,取值為udLefi時出現在左側,取值為udRight時出現在右側。
# 7.1.3. ArrowKeys屬性
property ArrowKeys: Boolean;
該屬性用於確定是否響應鍵盤方向鍵的輸入。
- True:響應鍵盤輸入。
- False:不響應鍵盤輸入。
# 7.1.4. Increment屬性
property Increment: Integer;
該屬性用於指定單擊按鈕時,Position屬性的增減數量。
# 7.1.5. Max屬性
property Min: SmallInt;
Max屬性用於設定TUpDown元件中Position屬性的取值範圍的上限值。
- 應用
設定上限為10,下限為1。
procedure TMyHandler.BUTTON1CLICK;
//繫結Edit與UpDown
begin
FThis.UpDown1.Associate := FThis.Edit1;
FThis.UpDown2.Associate := FThis.Edit2;
FThis.UpDown1.Max := 10;
FThis.UpDown1.Min := 1;
FThis.UpDown1.Position := 9;
FThis.UpDown2.Max := 10;
FThis.UpDown2.Min := 1;
FThis.UpDown2.Position := 9;
FThis.UpDown2.Wrap := True; //設定循環顯示
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
# 7.1.6. Min屬性
property Min: SmallInt;
Min屬性用於設定TUpDown元件中Position屬性的最小值。實體詳見Max屬性。
# 7.1.7. Orientation屬性
type TUDOrientation=(udHorizontal,udVertical);
property Orientation:TUDOrientation;
2
元件的排列方式。
- udHorizontal:箭頭按鈕左也並排放置。
- udVertical:箭頭按鈕上下垂直放置。
# 7.1.8. Position屬性
property Position: Smalllnt;
Position屬性代表了元件中顯示內容所在位置的值。使用該屬性可獲得或改變上下元件的值,這個屬性必須在Min和Max之間。實體詳見Max屬性。
# 7.1.9. Warp屬性
property Wrap: Boolean;
設定是否在最小值和最大值之間循環顯示。實體詳見Max屬性。使用該屬性可指定上下元件是否處於由Max和Min屬性指定的連續循環的範圍內。如果為True, 當用戶增加Position超過Max的值時,Position的值變為Min屬性的值;反之變為Max 屬性的值。
- True:循環;
- False:不循環。
# 7.2. 事件
- TTrackBar元件主要事件列表
事件 | 何時觸發 |
---|---|
OnChanging | 使用者單擊上下元件的箭頭按鈕時,或當試圖改變Position的值時, 產生這個事件 |
OnChangeingEx | 上下元件的位置將要改變時產生該事件 |
OnClick | 當元件按鈕被點選時觸發事件 |
# 7.2.1. OnChanging事件
type TUDChangingEvent-procedure(Sender:Tobject;var AllowChange:Boolean) of object;
property OnChanging:TUDChanginEvent;
2
使用者單擊上下元件的箭頭按鈕時,或當試圖改變Position的值時,產生這個事件。
# 7.2.2. OnChangingEx事件
type TUDChangingEventEx = procedure (Sender: TObject; var AllowChange: Boolean;
New Value: Smalllnt; Direction: TUpDownDirection) of object;
property OnChangingEx: TUDChanginEventEx;
2
3
上下元件的位置將要改變時產生該事件,編寫其事件處理程式可有條件地不允許改變 Position的值。設定AllowChange參數為False可防止改變目前Position的值。
# 7.2.3. OnClick事件
type
TUDBtnType = (btNext, btPrev);
TUDCIickEvent = procedure (Sender: TObject; Button: TUDBtnType) of object;
property OnClick: TUDCIickEvent;
2
3
4
當用戶單擊箭頭按鈕時產生該事件,編寫其事件處理程式可執行特定的處理。
# 8. THotKey元件
THotKey元件用於使使用者在元件界面上設定熱鍵,設定的熱鍵用於呼叫其他需要快捷操作的功能。使用THotKey可建立一個作為快捷鍵使用的組合鍵,可指定多個修飾鍵,如Ctrl、Alt或Shift等,它們和另外一個非修飾鍵,如字元鍵或數字鍵組成一個熱鍵。
# 8.1. 屬性
- THotKey元件主要屬性
屬性 | 功能說明 |
---|---|
Anchors | 該屬性指定元件如何停放在其父窗體中 |
AutoSize | 使用該屬性可使熱鍵元件上的字型完整顯示 |
BiDiMode | 使用該屬性可謂元件指定雙向模式,控制讀文字的順序、垂直滾動條的位置以及是否改變對齊方式。對齊方式不改變元件包含的數量、日期、事件和目前數值 |
Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大值或最小值時,重新調整元件的大小不能超出該限制 |
DoubleBuffered | 確定元件影象是直接在視窗渲染或者是首先在內容中產生點陣圖 |
Enabled | 規定元件是否響應滑鼠、鍵盤和計時器事件 |
Hint | 元件提示 |
HotKey | 使用該屬性可設定或改變熱鍵相關的組合鍵,Alt+A為預設值 |
InvalidKeys | 使用該屬性可選擇不允許的組合鍵 |
Modifiers | 規定與非輔助鍵搭配的輔助按鍵 |
ParentBiDiMode | 規定元件是否繼承父元件的BiDiMode |
ParentDoubleBuffered | 規定元件是否繼承父元件的DoubleBuffered屬性 |
ParentShowHint | 使用該屬性可確保窗體中的所有元件以統一格式顯示或不顯示其幫助提示 |
PopupMenu | 將元件與功能表欄中的位置繫結 |
ShowHint | 當滑鼠游標懸停在元件上時是否顯示提示內容 |
TabOrder | 規定元件在父元件中的換欄位置序號 |
TabStop | 使用該屬性可允許或不允許用Tab鍵訪問元件 |
Visible | 規定該元件在窗體上是否可見 |
# 8.1.1. AutoSize屬性
property AutoSize: Boolean;
使用該屬性可使熱鍵元件上的字型完整顯示,為True時,熱鍵的高度改變以顯示鍵入其中的鍵值;否則熱鍵保持同一高度,不考慮字型的變化。
# 8.1.2. HotKey屬性
property Hotkey: TShortCut;
使用該屬性可設定或改變與熱鍵相關的組合鍵,Alt+A為預設值。
- 應用
要修改這個屬性的值,可直接編輯或設罝Modifiers屬性值。在程式運行時,當熱鍵有焦點且使用者按有效的組合鍵時,重新設定該屬性。目前實體需要使用TMainMenu元件建立功能表。
procedure TMyHandler.MENUITEM2CLICK;
//設定功能表欄快捷鍵
begin
FThis.MenuItem2.ShortCut := FThis.HotKey1.HotKey;
end;
procedure TMyHandler.BUTTON1CLICK;
//設定快捷鍵
begin
FThis.HotKey1.Modifiers := [hkCtrl];
FThis.HotKey1.InvalidKeys := [hcShift, hcAlt];
end;
2
3
4
5
6
7
8
9
10
11
12
# 8.1.3. InvalidKeys屬性
type
THKInvalidKey = (hcNone, hcShift, hcCtrl, hcAlt, hcShiftCtrl, hcShiftAlt, hcCtrlAlt, hcShiftCtrlAIt);
THKInvalidKeys = set of THKInvalidKey;
property InvalidKeys: THKInvalidKeys;
2
3
4
使用該屬性可選擇不允許的組合鍵。如果設定了該屬性,則預設組合鍵將在Modifiers屬性中指定。選擇無效鍵時,預設組合鍵顯示在其位置上。
- hcNone:沒有無效的組合鍵(預設);
- hcShift: Shift鍵用做組合鍵時無效(預設);
- hcCtrl: Ctrl鍵用做組合鍵時無效;
- hcAlt: Alt鍵用做組合鍵時無效;
- hcShiftCtrl: ShiftCtrl鍵用做組合鍵時無效;
- hcShiftAlt: ShiftAlt鍵用做組合鍵時無效;
- hcCtrlAlt: CtrlAlt鍵用做組合鍵時無效;
- hcShiftCtrlAlt: ShiftCtrlAlt 鍵用做組合鍵時無效。 用法如下:
FThis.Hotkey1.InvalidKeys := [hcNone];
FThis.HotKey2.InvalidKeys := [hcShift];
FThis.HotKey3.InvalidKeys := [hcCtrl];
FThis.HotKey4.InvalidKeys := [hcAlt];
FThis.HotKey5.InvalidKeys := [hcShiftCtrl];
FThis.HotKey6.InvalidKeys := [hcShiftAlt];
FThis.HotKey7.InvalidKeys := [hcCtrlAlt];
FThis.HotKey8.InvalidKeys := [hcShiftCtrlAlt];
2
3
4
5
6
7
8
# 8.1.4. Modifiers屬性
type
THKModifier = (hkShift, hkCtrl, hkAlt, hkExt);
THKModifiers = set of THKModifier;
property Modifiers: THKModifiers;
2
3
4
使用該屬性可為熱鍵選擇組合鍵。
hcShift: Shift鍵用做組合鍵;
hcCtrl: Ctrl鍵用做組合鍵;
hcAlt: Alt鍵用做組合鍵(預設);
hcExt: Extra鍵用做組合鍵。
應用
procedure TMyHandler.BUTTON1CLICK;
begin
FThis.HotKey1.Modifiers := [hkShift];
FTHis.HotKey2.Modifiers := [hkCtrl];
FThis.HotKey3.Modifiers := [hkAlt];
FThis.HotKey4.Modifiers := [hkExt];
end;
2
3
4
5
6
7
# 8.2. 事件
- THotKey元件主要事件列表
事件 | 何時觸發 |
---|---|
OnChange | 當快捷鍵的屬性發生變化時觸發該事件 |
OnEnter | 當元件獲取焦點時觸發該事件 |
OnExit | 當元件失去焦點時觸發該事件 |
# 9. TAnimate元件
TAnimate元件用於展示動畫片段、一系列的圖片幀,元件可從檔案、資原始檔或是一系列標準動畫中載入動畫。要設定一段動畫,請配置FileName,CommonAVI,ResName,ResID屬性。
# 9.1. 屬性
- TAnimate元件主要屬性
屬性 | 功能說明 |
---|---|
FrameCount | AVI視訊片段中的視訊總幀數 |
FrameHeight | 動畫中每幀圖片的畫素高度 |
FrameWidth | 動畫中每幀圖片的畫素寬度 |
Open | 動畫是否載入到記憶體中 |
ResHadle | 規定AVI片段的資原始檔模組的窗體控制代碼 |
ResID | 動畫資原始檔的資源ID |
ResName | 動畫的資源名稱 |
Active | 元件是否播放播放動畫 |
Align | 決定容器(父元件)對該元件的歸屬方式 |
Anchors | 該屬性指定元件如何停放在其父窗體中 |
AutoSize | 元件尺寸是否自適應于動畫 |
BorderWidth | 使用該屬性可獲得或設定元件邊框的寬度 |
Center | 規定動畫是否居中 |
Color | 規定元件的背景色 |
CommonAVI | 動畫元件是否能播放在Shell32.dll中提供的通用動畫 |
Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大值或最小值時,重新調整元件的大小不能超出該限制 |
DoubleBuffered | 確定元件影象是直接在視窗渲染或者是首先在內容中產生點陣圖 |
FileName | 規定包含動畫的檔名稱 |
ParnetColor | 元件要使用與其父元件相同的顏色 |
ParentDoubleBuffered | 規定元件是否繼承父元件的DoubleBuffered屬性 |
ParentShowHint | 使用該屬性可確保窗體中的所有元件以統一格式顯示或不顯示其幫助提示 |
Repetitions | 規定動畫幀序列的重複播放次數 |
ShowHint | 當滑鼠游標懸停在元件上時是否顯示提示內容 |
StartFrame | 當動畫元件被啟用時的起始幀 |
StopFrame | 當動畫元件被啟用時的最末幀 |
Timers | 是否使用計時器進行幀播放 |
Transparent | 確定目前的背景顏色是否要與Color屬性的值相匹配,即是否產生透明效果。 |
Visible | 規定該元件在窗體上是否可見 |
# 9.1.1. Active屬性
property Active: Boolean;
該屬性用於確定TAnimate控制元件是否播放動畫,當Active設定為True時,TAnimate開始播放動畫,設定為False時,TAnimate停止播放動畫。
# 9.1.2. Center屬性
property Center: Boolean;
該屬性用於確定TAnimate控制元件是否居中播放動畫。
# 9.1.3. CommonAVI屬性
type TCommonAVI = (aviNone, aviFindFolder, aviFindFile, aviFindComputer,
aviCopyFiles, aviCopyFile,aviRecycleFile, aviEmptyRecycle, aviDeleteFile);
property CommonAVI: TCommonAVI;
2
3
該屬性用於確定TAnimate控制元件是否播放Shell32.dll中的公用動畫。當將CommonAVI設定為aviNone之後,便可以通過FileName屬性指定播放的動畫檔名稱。
- aviNone:採用自定義動畫
- aviFindFolder:顯示系統查詢目錄動畫
- aviFindFile:顯示系統中查詢檔案的動畫
- aviFindComputer :顯示查詢計算機的動畫
- aviCopyFiles:益示覆制多個檔案的動畫
- aviCopyFile:顯示覆制檔案的動畫
- aviRecycleFile:將檔案放入回收站的動畫
- aviEmptyRecycle:清空回收站的動畫
- aviDeleteFile:刪除檔案動畫
# 9.1.4. FileName屬性
property FileName: TFileName;
type TFileName = type string;
2
該屬性用於指定包含動畫的檔案。
# 9.1.5. FrameCount屬性
property FrameCount: Integer;
該屬性用於指定TAnimate控制元件中播放動畫的總數。
# 9.1.6. FrameHeight屬性
property Framelleight: Integer;
該屬性用畫素表示TAnimate控制元件中影象的高度。
# 9.1.7. FrameWidth屬性
property FrameWidth: Integer;
該屬性用畫素表示TAnimate控制元件中影象的寬度。
# 9.1.8. Open屬性
property Open: Boolean;
該屬性用於指定動畫是否已經載入記憶體。
# 9.1.9. Repetitions屬性
property Repetitions: Integer;
該屬性用於設定動畫循環播放的次數。
# 9.1.10. ResName屬性
property ResName: string;
該屬性用於指定動副資源的名稱。
# 9.1.11. StartFrame屬性
property StartFrame: Smalllnt;
該屬性用於指定,TAnimate控制元件啟用時的起始幀。
# 9.1.12. StopFrame屬性
property StopFrame: Smalllnt;
該屬性用於指定當TAnimate控制元件啟用時的最末幀。
# 9.1.13. Transparent屬性
property Transparent: Boolean;
該屬性用於確定,前幀的背景顏色是否要與Color屬性的值相匹配,即是否產生透明效果。
# 9.2. 事件
- TAnimate元件主要事件列表
事件 | 何時觸發 |
---|---|
OnClose | 當元件被關閉時觸發該事件 |
OnOpen | 當元件打開時觸發該事件 |
OnStart | 當開始播放動畫時觸發該事件 |
OnStop | 當動畫結束播放時觸發該事件 |
# 9.3. 方法
- TAimate元件主要方法列表
方法 | 功能描述 |
---|---|
AfterConstruction | 執行對象的最後一個構造后自動呼叫該方法,在應用程式中不要直接呼叫該方法。在TObject中實現這個方法不執行任何操作。過載該方法可在建立對像後設定後設定一些行為 |
Assign | 複製Source參數指定的對象 |
Play | 顯示指定的幀序列 |
Reset | 重置StartFrame和StopFrame屬性顯示動畫中的第一幀 |
Seek | 顯示動畫剪輯中的指定幀 |
Stop | 當在播放時停止動畫元件的播放 |
# 9.3.1. Play方法
procedure Play(FromFrame:Word;ToFrame:Word;Count:Integer);
呼叫Play方法視同為設定StartFrame屬性值至FromFrame,設定StopFrame屬性值至ToFrame,Repetitions對應為Count,設定Active屬性為True。
- FromFrame:播放序列起始幀。
- ToFrame:播放序列結束幀。
- Count:循環播放次數,0表示無限次循環。
# 9.3.2. Reset方法
procedure Reset;
重置StartFrame和StopFrame屬性顯示動畫中的第一幀。
# 9.3.3. Seek方法
procedure Seek(Frame:Smallint);
Seek方法用於播放序列中的一幀,Frame參數的值必須小於等於該元件的FrameCount屬性值。當動畫元件未被啟用時,呼叫該方法視同將該元件的Open屬性設定為True。
# 9.3.4. Stop方法
procedure Stop;
TAnimate控制元件正在播放動畫時,Stop方法用於停止播放。
# 10. TDateTimePicker元件
TDateTimePicker元件為使用者提供了輸入日期和時間的列表框。當TDateTimePicker元件處於dmComboBox日期模式(DateMode為dmComboBox)下,它類似於一個列表框或組合框,只是下拉選單部分顯示日曆圖表,使用者能夠通過日曆圖表選擇日期。
# 10.1. 屬性
- TDateTimePicker元件主要屬性
屬性 | 功能說明 |
---|---|
DateTime | 顯示目前日期時間的值,顯示的內容取決於Kind屬性 |
DroppedDown | 事件選擇元件下拉(彈出日曆) |
Align | 決定容器(父元件)對該元件的歸屬方式 |
Anchors | 該屬性指定元件如何停放在其父窗體中 |
BevelEdges | 使用該屬性可獲得或設定元件成斜角的邊緣 |
BevelInner | 使用該屬性可指定內斜角是否具有凸、凹或平坦的外觀 |
BevelKind | 使用該屬性可修改斜角的風格、即斜角的傾斜程度 |
BevelOuter | 使用該屬性可指定外斜角是否具有凸、凹或平坦的外觀,外斜角直接顯示在邊框內或內斜角的外面 |
BevelWidth | 使用該屬性可指定內外斜角的畫素寬度 |
BiDiMode | 使用該屬性可為元件指定雙向模式,控制文字的順序、垂直滾動條的位置以及是否改變對齊方式 |
CalAlignment | 確定下拉日曆的對齊方式 |
CalColors | 使用該屬性可獲得或設定日曆背景、月背景、文字、標題背景、標題文字和跟蹤文字的顏色 |
Checked | 確定TDateTimePicker元件中的檢查框是否處於選中狀態 |
Color | 元件的背景顏色 |
Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大值或最小值時,重新調整元件的大小不能超出該限制 |
Date | 日期選擇框中預設的日期 |
DateFormat | 日期的顯示格式 |
DateMode | 確定日期時間的選擇方式 |
DoubleBuffered | 確定元件影象是直接在視窗渲染或者是首先在內容中產生點陣圖 |
DragCursor | 當拖動元件時顯示的滑鼠指針影象型別 |
DragKind | 使用該屬性可獲取或設定元件是拖動操作還是拖動/停靠操作 |
DragMode | 使用該屬性可控制使用者何時可拖動元件 |
Enabled | 規定元件是否響應滑鼠、鍵盤和計時器事件 |
Font | 規定元件中的文字字型屬性 |
Format | 規定日期時間字元的顯示格式 |
ImeMode | 設定該屬性可配置IME處理使用者按鍵的方法。對於亞洲語言字元,IME為前端輸入處理器 |
ImeName | 設定該屬性可配置IME名稱 |
Kind | 規定當前元件是顯示日期還是顯示時間 |
MaxDate | 規定可輸入日期的最大值 |
MinDate | 規定可輸入日期的最小值 |
ParentBiDiMode | 使用該屬性可獲得或設定元件是否使用其父元件的BiDiMode屬性 |
ParentColor | 元件要使用與其父元件相同的顏色 |
ParentDoubleBuffered | 規定元件是否繼承父元件的DoubleBuffered屬性 |
ParentFont | 規定元件是否繼承父元件的字型屬性資訊 |
ParentShowHint | 使用該屬性可確保窗體中的所有元件以統一格式顯示或不顯示其幫助提示 |
ParseInput | 確定OnUserInput事件是否被啟用 |
PopupMenu | 將元件與功能表欄中的位置繫結 |
ShowCheckbox | 顯示TDateTimePicker元件中的覈取方塊 |
ShowHint | 當滑鼠游標懸停在元件上時是否顯示提示內容 |
TabOrder | 規定元件在父元件中的換欄位置序號 |
TabStop | 使用該屬性可允許或不允許用Tab鍵訪問元件 |
Time | 顯示由使用者輸入的時間 |
Visible | 規定該元件在窗體上是否可見 |
# 10.1.1. CalColors屬性
property CalColors: TMonthCalColors;
CalColors屬性用於設定TDateTimePicker元件中日曆部分的顏色,如日曆背景顏色、月份背景顏色、文字顏色、標題背景顏色、標題文字顏色、日曆頁面其餘月份(目前月之外)的字型顏色。
具體用法如下:
with FThis.DateTimePickerl do
begin
CalColors.BackColor := S00C4FFFF;
CalColors.TextCoIor := clRed;
CalColors.TitleBackColor :=S00FFFFC4 ;
CalColors.TitleTextColor := clBlue;
CalColors.MonthBackColor := S00FF86FF;
CalColors.TrailingTextColor := clLime;
end;
2
3
4
5
6
7
8
9
# 10.1.2. Date屬性
property Date: TDate;
Date屬性用於確定在日曆中標記的日期。使用Date屬效能夠讀取或設定日曆中標記的日期,日期值必須在MaxDate與MinDate屬性值之間。
# 10.1.3. DateFormat屬性
type TDTDateFormat = (dfShort,dfLong);
property DateFormat: TDTDateFormat;
2
DateFormat屬性用於指定日期格式,可選值如下。
- dfShort: 日期格式採用Windows控制面板中的短日期格式。
- dfLong: 日期格式採用Windows控制面板中的長日期格式。
# 10.1.4. DateTime屬性
property DateTime: TDateTime;
使用DateTime屬效能夠設定和讀取系統日曆中標記的日期和時間。DateTime屬性的屬性值必須在MaxDate與MinDate屬性值之間。
# 10.1.5. Format屬性
property Format: String;
Format屬性用於標識U期和時間的顯示格式,可選值如下。
- d: 日期只顯示天數,沒有前導0,如8。
- dd: H期只顯示天數,有前導0,如08。
- ddd: 3個字元的星期格式,由全域性變景ShortdayNames確定,預設格式如星期二。
- dddd: 完整的星期格式,由全域性變景LongDateNames確定,預設格式如星期二。
- h:只顯示時間部分的小時,為12進位制格式,沒有前導0,如8。
- hh:只顯示時間部分的小時,為12進位制格式,有前導0,如08。
- H:只顯示時間部分的小時,為24進位制格式,沒有前導0,如8。
- HH:只顯示時間部分的小時,為24進位制格式,有前導0,如08。
- m:只顯示時間部分的分鐘,沒有前導0,如9。
- mm:只顯示時間部分的分鐘,有前導0,如09。
- M:只顯示U期部分的月,沒有前導0,如8。
- MM:只顯示(=1期部分的月,有前導0,如08。
- MMM: 3個字元的月簡寫,如「十一月」。
- MMMM:月名全寫。
- t:表示上午/下午(AM/PM)的簡寫,如A或P。
- tt:表示上午/下午(AM/PM)的全寫,如AM或PM。
- yy:顯示年份的后兩位,如2001將簡寫為01。
- yyyy:媼示年份的全稱,如2001。
# 10.1.6. Kind屬性
type TDateTimeKind = (dtkDate, dtkTime);
property Kind: TDateTimeKind;
2
Kind屬性用於確定TDateTimePicker元件顯示日期還是時間,可選值如下。
- dtkDate: TDateTimePicker 元件顯示日期部分。
- dtkTime: TDateTimePicker 元件顯示時間部分。
# 10.1.7. MaxDate屬性
property MaxDate: TDate;
MaxDate屬性用於設定使用者在日曆中滾動的最大日期。使用MaxDate屬效能夠限制使用者在 TDateTiemPicker元件中編輯的最大時間。
# 10.1.8. MinDate屬性
property MinDate: TDate;
MaxDate屬性用於設定使用者在日曆中滾動的最小日期。使用MinDate屬效能夠限制使用者在 TDateTiemPicker元件中編輯的最小時間。
# 10.1.9. Time屬性
type TTime = type TDateTime;
property Time: TTime;
2
Time屬性用於確定使用者輸入的時間。只有在Kind屬性為dtkTime時,TDateTimePicker元件才會顯示時間。如果TDateTimePicker元件的Kind屬性為dtkDate,設定Time屬性,時間不會顯示在TDateTimePicker元件中,如果要檢視Time屬性值,需要進行日期格式化(使用FormatDateTime 函式)。
# 10.2. 事件
- TDateTimePicker元件主要事件列表
事件 | 何時觸發 |
---|---|
OnChange | 當時間或日期輸入時觸發該事件 |
OnClick | 當用戶點選目前元件時觸發該事件 |
OnCloseUp | 當下拉日期框關閉時觸發該事件 |
OnUserInput | 當用戶直接向日期選擇編輯框中鍵入時觸發該事件 |
# 10.3. 方法
- TDateTimePicker元件主要方法列表
方法 | 功能描述 |
---|---|
BoldDays | 編輯一組日期數據,應用於OnGetMonthInfo事件處理過程 |
procedure BoldDays(Days: array of Long Word; var MonthBoldlnfo: LongWord);
BoldDays方法用於編輯一組日期數據,應用於OnGetMonthlnfo事件處理過程。使用BoldDays方法能夠為目前月份設定一組日期,這些日期將以粗體顯示。由BoldDays方法返回的值(MonthBoldlnfo)能夠作為 OnGetMonthInfo 事件的 MonthBoldInfo 參數。
# 11. TMonthCalendar元件
使用TMOnthCalendar元件可以通過標準的日曆界面來確定一個日期或一個日期範圍,TMonthCalendar根據系統的地區顯示日期(忽略BiDiMode設定)。
# 11.1. 屬性
- TMonthCalendar元件主要屬性
屬性 | 功能說明 |
---|---|
Align | 決定容器(父元件)對該元件的歸屬方式 |
Anchors | 該屬性指定元件如何停放在其父窗體中 |
AutoSize | 使元件大小自動適應元件中的內容 |
BiDiMode | 使用該屬性可為元件指定雙向模式,控制文字的順序、垂直滾動條的位置以及是否改變對齊方式 |
BorderWidth | 使用該屬性可獲得或設定元件邊框的寬度 |
CalColors | 包含日曆各部分的顏色設定 |
Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大值或最小值時,重新調整元件的大小不能超出該限制 |
DoubleBuffered | 確定元件影象是直接在視窗渲染或者是首先在內容中產生點陣圖 |
DragCursor | 當拖動元件時顯示的滑鼠指針影象型別 |
DragKind | 使用該屬性可獲取或設定元件是拖動操作還是拖動/停靠操作 |
DragMode | 使用該屬性可控制使用者何時可拖動元件 |
Enabled | 規定元件是否響應滑鼠、鍵盤和計時器事件 |
Font | 規定元件中的文字字型屬性 |
ImeMode | 設定該屬性可配置IME處理使用者按鍵的方法。對於亞洲語言字元,IME為前端輸入處理器 |
ImeName | 設定該屬性可配置IME名稱 |
MaxDate | 規定可輸入日期的最大值 |
MaxSelectRange | 當MultiSelect屬性為True時,使用該屬性可限制可選日期 |
MinDate | 規定可輸入日期的最小值 |
MultiSelect | 元件是否可以選擇多個日期 |
ParentBiDiMode | 使用該屬性可獲得或設定元件是否使用其父元件的BiDiMode屬性 |
ParentDoubleBuffered | 規定元件是否繼承父元件的DoubleBuffered屬性 |
ParentFont | 規定元件是否繼承父元件的字型屬性資訊 |
ParentShowHint | 使用該屬性可確保窗體中的所有元件以統一格式顯示或不顯示其幫助提示 |
PopupMenu | 將元件與功能表欄中的位置繫結 |
ShowHint | 當滑鼠游標懸停在元件上時是否顯示提示內容 |
ShowToday | 是否在日曆底部顯示今天的日期 |
ShowTodayCircle | 是否在日曆中圈出今天的日期 |
TabStop | 使用該屬性可允許或不允許用Tab鍵訪問元件 |
Visible | 規定該元件在窗體上是否可見 |
WeekNumbers | 是否在日曆左側顯示對應的周(星期)數 |
# 11.1.1. Date屬性
property Date:Tdate;
使用該屬性可獲得或設定日曆中有標記的日期。
# 11.1.2. EndDate屬性
property EndDate:Date;
使用該屬性可獲得或設罝日曆上有標記的最後選中的日期。
# 11.1.3. FirstDayOfWeek屬性
property FirstDayOfWeek: TcalDayOfWeek;
使用該屬性可獲得或設定日曆中周的第1天。
# 11.1.4. MaxSelectRange屬性
property MaxSelectRange: Integer;
當MultiSelect屬性為True時,使用該屬性可限制可選日期。若要限制日期範圍時,則使用MaxDate 和MinDate屬性。
# 11.1.5. MultiSelect屬性
property MultiSelect: Boolean;
使用該屬性可指出日曆表示的是單日期,還是個範圍的日期。為True時,指定從Date到EndDate的一個範圍的日期;否則只指定Date屬性的值。
# 11.1.6. ShowToday屬性
property ShowToday: Boolean;
該屬性用於確定今天日期足否顯示在日曆的下面。True:顯示。False:隱藏。
# 11.1.7. ShowTodayCircle屬性
property ShowTodayCircle: Boolean;
使用該屬性可指出日曆上今天的日期(根據系統時間確定)是否用圓圈起。
# 11.1.8. WeekNumbers屬性
property WeekNumbers: Boolean;
是否顯示週數。
- True:週數顯示在日曆的右邊。
- False:週數不顯示在日曆的右邊.
# 11.2. 事件
- TMonthCalendar元件主要事件列表
事件 | 何時觸發 |
---|---|
OnClick | 當時間或日期輸入時觸發該事件 |
OnGetMonthInfo | 當日歷中顯示一個新月份時觸發該事件 |
# 12. TTreeView元件
TTreeView元件是樹狀檢視元件,表示一個顯示專案分層列表的視窗,用於建立一個多層次關係的樹狀顯示。使用TTreeView元件可以在窗休中新增樹狀檢視視窗,樹狀檢視元件中的節點由一個標籤和一定數量的可選點陣圖組成。每個節點都有一個與其相關的子節點列表,使用者單擊節點,可擴充套件或壓縮與子節點相關的列表。
# 12.1. 屬性
- TTreeView元件主要屬性
屬性 | 功能說明 |
---|---|
Align | 決定容器(父元件)對該元件的歸屬方式 |
Anchors | 該屬性指定元件如何停放在其父窗體中 |
AutoExpand | 指定樹狀檢視中是否根據選擇自動展開或摺疊。為True時展開;否則摺疊。 |
BevelEdges | 使用該屬性可獲得或設定元件成斜角的邊緣 |
BevelInner | 使用該屬性可指定內斜角是否具有凸、凹或平坦的外觀 |
BevelKind | 使用該屬性可修改斜角的風格、即斜角的傾斜程度 |
BevelOuter | 使用該屬性可指定外斜角是否具有凸、凹或平坦的外觀,外斜角直接顯示在邊框內或內斜角的外面 |
BevelWidth | 使用該屬性可指定內外斜角的畫素寬度 |
BiDiMode | 使用該屬性可為元件指定雙向模式,控制文字的順序、垂直滾動條的位置以及是否改變對齊方式 |
BorderStyle | 確定樹狀檢視元件是否有邊框 |
BorderWidth | 使用該屬性可獲得或設定元件邊框的寬度 |
ChangeDelay | 確定選擇節點和OnChange事件發生之間的延時,單位為ms |
Color | 規定元件的背景顏色 |
Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大值或最小值時,重新調整元件的大小不能超出該限制 |
Ctl3D | 規定元件的視覺外觀是3D還是2D |
DoubleBuffered | 確定元件影象是直接在視窗渲染或者是首先在內容中產生點陣圖 |
DragCursor | 當拖動元件時顯示的滑鼠指針影象型別 |
DragKind | 使用該屬性可獲取或設定元件是拖動操作還是拖動/停靠操作 |
DragMode | 使用該屬性可控制使用者何時可拖動元件 |
Enabled | 規定元件是否響應滑鼠、鍵盤和計時器事件 |
Font | 規定元件中的文字字型屬性 |
HideSelection | 當焦點移至其他元件時原結點是否仍繼續保持選擇狀態 |
HotTrack | 當滑鼠移動至列表專案上時列表專案是否高亮顯示 |
Images | 使用該屬性可提供顯示在節點標籤左邊的使用者點陣圖列表,單個節點通過設定其ImageIndex屬性指定這個列表中的單個影象 |
Indent | 利用該屬性可以確定展開子結點相對於其展開的父結點的畫素縮排量 |
Items | 列出顯示在檢視元件中的獨立結點,樹狀檢視中的單個結點都是TTreeNode對像 |
MultiSelect | 設定該屬性可以指定使用者能否利用Ctrl和Shift鍵依次選中多個結點 |
MultiSelectStyle | 當MultiSelect屬性為True時,該屬性確定多選擇結點如何工作,它必須包含下列值之一:msControlSelect、msShiftSelect、msVisibleOnly和msSiblingOnly |
ParentBiDiMode | 使用該屬性可獲得或設定元件是否使用其父元件的BiDiMode屬性 |
ParentColor | 規定元件是否繼承父元件的Color屬性 |
ParentCtl3D | 規定元件是否繼承父元件的Ctl3D屬性 |
ParentDoubleBuffered | 規定元件是否繼承父元件的DoubleBuffered屬性 |
ParentFont | 規定元件是否繼承父元件的字型屬性資訊 |
ParentShowHint | 使用該屬性可確保窗體中的所有元件以統一格式顯示或不顯示其幫助提示 |
PopupMenu | 將元件與功能表欄中的位置繫結 |
ReadOnly | 規定使用者是否可以編輯結點標籤 |
RightClickSelect | 使用該屬性可允許Selected屬性指定右擊按鈕所選的結點 |
RowSelect | 設定該屬性為True,當結點整行被選中時是否高亮顯示 |
Selected | 讀取該屬性可訪問樹狀檢視中所選擇的結點 |
SelecttionCount | 該屬性返回目前所選擇的結點數 |
Selections | 該屬性返回一個選擇的結點數 |
ShowButtons | 是否在每個父結點的左側顯示「=」和「-」按鈕,使用者可單擊按鈕展開或摺疊子項,與雙擊父項的選擇相同 |
ShowHint | 當滑鼠游標懸停在元件上時是否顯示提示內容 |
ShowLines | 是否顯示子結點與父結點之間的連線線 |
ShowRoot | 是否顯示連線到根結點的連線線 |
SortType | 確定樹狀檢視的結點是否自動排序 |
StateImages | 提供一組表示樹狀檢視結點狀態的點陣圖,狀態影象作為附加的影象顯示在專案圖表的左邊 |
TabOrder | 規定元件在父元件中的換欄位置序號 |
TabStop | 使用該屬性可允許或不允許用Tab鍵訪問元件 |
Time | 顯示由使用者輸入的時間 |
ToolTips | 設定該屬性為True,可指定樹狀檢視的專案有工具提示(Help Hints)在OnHint事件處理程式中,使用Hint屬性可指定ToolTip的文字 |
TopItem | 指定樹狀檢視的最頂層結點,當其改變時,樹狀檢視垂直滾動,以使指定的結點在樹狀檢視中處於頂層 |
Visible | 規定該元件在窗體上是否可見 |
# 12.1.1. AutoExpand 屬性*
property AutoExpand: Boolean;
該屬性指定樹狀檢視中是否根據選擇自動展開或摺疊。為True時展開;否則摺疊。
# 12.1.2. BorderStyle 屬性
property BorderStyle: TBorderStyle;
該屬性確定樹狀檢視元件是杏有邊框,取值如下。
- bsNone:無邊框。
- sSingle:單細線邊框。
程式碼示例
FThis.TreeView1.BorderStyle := bsNone;
FThis.TreeView1.BorderStyle := bsSingle;
2
# 12.1.3. Canvas 屬性
property Canvas: TCanvas;
使用該屬性可在OnCustomDraw和OnCustomDrawltem事件處理程式的畫布上繪圖。
# 12.1.4. DropTarget 屬性
property DropTarget: TTreeNode;
讀取該屬性可確定樹狀檢視中節點是否以拖放操作的目標顯示。當在樹狀圖中指定一個節點作為拖放操作的目標時,可設定該屬性。此時,應用程式還必須處理通過指定的節點接收拖動對象的實際邏輯。
# 12.1.5. HideSelection 屬性
property HideSelection: Boolean;
使用該屬性可指定樹狀檢視的當前選擇沒有焦點時足否顯示,為True時,所選節點與其他節點沒有區別,直到焦點返回該元件;否則節點總是顯示為被選狀態。
# 12.1.6. HotTrack 屬性
property IIotTrack: Boolean;
該屬性為True時,滑鼠經過列表項上時以高亮顯示;否則不以高亮顯示。
# 12.1.7. Images 屬性
property Images: TCustomlmageList;
使用該屬性可提供顯示在節點標籤左邊的使用者點陣圖列表,單個節點通過設定其Imagelndex 屬性指定這個列表中的單個影象。
# 12.1.8. Indent 屬性
property Indent: Integer;
利用該屬性可以確定展開子節點相對於其展開的父節點的畫素縮排量。
# 12.1.9. Items 屬性*
property Items: TTreeNodes;
該屬性用於列出顯示在樹狀檢視元件的單個節點,樹狀檢視中的單個節點是TTreeNode對 象。這些節點通過Items屬性和其在樹狀檢視中的索引號訪問。
示例程式碼:
var
i:integer;
begin
for i:=0 to FThis.TreeViewl.Items.Count - 1 do
begin
FThis.TreeView1.Items[i].Text := FThis.TreeView1.Items[i].Text+'-'+
IntToStr(FThis.TreeView1.Items[i].Index);
end;
end;
2
3
4
5
6
7
8
9
# 12.1.10. MultiSelect 屬性
type
TMultiSelectStyles = (msControlSelect, msShiftSelect, msVisibleOnly, msSiblingOnly);
TMultiSelectStyle = set of TMultiSelectStyles;
property MultiSelectStyle: TMultiSelectStyle;
2
3
4
當MultiSelect屬性為True時,該屬性用於確定多選擇節點如何工作,它必須包含下列值 之一:msControlSelect、msShiftSelect、msVisibleOnly 和 msSiblingOnly。
# 12.1.11. Readonly 屬性
property Readonly: Boolean;
使用該屬性可指定使用者是否可編輯節點標籤,為True時,可展開或摺疊節點,但不能編輯其標籤;否則可編輯標籤。該屬性預設為False。
# 12.1.12. RightClickSelect 屬性
property RightClickSelect: Boolean;
使用該屬性可允許Selected屬性指定右擊按鈕所選的節點。為True時,Selected的值即為右擊或最後單擊的節點值;否則為使用最後單擊的節點值。該屬性隻影響Selected屬性值。如果是右擊選擇的節點,則並不使樹狀檢視以高亮顯示該新節點。右擊樹狀檢視以影響Selected屬性的值前,必須將該屬性設為True。
# 12.1.13. RowSelect 屬性
property RowSelect: Boolean;
設定該屬性為True,可使所選擇項的整個行以高亮顯示。當ShowLines為True時忽略該屬性。
# 12.1.14. Selected 屬性
property Selected: TTreeNode;
讀取該屬性可訪問在樹狀檢視中選擇的節點。如果沒有所選節點,該屬性為NULL。
# 12.1.15. SelectionCount 屬性
property SelectionCount: Cardinal;
該屬性用於返回,前所選擇的節點數。
# 12.1.16. Selections 屬性*
property Selections[Index: Integer]: TTreeNode;
該屬性返回一個選擇的節點數。Index的最大值為SelectionCount-1。如果選擇了多個節點, 則Selections[0]為第一個選中節點。
# 12.1.17. ShowButtons 屬性
property ShowButtons: Boolean;
如果該屬性為True,每個父項的左邊將顯示加號(+ )和減號(-)按鈕,使用者可單擊按鈕展開或摺疊子項,與雙擊父項的選擇相同。
# 12.1.18. ShowLines 屬性
property ShowLines: Boolean;
如果該屬性為True,則顯示子節點與其對應的父節點之間的連線。根節點不自動連線,要連線根節點,必須將ShowRoot屬性也設為True。
# 12.1.19. ShowRoot 屬性
property ShowRoot: Boolean;
要顯示連線最頂層節點的連線,可將樹狀檢視的該屬性和ShowLines屬性均設定為True。
# 12.1.20. SortType 屬性
property SortType: TSortType;
該屬性用於確定樹狀檢視的節點是否動排序。一曰.樹狀檢視被排序,則丟失原層次。即使將該屬性設定回stNone,也不恢復原來專案的順序。該屬性的取值如下。
- stNone:沒有排序。
- stData:當Data對像或SortType改變時,該專案排序。
- stBoth: 4 Data對像、Caption或SortType改變時,該專案排序。
- stText:當Caption或SortType改變時,該專案排序。
# 12.1.21. StateImages 屬性
property StateImages: TCustomImageList;
該屬性用於提供一組表示樹狀檢視節點狀態的點陣圖,狀態影象作為附加的影象顯示在專案圖示的左邊。
# 12.1.22. TopItem 屬性
property TopItem: TTreeNode;
該屬性用於指定樹狀檢視的最頂層節點,當其改變時,樹狀檢視垂直滾動,以使指定的節點在樹狀檢視中處於頂層。
# 12.2. 事件
- TTreeView元件主要事件列表
事件 | 何時觸發 |
---|---|
OnAddition | 當增加新結點時觸發該事件 |
OnAdvancedCustomDraw | 當繪製元件檢視時觸發該事件 |
OnAdvancedCustomDrawItem | 當繪製樹形結點時觸發該事件 |
OnChange | 當結點選擇從一個轉移到另外一個后觸發該事件 |
OnChanging | 當結點選擇正在從一個轉移到另外一個時觸發該事件 |
OnClick | 當用于點選元件時觸發該事件 |
OnCollapsed | 當一個結點收縮后觸發該事件 |
OnCollapsing | 當一個結點正在收縮時觸發該事件 |
OnCompare | 當兩個結點因為分類需要比較時觸發該事件 |
OnContextPopup | 當時觸發該事件 |
OnCreateNodeClass | 當樹形檢視中正在新增結點時觸發該事件 |
OnCustomDraw | 當繪製樹形檢視前觸發該事件 |
OnCustomDrawItem | 當繪製屬性檢視結點前觸發該事件 |
OnDblClick | 當雙擊元件時觸發該事件 |
OnDeletion | 當刪除樹形檢視時觸發該事件 |
OnEdited | 當修改結點的文字屬性后觸發該事件 |
OnEditing | 當開始修改結點的文字屬性時觸發該事件 |
OnEnter | 當元件捕獲輸入焦點時觸發該事件 |
OnExit | 當焦點轉移至其他元件時觸發該事件 |
OnExpanded | 當結點展開后觸發該事件 |
OnExpanding | 當結點展開時觸發該事件 |
OnKeyDown | 當元件捕獲焦點時按下任意按鍵時觸發該事件 |
OnKeyPress | 當某個按鍵按下時觸發該事件 |
# 12.3. 方法
方 法 | 描 述 |
---|---|
AlphaSort | 該方法以字母順序排列樹狀檢視的節點,如果成功,則返回True。若要樹狀檢視保持所有節點的排序,可使用SortType屬件 |
ClearSelection | 取消所有的選擇節點 |
Deselect | 取消選定節點 |
FindNextToSelect | 返回下一個可選擇的節點 |
FullCollapse | 摺疊樹狀檢視元件中的所有節點,呼叫這個方法可隱含樹狀檢視中的所有節點 |
FullExpand | 擴嵌樹狀檢視元件中的所有節點,呼叫這個方法可顯示樹狀檢視中的所有節點 |
GetHitTestlnfoAt | 呼叫該方法可確定參數X和Y指定的點位於樹狀檢視的哪一個部分 |
GetNodeAt | 呼叫該方法可訪問X和Y參數指定的位置處的節點,X和Y指定 相對於樹狀檢視左上角的畫素位置。如果這個位置沒有節點,則該方法返回NULL |
GetSelections | 產生一個OnGetSelections事件並清空Alist,然後將所有選擇節點對像複製到其中 |
IsEditing | 如果樹狀檢視的節點標籤正被編輯,則該方法返回True |
LoadFromFile | 使用該方法可從檔案中重新獲得樹狀檢視數據並把數據調入樹狀檢視 |
LoadFromStream | 使用該方法可從指定的流中讀入樹狀檢視的節點 |
SaveToFile | 利用該方法可將樹狀檢視的數據儲存在文字檔案中,使用LoadFromFile方法可將該檔案重新調入新的樹狀檢視對像中 |
SaveToStream | 使用該方法可流出樹狀檢視的數據,使用LoadFromStream方法可使數據流入到另外的樹狀檢視對像中 |
Select | 選擇一個或多個節點 |
SubSelect | 鎖定節點的選擇狀態 |
# 12.3.1. AlphaSort 方法
function AlphaSort([ARecurse: Boolean]): Boolean;
以字母順序排列樹狀檢視的節點,如果成功,則返回True。若要樹狀檢視保持所有節點的排序,可使用SortType屬性。
# 12.3.2. ClearSelection 方法
procedure ClearSelection(KeepPrimar>,: Boolean = False); virtual;
取消所有的選擇節點。
語法示例:
FThis.TreeView1.ClearSelection(False);
# 12.3.3. FindNextToSelect方法
function FindNextToSelect: TTreeNode; virtual;
該方法用於返回下一個可選擇的節點。
# 12.3.4. FullCollapse 方法
procedure FullCollapse;
該方法用於摺疊樹狀檢視元件中的所有節點,呼叫這個方法可隱含樹狀檢視中的所有節點。如果ShowButtons為True,則所有按鈕將從「-」變為「 + 」。
# 12.3.5. FullExpand 方法
procedure FullExpand;
該方法用於擴充套件樹狀檢視元件中的所有節點,呼叫這個方法可顯示樹檢視中的所有節點。如果ShowButtons為True,則所有按鈕將從「+」變為「-」。
# 12.3.6. GetNodeAt 方法
function GetNodeAt(X, Y: Integer): TTreeNode;
呼叫該方法可訪問X和Y參數指定的位置處的節點,X和Y指定相對於樹狀檢視左上角 的畫素位置。如果這個位置沒有節點,則該方法返回NULL。
# 12.3.7. GetSelections 方法
function GetSelections(AList: TList): TTreeNode;
該方法產生一個OnGetSelections事件並淸空Alist,然後將所有選擇節點對像複製到其中。 該方法返回的是Selected屬性的值。
# 12.3.8. IsEditing 方法
function IsEditing: Boolean;
如果樹狀檢視的節點標籤正被編輯,該方法返回True。
# 12.3.9. LoadFromFile 方法
procedure LoadFromFile(const FileName: string);
使用該方法可從檔案中重新獲得樹狀檢視數據並把數據調入樹狀檢視。
# 12.3.10. LoadFromStream 方法
procedure LoadFromStream(Stream: TStream);
使用該方法可從指定的流中讀入樹狀檢視的節點,例如應用程式可將樹狀檢視顯示的資訊作為一個Binary Large Object (BLOB)欄位中的數據儲存。該方法使用TBlobStream對象可重新獲得數據。
# 12.3.11. SaveToFile 方法
procedure SaveToFile(const FileName: string);
利用該方法可將樹狀檢視的數據儲存到文字檔案中,使用LoadFromFile方法可將該檔案重新調入新的樹狀檢視對像中。
# 12.3.12. SaveToStream 方法
procedure SaveToStream(Stream: TStream);
使用該方法可流出樹狀檢視的數據,使用LoadFromStream方法可將數據流入到另外的樹 狀檢視對像中。
# 12.3.13. Select 方法
procedure Select(const Nodes: array of TTreeNode); overload; virtual;
procedure Select(Nodes: TList); overload; virtual;
procedure Select(Node: TTreeNode; ShiftState: TShiftState = []); overload; virtual;
2
3
利用該方法可選擇一個或多個節點。在前而兩個過程中,選中Nodes參數中的所有節點, 取消其他節點的選定。在第3個過程中,選擇的節點如同單擊選中一樣。
# 12.3.14. Subselect 方法
procedure Subselect(Node: TTreeNode; Validate: Boolean = False); virtual;
該方法用於鎖定節點的選擇狀態。當MultiSelect為False時呼叫該方法將出現ETreeViewError 異常。
# 13. TListView元件
TListView元件可以用來顯示各項帶圖示的列表,包括大圖示和小圖示的;也可以用來顯示帶有子項的列表,Windows操作系統的資源管理器中資料夾視窗就是最好的應用例子,就是我們打開"我的電腦"后能夠看到各個碟符的界面。TListView元件基本能實現和DBGrid元件一樣的功能,很多時候根據程式需要可以完全用TListView來替換DBGrid;只要將TListView的ViewStyle屬性設為vsReport,然後再配合其他幾個屬性,就可以實現DBGrid中的繫結資料庫、數據新增、修改、刪除、不同列的不同顏色顯示及單擊標題排序等等一系列常用的功能。
# 13.1. 屬性
- TListView元件主要屬性
屬性 | 功能說明 |
---|---|
Action | 設定元件與動作的關聯 |
Align | 決定容器(父元件)對該元件的歸屬方式 |
AllocBy | 規定列表檢視在記憶體中可儲存的專案數 |
Anchors | 該屬性指定元件如何停放在其父窗體中 |
BevelEdges | 使用該屬性可獲得或設定元件成斜角的邊緣 |
BevelInner | 使用該屬性可指定內斜角是否具有凸、凹或平坦的外觀 |
BevelKind | 使用該屬性可修改斜角的風格、即斜角的傾斜程度 |
BevelOuter | 使用該屬性可指定外斜角是否具有凸、凹或平坦的外觀,外斜角直接顯示在邊框內或內斜角的外面 |
BevelWidth | 使用該屬性可指定內外斜角的畫素寬度 |
BiDiMode | 使用該屬性可為元件指定雙向模式,控制文字的順序、垂直滾動條的位置以及是否改變對齊方式 |
BorderStyle | 確定列表檢視元件是否有邊框 |
BorderWidth | 使用該屬性可獲得或設定元件邊框的寬度 |
BoundingRect | 讀取該屬性可獲得封裝列表檢視中所有專案的矩形螢幕座標,這個屬性允許應用程式調整元件的大小,以適合專案或確定滑鼠是否在列表上 |
CheckBoxes | 列表專案旁邊是否顯示選擇框 |
ChangeDelay | 改變結點被選擇直至OnChage事件發生時的時間延遲 |
Checkboxes | 當ViewStyle屬性為vsList或vsReport時,設定該屬性為True可在列表項的旁邊顯示檢查框 |
Color | 規定元件的背景顏色 |
Columns | 使用該屬性可在列表檢視中新增或刪除列,或編輯其顯示屬性 |
Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大值或最小值時,重新調整元件的大小不能超出該限制 |
Ctl3D | 規定元件的視覺外觀是3D還是2D |
DoubleBuffered | 確定元件影象是直接在視窗渲染或者是首先在內容中產生點陣圖 |
DragCursor | 當拖動元件時顯示的滑鼠指針影象型別 |
DragKind | 使用該屬性可獲取或設定元件是拖動操作還是拖動/停靠操作 |
DragMode | 使用該屬性可控制使用者何時可拖動元件 |
Enabled | 規定元件是否響應滑鼠、鍵盤和計時器事件 |
Font | 規定元件中的文字字型屬性 |
FullDrag | 當標題欄被拖動時是否重繪 |
GridLines | 是否繪製表格線 |
GroupHeaderImages | 影象列表 |
Groups | TListGroup列表用於分組列表專案 |
GroupView | 開啟或關閉組檢視 |
HideSelection | 當焦點移至其他元件時原結點是否仍繼續保持選擇狀態 |
HotTrack | 當滑鼠移動至列表專案上時列表專案是否高亮顯示 |
HotTrackStyles | 高亮顯示的風格選擇 |
HoverTime | 當選擇列表專案時需在其上停留的時間,單位為ms |
IconOptions | 確定在列表檢視排列中如何顯示點陣圖。將ViewStyle屬性設定為vsIcon或vsSmallIcon時該屬性有效 |
Images | 規定與樹形列表關聯的圖片列表 |
LargeImages | 當ViewStyle屬性為vsIcon時的圖示列表 |
Items | 列出顯示在檢視元件中的專案 |
MultiSelect | 元件是否可以選擇多個結點 |
OwnerData | 列表檢視元件是否虛擬化 |
OwnerDraw | 列表檢視是否響應OnDrawItem事件 |
ParentBiDiMode | 使用該屬性可獲得或設定元件是否使用其父元件的BiDiMode屬性 |
ParentColor | 規定元件是否繼承父元件的Color屬性 |
ParentCtl3D | 規定元件是否繼承父元件的Ctl3D屬性 |
ParentDoubleBuffered | 規定元件是否繼承父元件的DoubleBuffered屬性 |
ParentFont | 規定元件是否繼承父元件的字型屬性資訊 |
ParentShowHint | 使用該屬性可確保窗體中的所有元件以統一格式顯示或不顯示其幫助提示 |
PopupMenu | 將元件與功能表欄中的位置繫結 |
ReadOnly | 使用該屬性可確定列表檢視能否用於輸入數據 |
RowSelect | 當結點整行被選中時是否高亮顯示 |
SelCount | 讀取該屬性可確定目前選擇的專案數量,為1時,使用Selected屬性可訪問所選專案;大於1時,則檢查列表項的Selected屬性 |
ShowColumnHeaders | 是否顯示標題頭 |
ShowHint | 當滑鼠游標懸停在元件上時是否顯示提示內容 |
ShowWorkAreas | 工作區的視覺屬性是否顯示 |
SmallImages | 當ViewStyle屬性不為vsIcon時的圖示列表 |
SortType | 決定樹形檢視自動分類的形式 |
StateImages | 選擇用於顯示狀態的影象列表 |
TabOrder | 規定元件在父元件中的換欄位置序號 |
TabStop | 使用該屬性可允許或不允許用Tab鍵訪問元件 |
ViewStyle | 列表專案的展示形式 |
Visible | 規定該元件在窗體上是否可見 |
# 13.1.1. BoundingRect 屬性
property BoundingRect: TRect;
讀取該屬性可獲得封裝列表檢視中所有專案的矩形螢幕座標,這個屬性允許應用程式調整元件的大小,以適合專案或確定滑鼠是否在列表專案上。使用該屬性時,列表檢視的ViewStyle屬性必須設定為vslcon或vsSmallIcon。 程式碼示例:
var
Rect:TRect:
begin
Rect := FThis.ListView1.BoundingRect;
FThis.Listview1.Height := Rect.Bottom;
end;
2
3
4
5
6
# 13.1.2. CheckBoxes 屬性
property CheckBoxes: Boolean;
當ViewStyle屬性設為vsList或vsReport時,如果把CheckBoxes屬性設為True,列表檢視中項的旁邊將顯示覆選框,如同TCheckListBox元件一樣。
# 13.1.3. Column 屬性
property Column[Index: Integer]: TListColumn;
讀取該屬性可訪問TListColumn對象,該對像描述報告風格列表檢視中的列屬性。Index 參數是Columns屬性陣列中的列索引。只有當ViewStyle屬性為vsReport時Column有效。
# 13.1.4. ColumnClick 屬性
property ColumnClick: Boolean;
使用該屬性可指定,使用者單擊列標題時是否發生OnColumnClick事件。該屬性為True時發生OnColumnClick事件;否則不發生該事件。
# 13.1.5. Columns屬性
property Columns: TListColumns;
如果ViewStyle屬性設為vsReport,列表檢視的每一項將分成多欄,每一欄都是一個TListColumn對象,所有的欄構成TListColumn對象。在設計期,可以單擊Columns屬性旁的省略號"…"按鈕打開"EditingColumns"視窗,然後建立和編輯欄的屬性。 程式碼示例:
FThis.ListView1.Columns.Add;
# 13.1.6. GridLines 屬性
property GridLines: Boolean;
設定該屬性為True,可在列表檢視中新增專案分隔行。只有ViewStyle屬性為vsReport時 該屬性才有效。
# 13.1.7. HideSelection 屬性
property HideSelection: Boolean;
如果此屬性設為True,當輸入焦點從列表檢視移到其他元件上時,原先選擇的節點將不再處於被選擇狀態。如果此屬性設為False,當輸入焦點移走時仍然保持選擇狀態。
# 13.1.8. HotTrack 屬性
property HotTrack: Boolean;
該屬性為True時,滑鼠經過列表項上時以高亮顯示;否則不以高亮顯示。
# 13.1.9. HotTrackStyles 屬性
property HotTrackStyles: TListHotTrackStyles;
使用該屬性可指定熱點跟蹤的風格,該風格指定了滑鼠通過列表項時列表檢視提供的反饋型別。
- HtHandPoint:滑鼠指示器為手形。
- HtUnderlineCold:在滑鼠指定專案后不跟蹤時,在專案下劃線。
- HtUnderlineHot:在滑鼠指定的專案下劃線。
# 13.1.10. ItemFocused屬性
property ItemFocused: TListltem;
此屬性指定或返回列表檢視中具有輸入焦點的項。一個列表檢視中可以同時有多個項被選擇,但只能有一個項具有輸入焦點。
# 13.1.11. Itemlndex 屬性
property ItemIndex: Integer;
讀取該屬性可確定所選的專案。列表中第1項的索引為0,列表中第2項的索引為1,依次類推。該屬性為-1表示無選擇項。如果列表元件支援多選擇項,則該屬性為有焦點的所選項的索引。
# 13.1.12. Items 屬性
property Items: TListltems;
使用該屬性可直接訪問表示列表中專案的TListltem對象。在設計程式時,在對像觀察器中設定該屬性顯示ListView Items Editor對訊框,利用此對話方塊可新增、刪除專案或子專案,並編輯其顯示屬性。在程式運行時,可使用每個專案的Caption、Imagelndex和Statelndex屬性改變列表項的外觀。
# 13.1.13. Largelmages 屬性
property Largelmages: TCustomlmageList;
當ViewStyle屬性為vslcon時,設定該屬性可指定列表中專案旁邊將顯示的點陣圖。Items列表中的每一項與設定Imagelndex屬性的點陣圖相關聯。
# 13.1.14. MultiSelect 屬性
property MultiSelect: Boolean;
使用該屬性可指定使用者能否在列表中選擇多個專案,為True時,可以多選;否則只能選擇一個專案。
# 13.1.15. ReadOnly 屬性
property Readonly: Boolean;
使用該屬性可確定列表檢視能否用於輸入數據,為True時,列表檢視只能顯示而不能編輯內容;否則使用者可以修改內容。
# 13.1.16. RowSelect屬性
property RowSelect: Boolean;
在ViewStyle屬性設為vsReport的前提下,如果把此屬性設為True,使用者可以一次選擇一整行。
# 13.1.17. SelCount 屬性
property SelCount: Integer;
讀取該屬性可確定,前選擇專案的數量,為1時,使用Selected屬性可訪問所選專案;大於1時,要查詢所選專案,則檢查列表項的Selected屬性。該屬性只能在MultiSelect屬性為True時大於1。
# 13.1.18. Selected 屬性
property Selected: TListltem;
使用該屬性可訪問列表中第1個所選項的屬性。當SelCount屬性為0時,該屬性為空。
# 13.1.19. ShowColumnHeaders 屬性
property ShowColumnHeaders: Boolean;
設定該屬性可指定列表檢視中的列是否顯示列標題。使用列表檢視中的列時,ViewStyle屬性必須設定為vsReport。
# 13.1.20. ShowWorkAreas屬性
property ShowWorkAreas: Boolean;
在ViewStyle屬性設為vsIcon或vsSmallIcon的情況下,通過定義工作區,可以把圖示分組,如果ShowWorkAreas屬性設為True,列表檢視將把客戶區分成幾個工作區,每個工作區的顏色由TWorkArea的Color屬性指定,標籤由TWorkArea的DisplayName屬性指定。
# 13.1.21. SmallImages 屬性
property SmallImages: TCustomImageList;
設定該屬性可指定當ViewStyle屬性為vsSmallIcon、vsList或vsReport時,在列表項旁將顯示的點陣圖。每個列表項與Imagelndex屬性指定的影象列表中的點陣圖相關聯。
# 13.1.22. SortType 屬性
property SortType: TSortType;
設定該屬性可指定列表中的專案順序。
- stNone:不重新排序。
- stData:項的Data屬性發生變化時重新排序。
- stText:項的Caption屬性發生變化時重新排序。
- stBoth:項的Data屬性或Caption屬性發生變化時重新排序。
# 13.1.23. ViewStyle屬性
ListView元件作為一個可以顯示圖示或者子項的列表元件,它最重要的屬性就是ViewStyle屬性,該屬性決定了以哪種檢視模式顯示元件的項,這四種檢視模式分別如下:
- vsIcon:大圖示檢視模式,在項的文字旁顯示大的圖示,在元件寬度足夠的情況下,項是優先以平行排列的,排列不完的則自動換行顯示在新行中。這個屬性要和TListView的LargeImages屬性一起使用;
- vsSmallIcon:小圖示檢視模式,與大圖示模式一樣,但是顯示的是小的圖示;要和TListView的SmallImages屬性一起使用;
- vsList:列表檢視模式,可以顯示小圖示,但是項是垂直排列的,只顯示單列,不能進行拖放操作;
- vsReport:詳細資料檢視模式,是最豐富的選項,可以基本實現DBGrid的所有功能;它不但允許您檢視項,還允許您檢視為各項指定的任何子項。各項在網格中顯示,它們垂直排列且其子項會顯示在列中(帶有列標頭)。對應地,只有在Details檢視模式中起作用的元件屬性為:GridLines和FullRowSelect,GridLines屬性指示在包含元件中項及其子項的行和列之間是否顯示網格線。FullRowSelect屬性指示單擊某項是否選擇其所有子項(即整行選中),Columns屬性是用來設定有哪些列,這個可以在設計時事先設定,也可以在程式中設定:
ListView1.Columns.Items[0].Caption:='列1';
ListView1.Columns.Items[1].Caption:='列2';//新增列
ListView1.Columns.Items[2].Caption:='列3';
ListView1.Columns.Items[2].Width:=300;//這裡設定列的寬度
2
3
4
TListView的Items屬性也是很重要的,用來向ListView中新增數據,Items屬性是一個TListItem類,在進行數據新增時一般先定義個TListItem類。
# 13.2. 事件
- TListView元件主要事件列表
事件 | 何時觸發 |
---|---|
OnColumnClick | 當用戶單擊欄的表頭時,將觸發該事件 |
OnColumnDragged | 當用戶用滑鼠左鍵拖動某一欄到一個新的位置時,將觸發該事件 |
OnEdited | 當用戶直接編輯修改了項的標籤后,將觸發該事件 |
OnInfoTip | 通過這個事件可以為列表檢視中的每一項加上提示 |
OnSelectItem | 當列表檢視中一個項被選擇時,將觸發這個事件 |
# 13.2.1. OnChange 事件
type TLVChangeEvent = procedure(Sender: TObject; Item: TListltem; Change: TItemChange) of object;
property OnChange: TLVChangeEvent;
2
該事件在列表中的專案改變發生,編寫其事件處理程式可響應這種改變。
# 13.2.2. OnChanging 事件
type TLVChangingEvent = procedure(Sender: TObject; Item: TListltem; Change: TItemChange; var AllowChange: Boolean) of object;
property OnChanging: TLVChangingEvent;
2
該事件在列表中的專案將要改變時發生,編寫其事件處理程式可有條件地阻止列表中的專案發生改變。
# 13.2.3. OnColumnClick事件
type TLVColumnClickEvent = procedure(Sender: TObject; Column: TListColumn) of object;
property OnColumnClick: TLVColumnClickEvent;
2
當用戶單擊欄的表頭時,將觸發該事件。這樣就可以對項進行排序。在OnColumnClick事件中有一個TListColumn型別的參數Column,此參數返回使用者單擊的欄,利用Column參數可以對使用者選中的欄進行訪問及設定。
# 13.2.4. OnColumnDragged事件
property OnColumnDragged: TNotifyEvent;
當用戶用滑鼠左鍵拖動某一欄到一個新的位置時,將觸發該事件。在使用此事件之前必須將TListView元件的FullTrag屬性設定為True,表示可以拖動欄的位置,否則不能拖動,也就不能觸發此事件。
# 13.2.5. OnColumnRightClick 事件
type
TLVColumnRClickEvent = procedure(Sender: TObject; Column: TListColumn;
Point: TPoint) of object;
property OnColumnRightClick: TLVColumnRClickEvent;
2
3
4
當用戶右擊列表檢視中的列標題時發生該事件。
# 13.2.6. OnCompare 事件
type
TLVCompareEvent = procedure(Sender: TObject; Item1, Item2: TListItem; Data:
Integer; var Compare: Integer) of object;
property OnCompare: TLVCompareEvent;
2
3
4
在列表排序期間需要比較兩個專案時發生該事件。當SortTypc屬性為stData或stBoth並在呼叫AlphaSort方法或不用SortProc參數呼叫CustomSort方法時呼叫該事件處理程式。
# 13.2.7. OnEdited事件
property OnEdited: TLVEditedEvent;
當用戶直接編輯修改了項的標籤后,將觸發該事件。OnEdited事件中有一個TListItem型別的參數Item,利用此參數可以對使用者編輯的項進行訪問;OnEdited事件中還有一個String型別的參數S,它是使用者更改項的標籤后,顯示標籤的內容。
# 13.2.8. OnEditing 事件
type
TLVEditingEvent = procedure(Sender: TObject; Item: TListItem; var
AllowEdit: Boolean) of object;
property OnEditing: TLVEditingEvent;
2
3
4
當用戶開始編輯列表項的Caption屬性時發生該事件,編寫其事件處理程式可在使用者編輯列表項的Caption屬性前執行特定的操作。設罝AllowEdit參數為False,可防止使用者編輯ListItem 參數指定的專案。該事件只在Readonly屬性為False時發生。
# 13.2.9. OnGetlmagelndex 事件
property OnGetlmagelndex: TLVNotifyEvent;
當一個專案將要在列表檢視元件中顯示時發生該事件。使用該事件可在列表檢視元件中顯示專案前為專案動態地分配一個Imagelndex。
# 13.2.10. OnGetSubItemImage 事件
type
TLVSubItemImageEvent = procedure(Sender: TObject; Item: TListItem; Subitem: Integer;
var ImageIndex: Integer) of object;
property OnGetSubItemImage: TLVSubItemImageEvent;
2
3
4
當一個子專案將要在列表檢視元件的列中顯示時發生該事件。使用該事件可在列中顯示子專案,為子專案動態地分配一個影象。該事件將過載由列表項的Subltemlmages屬性指定的值。
# 13.2.11. OnInsert 事件
type TLV Deleted Event = procedure(Sender: TObject; Item: TListltem) of object;
property Onlnsert: TLVDeleted Event;
2
在選中列表檢視中插入一新專案時發生該事件,Item參數為已插入到Items屬性的Tlistltem 對象。
# 13.2.12. OnSelectltem 事件
properly OnSelectItem: TLVSelectItemEvent;
當選中列表檢視元件中的專案時發生該事件。OnSelectItem事件中有一個TListItem型別的參數Item,利用此參數可以對使用者編輯的項進行訪問;OnSelectItem事件中還有一個Boolean型別的參數Selected。每次選擇一個新項時將兩次觸發此事件,一次是釋放以前被選擇的項,Selected參數取值為False,代表釋放Item參數指定的項;另外一次是選擇新的項,Selected參數取值為True,代表選擇Item參數指定的項。
# 13.3. 方法
- TListView元件主要方法列表
方法 | 功能描述 |
---|---|
AlphaSort | 將列表檢視中的項按標籤的字母順序排序 |
Arrange | 重排圖示 |
FindCaption | 此方法的呼叫可以搜索並返回一個TListItem型別的項 |
Scroll | 此方法可以使列表檢視滾動 |
StringWidth | 此方法用於返回字串的寬度 |
UpdateItems | 此方法可以重畫指定範圍內的項 |
# 13.3.1. AlphaSort方法
function AlphaSort: Boolean;
此方法可以將列表檢視中的項按標籤的字母順序排序。例如使用下面的程式碼就能夠將ListView1元件的項按標籤的字母順序排序:
FThis.ListView1.AlphaSort;
# 13.3.2. Arrange方法
type
TListArrangement = (arAlignBottom, arAlignLeft, arAlignRight, arAlignTop,
arDefault, arSnapToGrid);
procedure Arrange(Code: TList Arrangement);
2
3
4
此方法用於重排圖示。Arrange方法只有在ViewStyle屬性為vsIcon或vsSmallIcon時才起作用。Arrange方法中有一個TListArrangement型別的參數Code,此參數用於指定圖示的排列方式,其取值及功能如下。
- arAlignBottom:圖示底部對齊排列。
- arAlignLeft:圖示左側對齊排列。
- arAlignRight:圖示右側對齊排列。
- arAlignTop:圖示頂部對齊排列。
- arDefault:按照視窗剛建立時的風格將圖示從頂部排列。
- arSnapToGrid:將圖示對齊到最近的網格,此值不支援虛擬模式。
# 13.3.3. Clear 方法
procedure Clear; override;
該方法用於刪除列表元件中的所有專案。
程式碼示例:
FThis.ListViewl.Clear;
# 13.3.4. ClearSelection 方法
procedure ClearSelection; override;
呼叫該方法可取消列表元件中的選擇項。
# 13.3.5. CopySelection 方法
procedure CopySelection(Destination: TCustomListControl); override;
該方法用於把選擇項複製到另一個TCustomListControl子類中,Destination參數為接收專案的列表。
# 13.3.6. CustomSort 方法
type TLVCompare = function(IParam 1, IParam2, IParamSort: Integer): Integer stdcall;
function CustomSort(SortProc: TLVCompare; IParam: Longint): Boolean;
2
呼叫該方法可利用SortProc參數定義排序函式排序列表中的專案。SortProc參數指定比較 通過IParam1和IParam2傳遞的列表項的排序函式。排序函式返回一個整數,為0,表示IParaml 和IParam2相同;大於0,表示IParam1大於lParam2;小於0,表示IParam1小於IParam2。 CustomSort函式的IParam參數可選值作為第3個參數傳遞到排序函式中。如果排序成功,那麼 該方法返回True。
# 13.3.7. DleteSelected 方法
procedure DeleteSelected; override;
該方法用於刪除列表元件中的所有已選專案。
# 13.3.8. FindCaption方法
function FindCaption(StartIndex: Integer; Value: string; Partial, Inclusive, Wrap: Boolean): TListItem;
此方法的呼叫可以搜索並返回一個TListItem型別的項。FindCaption方法中有5個參數,功能如下。
- StartIndex:Integer型別,用於指定開始搜索的起始位置。
- Value:String型別,指定要搜索的項的標題符合的內容。
- Partial:Boolean型別,取True值,查詢標題開頭為Value參數指定的項;取False值,查詢標題與Value參數指定的內容相同的項。
- Inclusive:Boolean型別,取True值,被StartIndex指定的項是第1個被選中的;取False值,開始查詢的位置從StartIndex擬定的下一個位置開始。
- Warp:Boolean型別,取True值,搜索將從開始找到最後;取False值,搜索從StartIndex位開始查詢,找到最後。
FindCaption方法返回的是第1個被找到的符合條件的項,如果沒找到符合條件的,則返回列表中的第1項。
# 13.3.9. GetItemAt 方法
function GetItemAt(X, Y: Integer): TListItem;
呼叫該方法可獲得在X和Y參數指定位置查詢列表項的TListItem對象,X和Y為指定位置的畫素座標。如果沒有查詢到列表項,則返回空。
# 13.3.10. GetNearestltem 方法
function GetNearestItem(Point: TPoint; Direction: TSearchDirection): TListItem;
呼叫該方法從Point參數指定的位置開始查詢,向Direction參數指定的方向移動,直到找到一個列表項。如果沒有查詢到列表項,則返回空。
# 13.3.11. GetNextltem 方法
function GetNextItem(StartItem: TListltem; Direction: TSearchDirection; States: TItemStates): TListItem;
呼叫該方法可從StartItem參數以Direction參數指定的方向查詢下一個列表項。
# 13.3.12. GetSearchString 方法
function GetSearchString: string;
呼叫該方法可在列表檢視有焦點時獲得使用者輸入的字元序列。每,使用者輸入一個字元時, 列表檢視就新增字元到查詢字串,並查詢匹配的項。
# 13.3.13. IsEditing 方法
function IsEditing: Boolean;
呼叫該方法可確定使用者足否正在編輯列表中的專案標題。如果使用者正在編輯一個專案,則返回True;否則返回False。
# 13.3.14. SelectAll 方法
procedure SelectAll; override;
該方法用於選中檢視中的所有專案。
# 14. THeaderControl元件
表頭元件(THeaderControl)THeaderControl元件提供了一系列可改變尺寸的列,一般與列表框配合使用,用於把列表框中的資訊歸類。該元件可以分成幾節,使用者可以使用游標調整節的寬度或者把節拖到另一個位置,拖動時將觸發節拖動事件(OnSectionTrack)。THeaderControl元件提供了標準的頭元素,程式運行時操作表頭並不會影響它下面的元件。比如,當表頭改變尺寸時,它下面元件的列也應該隨之改變,此時,開發者必須響應THeaderControl元件的尺寸改變事件(OnSetionResize),通過編寫程式碼才能達到這一目的。
# 14.1. 屬性
- THeaderControl元件主要屬性
屬性 | 功能說明 |
---|---|
Align | 決定容器(父元件)對該元件的歸屬方式 |
Anchors | 該屬性指定元件如何停放在其父窗體中 |
BiDiMode | 使用該屬性可為元件指定雙向模式,控制文字的順序、垂直滾動條的位置以及是否改變對齊方式 |
BorderWidth | 使用該屬性可獲得或設定元件邊框的寬度 |
Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大值或最小值時,重新調整元件的大小不能超出該限制 |
DoubleBuffered | 確定元件影象是直接在視窗渲染或者是首先在內容中產生點陣圖 |
DragCursor | 當拖動元件時顯示的滑鼠指針影象型別 |
DragKind | 使用該屬性可獲取或設定元件是拖動操作還是拖動/停靠操作 |
DragMode | 使用該屬性可控制使用者何時可拖動元件 |
Enabled | 規定元件是否響應滑鼠、鍵盤和計時器事件 |
Font | 規定元件中的文字字型屬性 |
FullDrag | 當標題欄被拖動時是否重繪 |
HotTrack | 當滑鼠移動至列表專案上時列表專案是否高亮顯示 |
Images | 規定關聯的圖片列表 |
ParentBiDiMode | 使用該屬性可獲得或設定元件是否使用其父元件的BiDiMode屬性 |
ParentDoubleBuffered | 規定元件是否繼承父元件的DoubleBuffered屬性 |
ParentFont | 規定元件是否繼承父元件的字型屬性資訊 |
ParentShowHint | 使用該屬性可確保窗體中的所有元件以統一格式顯示或不顯示其幫助提示 |
PopupMenu | 將元件與功能表欄中的位置繫結 |
ShowHint | 當滑鼠游標懸停在元件上時是否顯示提示內容 |
Section | 訪問表頭元件中所有節 |
Visible | 規定該元件在窗體上是否可見 |
# 14.1.1. Images屬性
用於指定一個影象列表,其中的影象將顯示在節的標籤旁邊。每個節(THeadSection對像)通過它的ImageIndex屬性指定一個影象。
# 14.1.2. Sections屬性
此屬性可以訪問表頭元件中所有的節。例如要在運行期動態地增加一節,程式示例程式碼如下:
var
MyHeadSection:TheadSection
begin
HeaderControl1.Section1.Items.Clear;
MyHeadSection:=HeaderControl1.Sections.Items.Add;
HeaderControl1.Sections.Items[0].Text:=MySection;
HeaderControl1.Sections.Items[0].Width:=100
end;
2
3
4
5
6
7
8
# 14.1.3. Style屬性
此屬性用於設定表頭元件風格,預設值是hsButtons。若設為hsFlat,表頭的節(按鈕)是平坦的。它有如下兩個使用者可選值。
hsFlat
:表頭的節是平坦風格的hsButton
:表頭的節是按鈕風格的
# 14.2. 事件
- THeaderControl元件主要事件列表
事件 | 何時觸發 |
---|---|
OnDrawSection | 當用戶選擇這個節或節的寬度發生了變化需要重畫時,將觸發該事件 |
OnSectionClick | 當用戶單擊這個節時就相當於單擊一個按鈕,將觸發該事件 |
OnSectionDrag | 當用戶試圖拖動某一節來改變它的順序時,將觸發該事件 |
OnSectionEndDrag | 當用戶拖動某一節並且改變了它的順序后,將觸發該事件 |
OnSectionResize | 當用戶用游標拖動節與節之間的分隔線導致節的寬度改變時,將觸發該事件 |
OnSectionTrack | 當用戶正在用游標拖動節與節之間的分隔線試圖改變節的寬度時,將觸發該事件 |
# 14.2.1. OnDrawSection事件
如果節(THeaderSection對像)的Style屬性設為hsOwnerDraw(手動重畫),當用戶選擇了這個節或節的寬度發生了變化需要重畫時,將觸發這個事件。
# 14.2.2. OnSectionResize事件
當用戶用游標拖動節與節之間的分隔線導致節的寬度改變時,將觸發該事件。 OnSectionResize事件設定了如下兩個訊息參數。
- HeaderControl:節所屬的表頭元件。
- Section:寬度改變的節。
# 14.2.3. OnSectionTrack事件
當用戶正在用游標拖動節與節之間的分隔線試圖改變節的寬度時,將觸發該事件。其中,State參數列示目前的操作狀態。 OnSectionTrack事件設定了如下幾個參數:
HeaderControl
:節所屬的表頭元件Section
:寬度改變的節State
:表示目前的操作狀態,取值有3種,tsTrackBegin表示使用者已按下節與節之間的分隔線準備拖動;tsTrackMove表示分隔線正在被拖動;tsTrackEnd表示拖放已結束,使用者釋放了游標。Width
:開始拖動的節。
# 15. TstatusBar元件
狀態列元件(TStatusBar)TStatusBar元件是用來顯示目前程式狀態的。狀態列可以分為多個面板,用來顯示不同狀態的內容。
# 15.1. 屬性
- TStatusBar元件主要屬性
屬性 | 功能說明 |
---|---|
Align | 決定容器(父元件)對該元件的歸屬方式 |
Anchors | 該屬性指定元件如何停放在其父窗體中 |
AutoHint | 如果此屬性設定為True,每個元件Hint屬性上的文字自動提示在TStatusBar元件的第1個窗格上 |
BiDiMode | 使用該屬性可為元件指定雙向模式,控制文字的順序、垂直滾動條的位置以及是否改變對齊方式 |
BorderWidth | 使用該屬性可獲得或設定元件邊框的寬度 |
Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大值或最小值時,重新調整元件的大小不能超出該限制 |
Canvas | 此屬性返回狀態列的畫布 |
DoubleBuffered | 確定元件影象是直接在視窗渲染或者是首先在內容中產生點陣圖 |
DragCursor | 當拖動元件時顯示的滑鼠指針影象型別 |
DragKind | 使用該屬性可獲取或設定元件是拖動操作還是拖動/停靠操作 |
DragMode | 使用該屬性可控制使用者何時可拖動元件 |
Enabled | 規定元件是否響應滑鼠、鍵盤和計時器事件 |
Font | 規定元件中的文字字型屬性 |
FullDrag | 當標題欄被拖動時是否重繪 |
Panels | 明確是否選中該覈取方塊 |
ParentBiDiMode | 使用該屬性可獲得或設定元件是否使用其父元件的BiDiMode屬性 |
ParentDoubleBuffered | 規定元件是否繼承父元件的DoubleBuffered屬性 |
ParentFont | 規定元件是否繼承父元件的字型屬性資訊 |
ParentShowHint | 使用該屬性可確保窗體中的所有元件以統一格式顯示或不顯示其幫助提示 |
PopupMenu | 將元件與功能表欄中的位置繫結 |
ShowHint | 當滑鼠游標懸停在元件上時是否顯示提示內容 |
SimplePanel | 如果此屬性設定為True,狀態列只有一個窗格,窗格上顯示的資訊由SimpleText屬性指定 |
SimpleText | 狀態列上的顯示的資訊由此屬性決定 |
SizeGrip | 如果此屬性設定為True,允許游標拖動狀態列改變其尺寸 |
Section | 訪問表頭元件中所有節 |
Visible | 規定該元件在窗體上是否可見 |
# 15.1.1. AutoHint屬性
如果此屬性設為True,每個元件Hint屬性上的文字自動提示在TStatusBar元件的第1個窗格上。
# 15.1.2. SimplePanel屬性
如果此屬性設為True,狀態列將只有一個窗格,窗格上顯示的資訊由SimpleText屬性指定。程式示例程式碼如下:
# 15.1.3. SimpleText屬性
此屬性決定狀態列上顯示的資訊。此屬性在編輯時設定不起作用,程式運行後進行設定,發現狀態列上的欄目都消失,只顯示SimpleText屬性設定的內容,但是如果被其他視窗覆蓋后狀態列將返回原狀態。
# 15.1.4. SizeGrip屬性
如果此屬性設為True,狀態列的右下角會顯示一個三角形,用滑鼠游標單擊這個三角形並拖動可以改變狀態列的尺寸。注意,此時不能將Align屬性設定為alBottom、alRight或alClient。
# 15.2. 事件
- THeaderControl元件主要事件列表
事件 | 何時觸發 |
---|---|
OnCreatePanelClass | 當狀態列將要被建立時,將觸發該事件 |
OnDrawPanel | 當重繪狀態列檢視時,將觸發該事件 |
OnHint | 當狀態列的資訊提示出現前,將觸發該事件 |
# 16. TToolBar元件
工具欄元件(TToolBar)為使用者提供了快捷功能表的訪問方式。
# 16.1. 屬性
- TToolBar元件主要屬性
屬性 | 功能說明 |
---|---|
ButtonCount | 工具欄中的按鈕數量 |
Buttons | 工具欄中的按鈕(TToolButton)列表 |
Canvas | 工具欄的畫布 |
CustomizeKeyName | 工具欄按鈕自定義按鈕配置Key名稱 |
CustomizeValueName | 工具欄按鈕自定義按鈕配置Value名稱 |
RowCount | 工具欄中的列數 |
Align | 決定容器(父元件)對該元件的歸屬方式 |
AllowTextButtons | 是否允許僅包含文字內容的按鈕顯示在工具欄中 |
Anchors | 該屬性指定元件如何停放在其父窗體中 |
BorderWidth | 使用該屬性可獲得或設定元件邊框的寬度 |
ButtonHeight | 規定工具欄中按鈕(TButton)的高度 |
Caption | 定義元件的文字描述資訊 |
Color | 規定元件的背景顏色 |
Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大值或最小值時,重新調整元件的大小不能超出該限制 |
Ctl3D | 規定元件的視覺外觀是3D還是2D |
Customizeable | 使用者是否在程式運行時可以自定義工具欄 |
DisableImages | 規定顯示在不啟用按鈕中的圖片 |
DoubleBuffered | 確定元件影象是直接在視窗渲染或者是首先在內容中產生點陣圖 |
DragCursor | 當拖動元件時顯示的滑鼠指針影象型別 |
DragKind | 使用該屬性可獲取或設定元件是拖動操作還是拖動/停靠操作 |
DragMode | 使用該屬性可控制使用者何時可拖動元件 |
Enabled | 規定元件是否響應滑鼠、鍵盤和計時器事件 |
Flat | 使工具欄適應工具按鈕的大小 |
Font | 規定元件中的文字字型屬性 |
HideClippedButtons | 隱藏被剪下的按鈕 |
HotImages | 當指向按鈕時顯示的圖片的列表 |
Images | 規定與工具欄關聯的圖片列表 |
Indent | 工具欄左側的空白 |
Menu | 與功能表欄專案同步 |
ParentDoubleBuffered | 規定元件是否繼承父元件的DoubleBuffered屬性 |
ParentFont | 規定元件是否繼承父元件的字型屬性資訊 |
ParentShowHint | 使用該屬性可確保窗體中的所有元件以統一格式顯示或不顯示其幫助提示 |
PopupMenu | 將元件與功能表欄中的位置繫結 |
ShowHint | 當滑鼠游標懸停在元件上時是否顯示提示內容 |
TabOrder | 規定元件在父元件中的換欄位置序號 |
TabStop | 使用該屬性可允許或不允許用Tab鍵訪問元件 |
Transparent | 工具欄是否可以變形 |
Visible | 規定該元件在窗體上是否可見 |
Wrapable | 使工具欄元件自動換行 |
# 16.2. 事件
- TToolBar元件主要事件列表
事件 | 何時觸發 |
---|---|
OnAdvancedCustomDraw | 當狀工具欄背景繪製時的分離階段,將觸發該事件 |
OnAdvancedCustomDrawButton | 當狀工具欄按鈕繪製時的分離階段,將觸發該事件 |
OnCustomDraw | 當工具欄開始繪製時,將觸發該事件 |
OnCustomDrawButton | 當工具欄按鈕開始繪製時,將觸發該事件 |
OnCustomizeAdded | 當用戶向工具欄新增按鈕時觸發該事件 |
OnCustomizeCanDelete | 當用戶嘗試刪除工具欄中的按鈕時,將觸發該事件 |
OnCustomizeCanInsert | 當用戶嘗試向工具欄中新增按鈕時,將觸發該事件 |
OnCustomized | 當用戶完成對工具欄的自定義更改時,將觸發該事件 |
OnCustomizeDelete | 當用戶從工具欄中刪除按鈕時觸發該事件 |
OnCustomizeNewButton | 當用戶向工具欄中新增按鈕時,觸發該事件 |
OnCustomizeReset | 當用戶取消對工具欄的自定義修改時,觸發該事件 |
OnCustomizing | 當用戶打開自定義對話方塊用於對工具欄進行自定義時,觸發該事件 |
# 16.3. 方法
- TToolBar元件主要方法列表
方法 | 功能描述 |
---|---|
GetChildren | 讓流系統按照功能表顯示的順序載入並儲存子元件 |
TrackMenu | 工具欄的快捷鍵按下時呼叫 |
# 17. TCoolBar元件
TControlBar作一個工具欄風格的可以自動停靠的功能表。
# 17.1. 屬性
- TCoolBar元件主要屬性
屬性 | 功能說明 |
---|---|
Align | 決定容器(父元件)對該元件的歸屬方式 |
Anchors | 該屬性指定元件如何停放在其父窗體中 |
AutoSize | 元件尺寸自適應于內容 |
BandBorderStyle | 決定TCoolBand的band的邊緣尺寸 |
BandMaxSize | 當TCoolBand最大化時的尺寸限制 |
Bands | 列舉欄目中的TCoolBands |
Bitmap | 定義用於顯示在TCoolBar的band中的影象 |
BorderWidth | 使用該屬性可獲得或設定元件邊框的寬度 |
Color | 規定元件的背景顏色 |
Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大值或最小值時,重新調整元件的大小不能超出該限制 |
Ctl3D | 規定元件的視覺外觀是3D還是2D |
DoubleBuffered | 確定元件影象是直接在視窗渲染或者是首先在內容中產生點陣圖 |
DragCursor | 當拖動元件時顯示的滑鼠指針影象型別 |
DragKind | 使用該屬性可獲取或設定元件是拖動操作還是拖動/停靠操作 |
DragMode | 使用該屬性可控制使用者何時可拖動元件 |
Enabled | 規定元件是否響應滑鼠、鍵盤和計時器事件 |
FixedOrder | TCoolBar中是否可以重新對band進行排序 |
FixedSize | Band是否維持統一的高度 |
Font | 規定元件中的文字字型屬性 |
Images | 規定與工具欄關聯的圖片列表 |
ParentDoubleBuffered | 規定元件是否繼承父元件的DoubleBuffered屬性 |
ParentFont | 規定元件是否繼承父元件的字型屬性資訊 |
ParentShowHint | 使用該屬性可確保窗體中的所有元件以統一格式顯示或不顯示其幫助提示 |
PopupMenu | 將元件與功能表欄中的位置繫結 |
ShowHint | 當滑鼠游標懸停在元件上時是否顯示提示內容 |
Vertical | Band是水平排列還是垂直排列 |
Visible | 規定該元件在窗體上是否可見 |
# 18. TPageScroller元件
TPageScroller元件建立了用於顯示一個小視窗,比如工具欄。
# 18.1. 屬性
- TPageScroller元件主要屬性
屬性 | 功能說明 |
---|---|
Align | 決定容器(父元件)對該元件的歸屬方式 |
Anchors | 該屬性指定元件如何停放在其父窗體中 |
AutoScroll | 當滑鼠懸停在滾輪方向按鈕上時自動滾動 |
BorderWidth | 使用該屬性可獲得或設定元件邊框的寬度 |
ButtonSize | 規定滾動條方向按鈕的大小 |
Color | 規定元件的背景顏色 |
Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大值或最小值時,重新調整元件的大小不能超出該限制 |
Control | 包含在頁面元件中的元件 |
DoubleBuffered | 確定元件影象是直接在視窗渲染或者是首先在內容中產生點陣圖 |
DragCursor | 當拖動元件時顯示的滑鼠指針影象型別 |
DragKind | 使用該屬性可獲取或設定元件是拖動操作還是拖動/停靠操作 |
DragMode | 使用該屬性可控制使用者何時可拖動元件 |
Enabled | 規定元件是否響應滑鼠、鍵盤和計時器事件 |
Font | 規定元件中的文字字型屬性 |
Margin | 定義視窗內容與元件 |
ParentDoubleBuffered | 規定元件是否繼承父元件的DoubleBuffered屬性 |
ParentFont | 規定元件是否繼承父元件的字型屬性資訊 |
ParentShowHint | 使用該屬性可確保窗體中的所有元件以統一格式顯示或不顯示其幫助提示 |
PopupMenu | 將元件與功能表欄中的位置繫結 |
Position | 滾動條在元件中的位置 |
ShowHint | 當滑鼠游標懸停在元件上時是否顯示提示內容 |
TabOrder | 規定元件在父元件中的換欄位置序號 |
TabStop | 使用該屬性可允許或不允許用Tab鍵訪問元件 |
Visible | 規定該元件在窗體上是否可見 |
# 18.2. 事件
- TPageScroller元件主要事件列表
事件 | 何時觸發 |
---|---|
OnScroll | 當滾動條開始滾動時,將觸發該事件 |
# 18.3. 方法
- TToolBar元件主要方法列表
方法 | 功能描述 |
---|---|
GetButtonState | 返回頁面滾動按鈕的狀態 |