# SetTableCellRangeVals

int SetTableCellRangeVals (int panelHandle, int controlID, Rect cellRange, void *valueArray, int direction);

## Purpose

Sets the values of a table control cell range to the values in a specified array.

## Parameters

Input
Name | Type | Description
panelHandle | integer | Specifier for a particular panel that is currently in memory. You obtain this handle from LoadPanel, NewPanel, or DuplicatePanel.
controlID | integer | The defined constant, located in the .uir header file, that you assigned to the control in the User Interface Editor, or the ID returned by NewCtrl or DuplicateCtrl.
cellRange | Rect | A Rect structure specifying the cell range for which you want to set the values. To use this function, you must specify a cell range in which all cells are of compatible types. Cells are of compatible types if they are all of type VAL_CELL_NUMERIC, or if they are all of type VAL_CELL_PICTURE, or if they are a combination of the other cell types. If the cell type is VAL_CELL_NUMERIC, all cells in the range also must share an identical data type. The Rect structure is defined as follows: typedef struct { int top; int left; int height; int width; } Rect; Pass the one-based row and column indices of the first cell in the range as the top and left fields of the structure, respectively. Pass the number of columns in the range as the width field of the structure, and the number of rows in the range as the height field of the structure. You can create a Rect without having to declare a variable by using the following function: Rect MakeRect (int top, int left, int height, int width); Example SetTableCellRangeVals (panelHandle, controlID, MakeRect (2, 3, 5, 5), valueArray, direction);
valueArray | any array | An array specifying the new cell values. The array must be large enough to contain the values for the entire cell range. The number of bytes required for each cell depends on the cell type and data type (for numeric cells). The values that this function expects for each cell depend on the cell type. If the cell type is VAL_CELL_PICTURE, the function expects an ID of the bitmap containing the new image. The ID must be a value obtained from NewBitmapEx, GetBitmapFromFile, GetCtrlBitmap, ClipboardGetBitmap, GetCtrlDisplayBitmap, GetPanelDisplayBitmap, GetScaledPanelDisplayBitmap, GetScaledCtrlDisplayBitmap, or DuplicateBitmap. A value of 0 indicates that there is no image. You can use this to delete an existing image. When allocating the array, assume that each element requires four bytes of storage. If the cell type is VAL_CELL_STRING, VAL_CELL_RING, VAL_CELL_COMBO_BOX, or VAL_CELL_BUTTON, the function expects a NUL-terminated string. When allocating the array, assume that each element requires four bytes of storage. If the cell type is VAL_CELL_RING it will remain unchanged unless the value you specify matches an existing value in the cell's value list. If the cell type is VAL_CELL_NUMERIC, the function expects a number of a data type matching the data type of the cell. When allocating the array, you must be mindful of the data type of the cell range, and assume that each element requires the number of bytes corresponding to that data type.
direction | integer | The order in which you store each cell value in valueArray. If you pass VAL_ROW_MAJOR, the function traverses the array by setting the values of all the cells in a given row from left to right, then it sets the values of the row immediately below, continuing until there are no rows left in the cell range. If you pass VAL_COLUMN_MAJOR, the function traverses the array by setting all the cells in a given column from top to bottom, then it sets the values of the column to its immediate right, continuing until there are no columns left in the cell range.

## Return Value

Name | Type | Description
status | integer | Return value indicating whether the function was successful. A negative number indicates that an error occurred.
Code | Error Message String
xx | Success