StringGrid控件
組件名稱:StringGrid
●固定行及固定列:
StringGrid.FixedCols:=固定行之數;
StringGrid.FixedRows:=固定列之數;
StringGrid. FixedColor:=固定行列之顏色;
StringGrid.Color:=資料區之顏色;
●資料行列之寬高度:
StringGrid.DefaultColWidth:=內定全部之寬度;
StringGrid.DefaultRowHeight:=內定全部之高度;
StringGrid.ColWidths[Index:Longint]:=某一行整行之寬度;
StringGrid.RowHeights[Index:Longint]:=某一列整列之高度;
●數據區(CELL)指定:
將某一行列停在畫面之資料區最左上角:
StringGrid.LeftCol:=某一行號;
StringGrid.TopRow:=某一列號;
焦點移至某一格(CELL)內:
StringGrid.Row:=?;
StringGrid.Col:=?;
設定數據行列數:(包含固定行、列亦算在內)
StringGrid.RowCount:=?;
StringGrid.ColCount:=?;
寫一字符串至某一格(CELL)內:
StringGrid.Cells[Col值 , Row值]:=字符串;
判斷鼠標指針目前在哪一格(CELL)范圍內:
在StringGrid之Mouse事件中(UP,DOWN或MOVE)下:
VAR C , R : Longint;
Begin
StringGrid.MouseToCell(X,Y,C,R); {X,Y由MOUSE事件傳入}
{取回 C , R 即為目前之Col , Row值 }
......
●StringGrid之Options屬性:
若要於程序執行中開啟或關閉Options某一功能如 ‘goTABS’
開: StringGrid.Options:= StringGrid.Options + [goTABS];
關: StringGrid.Options:= StringGrid.Options - [goTABS];
goFixedHorzLine 固定列間之水平線
goFixedVertLine 固定行間之垂直線
goHorzLine 資料格間水平線
goVertLine 資料格間垂直線
goRangeSelect 鼠標可多重選擇
goDrawFocusSelected 多重選擇時,第一數據項反白
goRowSizing 鼠標可改變列高
goColSizing 鼠標可改變行寬
goRowMoving 鼠標可搬數據列
goColMoving 鼠標可搬數據行
goEditing 可編輯(與鼠標可多重選擇互斥)
goAlwaysShowEditor 須有goEditing,不用按F4或ENTER即有等待輸入光標
goTabs 允許TAB及Shift-TAB移動光標
goRowSelect 用鼠標點一下可選取整列(亦與鼠標可多重選擇互斥)
goThumbTracking 滾動條動時GRID跟着動,否則滾動條動完放開,GRID才動
————————————————————————————————————————
功能:以網格形式顯示或編輯多個字符串。
主要屬性:
Cells:獲取每個單元格的值,用法Cells[ARow][ACol];
Cols:TString類型,返回某一列的所有字符串,用法Cols[index];
Objects:列出一個單元格對應的對象,用法Objects[ARow][ACol];
Rows:TString類型,返回某一行的所有字符串,用法Rows[index];
BorderStyle:設置字符串網格的邊框的樣式;
Col:在運行期有效,獲取有被選中的列;
ColCount:網格總列數;
ColWidths:網格中列的寬度,可以通過ColWidths[index]來設定特定列的寬;
DefaultColWidth:默認列寬;
DefaultDrawing:是否在整個網格被畫出時即畫出每個單元格,設為true,網格畫出(paint)時即自動畫(paint)單元格,設為false時,由程序員控制單元格的繪制(paint),使用DrawCell畫(paint)單元格或OnDrawCells事件中處理單元格;
DefaultRowHeight:默認行高;
EditorMode:在運行期判斷當前單元格是否處於編輯狀態;
FixedColor:固定行或列的顏色;
FixedCols:固定列數量;
FixedRows:固定行數量;
GridHeight:網格的高度(除滾動條外),當客戶區能顯示所有行時,滾動條不會出現,此時GridHeight 與Height屬性值相同,當客戶區不能顯示所有行時,滾動條出現了,GridHeight的為Height值減去滾動條高度;
GridLineWidth:分隔單元格的線的寬度;
GridWidth:與GridHeight類似,不過是網格的寬度(除滾動條外);
LeftCol:如果有橫向滾動條的話,可見的最左邊的列的ID號;
Options:為一個枚舉(enum)值,設置StringGrid的一些屬性;
Row:運行期有效,獲取包含有被選中的行;
RowCount:StringGrid中行的數量;
RowHeights:StringGrid中每行的高度;
ScrollBars:設置當單元格無法全部顯示時的滾動條;
Selection:當Options中允許選擇一個區域時有效,返回選擇的區域;
TabStops:是否允許某一列TAB鍵無效;
TopRow:類似於LeftCol,即可見的最上面的行的ID號;
VisibleColCount:可顯示的完整的列(不包括FixCol和最右邊顯示不完全的列);
VisibleRowCount:可顯示的完整的行(不包括FixRow和最小邊顯示不完全的行)。
主要方法:
CellRect:返回某個單元格的Rect對象;
MouseToCell:返回鼠標位置的單元格的行或列;
MouseCoord:返回指定行和列的單元格的位置Rect。
主要事件:
OnColumnMoved:當行改變時觸發該事件;
OnDrawCell:自定義單元格的paint事件;
OnGetEditMask:指定單元格中處於Edit時的EditMask,即限定輸入的字符;
OnGetEditText:在單元格處於Edit之前發生的事件,如在Edit之前轉變單元格中文字的大小寫等等;
OnRowMoved:當行被移動時觸發該事件;
OnSelectCell:當單元格被選中時觸發該事件;
OnSetEditText:當用戶編輯單元格時觸發該事件;
OnTopLeftChanged:當最上面的行或最左邊的列改變時觸發該事件。