Автор: Jeff Fisher

 

Я пытаюсь показать StringGrid без выделенной ячейки. Первая нефиксированная ячейка всегда имеет состояние "инвертированного" цвета. Я не хочу позволить пользователю редактировать сетку, но эта выделенная ячейка производит впечатление того, что сетка имеет возможность редактирования...

 

Вам необходимо создать обработчик события OnDrawCell. Это легче чем вы думаете. Вот образец кода, который сделает вас счастливым:

 

Code:

procedure TForm.sgrDrawCells(Sender: TObject; Col, Row: Longint; Rect: TRect;

State: TGridDrawState);

var

ACol: longint absolute Col;

ARow: longint absolute Row;

Buf: array[byte] of char;

begin

if State = gdFixed then

   Exit;

 

with sgrGrid do

begin

   Canvas.Font := Font;

   Canvas.Font.Color := clWindowText;

   Canvas.Brush.Color := clWindow;

 

   Canvas.FillRect(Rect);

   StrPCopy(Buf, Cells[ACol, ARow]);

   DrawText(Canvas.Handle, Buf, -1, Rect,

     DT_SINGLELINE or DT_VCENTER or DT_NOCLIP or DT_LEFT);

end;

end;

 

 

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить