JS+
Усиленный язык сценариев для Windows
с возможностью встраивания
в ваши приложения
О языке JS+ Справочник Скачать JS+ DLL
Контакты
СПРАВОЧНИК ПО ЯЗЫКУ JS+ Содержание

OnDrawCell

- событие TStringGrid
Компонент TStringGrid
Наступает при отрисовке ячейки таблицы.
Синтаксис
function OnDrawCell(
  Sender,
  Column,
  Row,
  Rect,
  State
);

Параметры
Параметр Тип Описание
Sender TStringGrid дескриптор компонента TStringGrid
Column Number номер столбца, начиная с 0
Row Number номер строки, начиная с 0
Rect TRect координатный прямоугольник ячейки (относительно левого верхнего угла таблицы)
State Enumset состояние ячейки (см. ниже)

Параметр State
Значение Описание
gdSelected ячейка выделена
gdFocused ячейка имеет фокус ввода
gdFixed ячейка принадлежит фиксированной части таблицы
Пример (JS+)
// Главная форма
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+Руководство пользователя
Адрес этой страницы: http://jsplus.ru/MANUAL/JSPlus/Component/TStringGrid/Event/OnDrawCell.htm
© 2024,