imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 22.09.2004, 15:02     # 1
PLP
Junior Member
 
Регистрация: 16.07.2002
Сообщения: 113

PLP Путь к славе только начался
Раскрасить ячейки в гриде Delphi

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

или может лучше какой-нибудь другой компонентой воспользоваться?
PLP вне форума  
Старый 23.09.2004, 09:37     # 2
Alexandr 172
Guest
 
Сообщения: n/a

Насколько я помню есть пример прямо в хелпе по Delphi. Перекрашивание там основано на переопределении метода OnPaint.
 
Старый 23.09.2004, 09:45     # 3
Mazzi
Member
 
Аватар для Mazzi
 
Регистрация: 03.07.2002
Адрес: Черноземье
Сообщения: 261

Mazzi Луч света в тёмном царствеMazzi Луч света в тёмном царствеMazzi Луч света в тёмном царствеMazzi Луч света в тёмном царствеMazzi Луч света в тёмном царстве
Для раскрашивания можно использовать событие 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;
Mazzi вне форума  
Старый 24.09.2004, 09:21     # 4
PLP
Junior Member
 
Регистрация: 16.07.2002
Сообщения: 113

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

ЗЫ: А зачем использовать var ACanvas : TCanvas; , а не просто StringGrid1.Canvas?
PLP вне форума  
Старый 24.09.2004, 11:56     # 5
Alexandr 172
Guest
 
Сообщения: n/a

Цитата:
Сообщение от PLP
Если правильно понимаю, просто на месте ячейки закрашивается прямоугольничек на канве грида. Соответственно текст, содержащийся в ячейке перестанет быть виден, и его нужно выводить "руками" мет. TextOut?
Естесственно, все самому нужно теперь писать, раз метод переопределяется
 
Старый 25.09.2004, 09:56     # 6
Mazzi
Member
 
Аватар для Mazzi
 
Регистрация: 03.07.2002
Адрес: Черноземье
Сообщения: 261

Mazzi Луч света в тёмном царствеMazzi Луч света в тёмном царствеMazzi Луч света в тёмном царствеMazzi Луч света в тёмном царствеMazzi Луч света в тёмном царстве
Alexandr 172 правильно говорит.
Цитата:
ЗЫ: А зачем использовать var ACanvas : TCanvas; , а не просто StringGrid1.Canvas?
а это апросто так :-)
Mazzi вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


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




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