Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > О событии OnDrawCell


Автор: Aleks26 23.5.2010, 20:09
Имеется компонент StringGrid и следующий код:

Код

procedure TfrmGridComp.btnContentWorkArea1Click(Sender: TObject);
var i,j: Integer;
begin
 with sgrGridComp1 do
 begin{0}
 for i:=1 to ColCount-1 do
  for j:=1 to RowCount-1 do
   begin
    Cells[i,j] :=Cells[i,0]+Cells[0,j];
  end;{0}
   end;
end;

procedure TfrmGridComp.sgrGridComp1DrawCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
if (ACol=3) and (ARow=5) then
 begin
 sgrGridComp1.Canvas.Font.Style := [fsItalic];
 sgrGridComp1.Canvas.Font.Color := clRed;
 sgrGridComp1.Canvas.FillRect(Rect);
 end;
end;



После выполнения я получаю заполненную таблицу кроме ячейки (5,3). Делая активной эту ячейку, она заполняется, но атрибуты шрифта такие же как для всей таблицы, а не как в обработчике OnDrawCell. Когда делаю активной другую ячейку, указанная вновь становится незаполненной. Почему та происходит? Объясните, плиз. smile 

Автор: Демо 23.5.2010, 20:40
Цитата(Aleks26 @  23.5.2010,  20:09 Найти цитируемый пост)
sgrGridComp1.Canvas.FillRect(Rect);


А здесь затираешь всё.

Автор: Aleks26 23.5.2010, 22:32
Цитата

А здесь затираешь всё. 

Я сейчас закомментировал эту строку, но почему не воспринимаются атрибуты шрифта, которые присутствуют в обработчике OnDrawCell? smile 

Автор: cyberstream 24.5.2010, 09:02
http://forum.vingrad.ru/forum/topic-270008/unread-1/hl/ondrawcell/index.html
Код

procedure TfrmGridComp.sgrGridComp1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
if (ACol=3) and (ARow=5) then
 begin
 sgrGridComp1.Canvas.FillRect(Rect);
 sgrGridComp1.Canvas.Font.Style := [fsItalic];
 sgrGridComp1.Canvas.Font.Color := clRed;
 sgrGridComp1.Canvas.TextOut(Rect.Left, Rect.Top, sgrGridComp1.Cells[ACol, ARow])
 end;
end;

Автор: Aleks26 24.5.2010, 09:40
Большое спасибо. Просто я еще совсем чайник, а в большинстве литературы до таких подробностей при рассмотрении того или иного компонента не доходят, а лишь упоминают основные методы и часто без примеров. smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)