StringGrid常用属性和常用操作.doc_第1页
StringGrid常用属性和常用操作.doc_第2页
StringGrid常用属性和常用操作.doc_第3页
StringGrid常用属性和常用操作.doc_第4页
StringGrid常用属性和常用操作.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

StringGrid常用属性和常用操作StringGrid组件用于建立显示字符串的网格,与电子表格相似。它可使表格中的字符串和相关对象操作简单化。StringGrid组件提供了许多可控制网格外观念的属性,以及利用表格的结构响应用户操作的事件和方法。StringGrid具有关联对象与网格中的每个字符串的作用,这些对象为用户封装了字符串表示的信息或行为。一、Delphi StringGrid控件的属性及使用说明1、固定行及固定列: (没有固定行列的时候,不能在运行时调节各个单元格的宽度和高度) StringGrid.FixedCols := 固定行数; StringGrid.FixedRows := 固定列数; StringGrid.FixedColor := 固定行列的颜色; StringGrid.Color := 未固定行列的颜色(资料区);2、资料区行列的宽度和高度: StringGrid.DefaultColWidth := 內定全部的宽度; StringGrid.DefaultRowHeight := 內定全部的高度; StringGrid.ColWidthsIndex:Longint:=某一行整行的宽度; StringGrid.RowHeightsIndex:Longint:=某一列整列之高度;3、资料区(CELL)指定(将某一行列停在资料区最左上角) StringGrid.LeftCol:=某一行號; StringGrid.TopRow:=某一列號;4、焦点移动到某一单元格内: StringGrid.Row:=?; StringGrid.Col:=?;5、设定资料区行数和列数:(包含固定行、列亦算在內) StringGrid.RowCount:=?; StringGrid.ColCount:=?;6、给某一个单元格赋值(从0开始): StringGrid.CellsCol值 , Row值:=字串;7、判断鼠标处于哪一个单元格中 在StringGrid的Mouse事件中(UP,DOWN或MOVE)下: VAR C , R : Longint; StringGrid.MouseToCell(X,Y,C,R); X,Y由MOUSE事件传入 取回 C , R 即为目前之Col , Row值 8、StringGrid之Options属性: 若要在执行中开启合租关闭Options某一功能如 goTABS,则可以如下: 开启: StringGrid.Options:= StringGrid.Options + goTABS; 关闭: StringGrid.Options:= StringGrid.Options - goTABS; goFixedHorzLine 固定列之间的水平分割线 goFixedVertLine 固定行之间的垂直分割线 goHorzLine 可滚动列之间的水平分割线 goVertLine 可滚动行之间的垂直分割线 goRangeSelect 可多重选择单元,如果包含goEditing,则忽略goRangeSelect。 goDrawFocusSelected 用鼠标多重选择时,第一个选择的单元反白 goRowSizing 用鼠标可改变列高 goColSizing 用鼠标可改变行寬 goRowMoving 用鼠标可移动可滚动行 goColMoving 用鼠标可移动可滚动列 goEditing 可编辑单元的内容 goAlwaysShowEditor 表格总是编辑模式,不需要F2或ENTER即有等待输入的游标。如果Options不包含goEditing或包含goRowSelect,则goAlwaysShowEditor无效。 goTabs 用TAB及Shift+TAB可切换表格单元 goRowSelect 用滑鼠點一下可選取整列(亦與滑鼠可多重選擇互斥) goThumbTracking 捲軸動時GRID跟著動,否則捲軸動完放開,GRID才動 一、Delphi StringGrid控件的常用操作代码/ 初始化StirngGrid的首行和首列procedure TReferContentForm.SetSGridTitle(SGrid: TSuiStringGrid);var ColIndex, RowIndex: integer;begin /画第一行(标题栏) for colIndex := 1 to SGrid.ColCount do begin SGrid.CellscolIndex, 0 := 列名 + Chr(ord(A) - 1 + colIndex); end; /画第一列(数字栏) SGrid.ColWidths0 := 30; SGrid.Cells0, 0 := 序列; for RowIndex := 1 to SGrid.RowCount - 1 do begin SGrid.Cells0, RowIndex := IntToStr(RowIndex); end;end;/ 清楚StirngGrid,指定行数和列数procedure TReferContentForm.ClearSGrid(SGrid: TSuiStringGrid; aRow, aCol: integer);var i: integer;begin SGrid.RowCount := aRow; SGrid.ColCount := aCol; for i := 0 to SGrid.RowCount - 1 do /如果不清表头则从1开始 SGrid.Rowsi.Clear; setSGridTitle(SGrid);end;/ 添加一行procedure TReferContentForm.mmiN1Click(Sender: TObject);var SGrid: TsuiStringGrid;begin SGrid := TsuiStringGrid(suiPMSGrid.PopupComponent); if SGrid nil then begin SGrid.RowCount := SGrid.RowCount + 1; SetSGridTitle(SGrid); end;end;/ 插入一行procedure TReferContentForm.mmiN2Click(Sender: TObject);var i, curRow: integer; SGrid: TsuiStringGrid;begin SGrid := TsuiStringGrid(suiPMSGrid.PopupComponent); if SGrid nil then begin curRow := SGrid.Row; /记录当前选定行的位置 SGrid.rowcount := SGrid.rowcount + 1; for i := SGrid.rowcount - 1 downto curRow + 1 do SGrid.Rowsi := SGrid.Rowsi - 1; SGrid.RowscurRow.Clear; SetSGridTitle(SGrid); end;end;/ 删除当前一行procedure TReferContentForm.mmiN3Click(Sender: TObject);var i: integer; SGrid: TsuiStringGrid;begin SGrid := TsuiStringGrid(suiPMSGrid.PopupComponent); if SGrid nil then begin for i := SGrid.row to SGrid.RowCount - 1 do SGrid.Rowsi := SGrid.Rowsi + 1; SGrid.RowCount := SGrid.RowCount - 1; /删除 SetSGridTitle(SGrid); end;end;/ 添加一列procedure TReferContentForm.mmiN5Click(Sender: TObject);var SGrid: TsuiStringGrid;begin SGrid := TsuiStringGrid(suiPMSGrid.PopupComponent); if SGrid nil then SGrid.ColCount := SGrid.ColCount + 1; SetSGridTitle(SGrid);end;/ 插入一列procedure TReferContentForm.mmiN6Click(Sender: TObject);var i, CurCol: integer; SGrid: TsuiStringGrid;begin SGrid := TsuiStringGrid(suiPMSGrid.PopupComponent); if SGrid nil then begin CurCol := SGrid.Col; /记录当前选定行的位置 SGrid.ColCount := SGrid.ColCount + 1; for i := SGrid.ColCount - 1 downto CurCol + 1 do SGrid.Colsi := SGrid.Colsi - 1; SGrid.ColsCurCol.Clear; end; SetSGridTitle(SGrid);end;/ 删除一列procedure TReferContentForm.mmiN7Click(Sender: TObject);var i: integer; SGrid: TsuiStringGrid;begin SGrid := TsuiStringGrid(suiPMSGrid.PopupComponent); if SGrid nil then begin for i := SGrid.Col to SGrid.ColCount - 1 do SGrid.Colsi := SGrid.Colsi + 1; SGrid.ColCount := SGrid.ColCount - 1; /删除 end; SetSGridTitle(SGrid);end;/ 清空procedure TReferContentForm.mmiN9Click(Sender: TObject);var SGrid: TsuiStringGrid;begin SGrid := TsuiStringGrid(suiPMSGrid.PopupComponent); if SGrid nil then begin ClearSGrid(SGrid, 5, 5) end; SetSGridTitle(SGrid);end;/ 右击选择单元格procedure TReferContentForm.suiStringGridContentMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin if (Button = mbRight) then begin SendMessage(SGridContent.Handle, WM_LBUTTONDOWN, 0, MAKELONG(x, y); SendMessage(SGridContent.Handle, WM_LBUTTONUP, 0, MAKELONG(x, y); end;end;procedure TReferContentForm.FormShow(Sender: TObject);begin SetSGridTitle(SGridContent);end;/ 把标题栏和数字列中是内容,居中显现procedure TReferContentForm.SGridContentDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);var s: string; r: TRect;begin if (ACol = 0) or (ARow = 0) then begin with TSuiStringGrid(Sender) do begin Canvas.Brush.Color := $00F0DDCE; Canvas.FillRect(Rect); s := CellsACol, ARow; r := Rect; DrawText(Canvas.Handle, PChar(s), Length(s), r, DT_CENTER or DT_SINGLELINE or DT_VCENTER); end endend;=delphi操作数据库并将结果反馈到stringgrid控件显示的问题procedure TForm1.Button4Click(Sender: TObject); var data1,date2,data3,data4,data5:string; var i,j:integer;begin adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Text:=select * from tbluser; adoquery1.Open; adoquery1.ExecSQL; stringgrid1.RowCount:=adoquery1.RecordCount; stringgrid1.ColCount:=adoquery1.Fields.Count; i:=0; begin for i:=0 to stringgrid1.ColCount-1 do begin stringgrid1.Cellsi+1,j+1:=adoquery1.Fieldsi.Value; end; inc(j); /下一个的意思 /stringgrid1.Cells1,i:=adoquery1.Fields.; /str1:=select *

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论