IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   Раскрасить ячейки в гриде Delphi (http://www.imho.ws/showthread.php?t=69061)

PLP 22.09.2004 15:02

Раскрасить ячейки в гриде Delphi
 
Приветствую, подскажите пожалуйста, как можно раскрасить ячейки в StringGrid в Delphi.

или может лучше какой-нибудь другой компонентой воспользоваться?

Alexandr 172 23.09.2004 09:37

Насколько я помню есть пример прямо в хелпе по Delphi. Перекрашивание там основано на переопределении метода OnPaint.

Mazzi 23.09.2004 09:45

Для раскрашивания можно использовать событие OnDrawCell. Для раскрашивания можно использовать событие OnDrawCell.пример вот код расскрашивает все ячейки в желтый цвет.
Код:

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
  ACanvas:TCanvas;
begin
  ACanvas := StringGrid1.Canvas;
  ACanvas.Brush.Color := clYellow;
  ACanvas.FillRect(Rect);
end;


PLP 24.09.2004 09:21

Благодарю.
Если правильно понимаю, просто на месте ячейки закрашивается прямоугольничек на канве грида. Соответственно текст, содержащийся в ячейке перестанет быть виден, и его нужно выводить "руками" мет. TextOut?

ЗЫ: А зачем использовать var ACanvas : TCanvas; , а не просто StringGrid1.Canvas?

Alexandr 172 24.09.2004 11:56

Цитата:

Сообщение от PLP
Если правильно понимаю, просто на месте ячейки закрашивается прямоугольничек на канве грида. Соответственно текст, содержащийся в ячейке перестанет быть виден, и его нужно выводить "руками" мет. TextOut?

Естесственно, все самому нужно теперь писать, раз метод переопределяется

Mazzi 25.09.2004 09:56

Alexandr 172 правильно говорит.
Цитата:

ЗЫ: А зачем использовать var ACanvas : TCanvas; , а не просто StringGrid1.Canvas?
а это апросто так :-)


Часовой пояс GMT +4, время: 07:45.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.