|
|
Наступает при отрисовке ячейки таблицы.
Синтаксис
function OnDrawCell(
| Sender, | Column, | Row, | Rect, | State
| );
|
Параметры
|
Параметр
| Тип
| Описание
|
Sender
| TStringGrid
| дескриптор компонента TStringGrid
|
Column
| Number
| номер столбца, начиная с 0
|
Row
| Number
| номер строки, начиная с 0
|
Rect
| TRect
| координатный прямоугольник ячейки (относительно левого верхнего угла таблицы)
|
State
| Enumset
| состояние ячейки (см. ниже)
|
|
Параметр State
|
Значение
| Описание
|
gdSelected
| ячейка выделена
|
gdFocused
| ячейка имеет фокус ввода
|
gdFixed
| ячейка принадлежит фиксированной части таблицы
|
|
// Главная форма frm=new TForm(); frm.Caption="JS+ - событие TStringGrid OnDrawCell";
// Строка состояния stb=new TStatusBar(frm); stb.SimpleText=" Пример обработки события OnDrawCell";
// Текстовая таблица stg=new TStringGrid(frm); stg.BorderStyle=bsSingle; stg.ScrollBars=ssNone; stg.Options=goDrawFocusSelected | goFixedHorzLine | goFixedVertLine | goHorzLine | goVertLine; stg.FixedCols=stg.FixedRows=1; stg.ColCount=6; stg.RowCount=10; stg.DefaultColWidth=stg.TextWidth(" Столбец 10"); stg.ColWidths[0]=stg.TextWidth(" Строка 10"); stg.Left=stg.Top=10; stg.ClientWidth =stg.GridWidth; stg.ClientHeight=stg.GridHeight; stg.OnDrawCell =stg_DrawCell; stg.OnSelectCell=stg_SelectCell;
// Заголовки столбцов for (i=stg.FixedCols;i<stg.ColCount;i++) stg.Cells[i][0]="Столбец "+i;
// Заголовки строк for (i=stg.FixedRows;i<stg.RowCount;i++) stg.Cells[0][i]=" Строка "+i;
// Тело таблицы for (i=stg.FixedCols;i<stg.ColCount;i++) for (j=stg.FixedRows;j<stg.RowCount;j++) stg.Cells[i][j]="["+i+":"+j+"]";
// Подогнать размер формы под размер таблицы frm.ClientWidth =stg.Width+stg.Left*2; frm.ClientHeight=stg.Height+stg.Top*2+stb.Height;
stg.SetFocus(); frm.ShowModal();
// Обработчик события OnDrawCell function stg_DrawCell(stg,col,row,rct,state) { var stg_Str=stg.Cells[col][row],cnv=stg.Canvas; var bclr=stg.Color,fclr=stg.Font.Color;
if (col<stg.FixedCols) return;
if (state & gdFixed) bclr=stg.FixedColor; else if (state & gdSelected) { bclr=clHighlight; fclr=clHighlightText; }
cnv.Brush.Color=bclr; cnv.FillRect(rct); cnv.Font.Color=fclr;
// Вывести текст ячейки по центру DrawText( cnv.Handle,stg_Str,stg_Str.length,rct, DT_CENTER+DT_VCENTER+DT_SINGLELINE ); }
// Обработчик события OnSelectCell function stg_SelectCell(stg,col,row,canSelect) { stb.SimpleText=" Выбрана ячейка "+stg.Cells[col][row]; }
Совместимость
C++ Builder/Delphi
|
JS+ | Руководство пользователя
|
|
|
|
|
|