Rapid-Q Documentation by William Yu (c)1999-2000 | Appendix A: QSTRINGGRID

# QSTRINGGRID Component

  QStringGrid allows you to present textual data in a tabular format.
  QStringGrid Properties

  Field | Type | R/W | Default

  Align | INTEGER | RW | alNone
  | Align determines how the control aligns within its parent control.
  BorderStyle | INTEGER | RW | bsSingle
  Cell | 2D ARRAY of STRING | RW |
  | Cell(X, Y) is an array of strings, one string for each cell in the grid. X = Column, Y = Row
  Col | INTEGER | RW |
  | Col is the index of the column that contains the selected cell.
  ColCount | INTEGER | RW | 5
  Color | INTEGER | RW |
  ColumnList | ARRAY of STRING | RW |
  | ColumnList maintains a list of strings deliminated by LF for use in Columned lists.
  ColumnStyle | ARRAY of INTEGER | RW | gcsNone
  | ColumnStyle determines the style of each column. 0 = gcsList -- Column with a drop-down list for each item 1 = gcsEllipsis -- Column with an ellipsis button for each item 2 = gcsNone -- Normal column
  ColWidths | ARRAY of INTEGER | RW |
  | ColWidths is an indexed array giving the width in pixels of all the columns in the grid.
  Cursor | INTEGER | RW | crDefault
  DefaultColWidth | INTEGER | RW | 64
  DefaultRowHeight | INTEGER | RW | 24
  EditorMode | INTEGER | RW |
  Enabled | INTEGER | RW | True
  FixedColor | INTEGER | RW |
  FixedCols | INTEGER | RW | 1
  | FixedColss is the number of columns on the left of the grid that cannot be scrolled.
  FixedRows | INTEGER | RW | 1
  | FixedRows is the number of rows on the top of the grid that cannot be scrolled.
  Font | QFONT | W |
  GridHeight | INTEGER | RW |
  GridLineWidth | INTEGER | RW | 1
  GridWidth | INTEGER | RW |
  Handle | INTEGER | R |
  Height | INTEGER | RW |
  Hint | STRING | RW |
  Left | INTEGER | RW | 0
  LeftCol | INTEGER | RW |
  Parent | QFORM/QPANEL/QTABCONTROL | W |
  PopupMenu | QPOPUPMENU | W |
  Row | INTEGER | RW |
  | Row is the index of the row that contains the selected cell.
  RowCount | INTEGER | RW | 5
  RowHeights | ARRAY of INTEGER | RW |
  | RowHeights is an indexed array giving the height in pixels of all the rows in the grid.
  ScrollBars | INTEGER | RW | ssBoth
  Separator | STRING | RW |
  | Separator determines how the stringgrid should parse (ie. read/write) grid data. For example, you can save the grid data to a file, with each item deliminated by the Separator.
  ShowHint | INTEGER | RW | False
  TabOrder | INTEGER | RW |
  TabStops | ARRAY of INTEGER | RW |
  Tag | INTEGER | RW |
  Top | INTEGER | RW | 0
  TopRow | INTEGER | RW |
  Visible | INTEGER | RW | True
  VisibleColCount | INTEGER | R |
  VisibleRowCount | INTEGER | R |
  Width | INTEGER | RW |

  QStringGrid Methods

  Method | Type | Description | Params

  AddOptions | SUBI | Add options to string grid | INTEGER, Infinite
  DeleteCol | SUB (Column%) | Deletes/Remove a column | 1
  DeleteRow | SUB (Row%) | Deletes/Remove a row | 1
  DelOptions | SUBI | Delete options from string grid | INTEGER, Infinite
  Circle | SUB (x1%, y1%, x2%, y2%, c%, fill%) | Draw & Fill Circle | 6
  CopyRect | SUB (D, Image, S) | D and S are QRECTs, Image can be a QImage, QCanvas, or QBitmap | 3
  Draw | SUB (x%, y%, BMP) | Draw Bitmap at (X,Y) | 3
  FillRect | SUB (x1%, y1%, x2%, y2%, c%) | Draws & Fills a rectangle | 5
  InsertCol | SUB (Column%) | Inserts a blank column | 1
  InsertRow | SUB (Row%) | Inserts a blank row | 1
  Line | SUB (x1%, y1%, x2%, y2%, c%) | Draws a line | 5
  LoadFromFile | SUB (File$, RowOffset%, ColOffset%, MaxRows%) | Loads table from file w/Separator | 4
  LoadFromStream | SUB (S AS QFileStream/QMemoryStream, RowOffset%, ColOffset%, MaxRows%) | Loads table from stream w/Separator | 4
  Paint | SUB (x%, y%, c%, borderc%) | Fill Region | 4
  Pset | SUB (x%, y%, c%) | Pixel plot | 3
  Rectangle | SUB (x1%, y1%, x2%, y2%, c%) | Draws a rectangle | 5
  Repaint | SUB | Force repainting of stringgrid | 0
  RoundRect | SUB (x1%, y1%, x2%, y2%, x3%, y3%, c%) | Draws & Fills a rounded rectangle | 7
  SaveToFile | SUB (File$, RowOffset%, ColOffset%, MaxRows%) | Saves table to file w/Separator | 4
  SaveToStream | SUB (S AS QFileStream/QMemoryStream, RowOffset%, ColOffset%, MaxRows%) | Saves table to stream w/Separator | 4
  SwapCols | SUB (Col1%, Col2%) | Swap two columns | 2
  SwapRows | SUB (Row1%, Row2%) | Swap two rows | 2
  StretchDraw | SUB (Rect AS QRECT, BMP) | Draw BMP and stretch to fit inside Rect | 2
  TextHeight | FUNCTION (Text$) AS WORD | Returns the height, in pixels, of Text$ string | 1
  TextWidth | FUNCTION (Text$) AS WORD | Returns the width, in pixels, of Text$ string | 1
  TextRect | SUB (Rect AS QRECT, x%, y%, S$, fc%, bc%) | Write text, and clip within region Rect | 6
  TextOut | SUB (x%, y%, S$, fc%, bc%) | Writes text to cell | 5

  QStringGrid Events

  Event | Type | Occurs when... | Params

  OnDrawCell | SUB (Col%, Row%, State%, R AS QRect) | Cells need to be redrawn | 4
  OnEllipsisClick | SUB (Col%, Row%) | Pull down list is clicked | 2
  OnKeyDown | SUB (Key AS Word, Shift AS INTEGER) | Key held down | 2
  OnKeyPress | SUB (Key AS BYTE) | User presses a key | 1
  OnKeyUp | SUB (Key AS Word, Shift AS INTEGER) | User releases a key | 2
  OnListDropDown | SUB (Col%, Row%, BYREF S AS STRING) | Pull down list is clicked. S is a string with items separated by a new line character. | 3
  OnSelectCell | SUB (Col%, Row%, CanSelect%) | User has selected a cell | 3
  OnSetEditText | SUB (Col%, Row%, Value$) | User has changed contents of cell | 3

  QStringGrid Examples

      CREATE Form AS QForm
        CREATE Grid AS QStringGrid
          Cell(1,1) = "hello"
        END CREATE
        Center
        ShowModal
      END CREATE

      '------------------------------------------------------------------
      ' Pulldown list example

      $INCLUDE "RAPIDQ.INC"
      $ESCAPECHARS ON

      CONST AgeList = "10\n11\n12\n13\n14\n15\n16\n17\n18\n19"

      SUB EllipsisClick (Col AS LONG, Row AS LONG, Sender AS QSTRINGGRID)
          Sender.Cell(Col, Row) = "Comments"+STR$(Row)
      END SUB

      CREATE Form AS QFORM
          CREATE Grid AS QSTRINGGRID
              Align = alClient
              AddOptions(goEditing)
              FixedRows = 1
              FixedCols = 0
              ColCount = 3
              RowCount = 5
              DefaultRowHeight = 20
              ColumnStyle(0) = gcsList
              ColumnStyle(1) = gcsEllipsis
              ColumnList(0) = AgeList
              Cell(0,0) = " Age"
              Cell(1,0) = " Comments"
              OnEllipsisClick = EllipsisClick
          END CREATE
          Caption = "Dropdown list example"
          Center
          ShowModal
      END CREATE

  Prev Component | Contents | Next Component