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


Автор: Неопытный 19.12.2006, 11:21
Как в StringGrid - е обращаться к свойствам отдельной ячейки (изменять цвет, размер шрифта, цвет текста)

Автор: Romikgy 19.12.2006, 11:28
OnDrawCell
и что хошь то и рисуй smile

Добавлено @ 11:30 
Код

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;  
  Rect: TRect; State: TGridDrawState);  

Const   //сдесь определяем Ваш цвет. Так же можно использовать  
        //цвета по умолчанию.  
  clPaleGreen = TColor($CCFFCC);  
  clPaleRed =   TColor($CCCCFF);  

begin  

//Если ячейка получает фокус, то нам надо закрасить её другими цветами  
if (gdFocused in State) then begin      
   StringGrid1.Canvas.Brush.Color := clBlack;  
   StringGrid1.Canvas.Font.Color := clWhite;  
end  
else  //Если же ячейка теряет фокус, то закрашиваем её красным и зелёным  

   if ACol = 2   //Вторая колонка будет зелёной , другие - ячейки красными  
    then StringGrid1.Canvas.Brush.color := clPaleGreen  
    else StringGrid1.canvas.brush.Color := clPaleRed;  

//Теперь закрасим ячейки, но только, если ячейка не Title- Row/Column  
//Естевственно это завит от того, есть у Вас title-Row/Columns или нет.  

If (ACol > 0) and (ARow>0) then  
  begin  
      //Закрашиваем бэкграунд  
    StringGrid1.canvas.fillRect(Rect);  

      //Закрашиваем текст (Text). Также здесь можно добавить выравнивание и т.д..  
    StringGrid1.canvas.TextOut(Rect.Left,Rect.Top,StringGrid1.Cells[ACol,ARow]);  
  end;  
end;  


Автор: Неопытный 19.12.2006, 11:35
Круто!

Автор: Romikgy 19.12.2006, 11:43
Дыкъ

PS качай се http://www.drkb.ru/ и бушь доволен smile

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