Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.22;
Скачать: CL | DM;

Вниз

Цвет ячейки в StringGrid   Найти похожие ветки 

 
Горбатов В.Ю.   (2004-08-06 08:06) [0]

Сразу говорю, что перерыл кучу ссылок, пролистал множество страниц, но дельного решения пока нет.
Проблема: В StringGrid"е задаю календарь на месяц из определенной базы. Но реально выделить именно выходные и праздничные дни другим цветом пока никак. Т.е. нужно динамически изменять цвета в определенных ячейках при перемещении по месяцам.
В OnDrawCell получается задать цвета только статически.

Помогите, плиз, заранее спасибо!


 
olookin ©   (2004-08-06 08:12) [1]

А что значит "получается статически"?


 
Думкин ©   (2004-08-06 08:24) [2]

А ты применяй не константы, а пременные, или никак?


 
KSergey ©   (2004-08-06 08:31) [3]

Код OnDrawCell - в студию!


 
Алхимик ©   (2004-08-06 08:39) [4]

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


Анализируешь ACol, ARow и Cells[ACol, ARow]


 
Леприкон ©   (2004-08-06 08:40) [5]

По поводу выходных. Я так понимаю, это столбцы Index и Index+1.
Так что мешает в OnDrawCell проверять if (ACol=Index) or (ACol=Index+1) и менять цвет?


 
TUser ©   (2004-08-06 09:05) [6]

unit uMyStringGrid;

interface

uses
 SysUtils, Classes, Controls, Grids, Graphics, types, windows;

type
 TOnCanFill = procedure (Sender:TObject; ACol, ARow:longint; var Fill:boolean) of object;

 TMyStringGrid = class(TStringGrid)
 private
   FFillColor:TColor;
   FOnCanFill:TOnCanFill;
 protected
   procedure DrawCell(ACol, ARow: Longint; ARect: TRect;
     AState: TGridDrawState); override;
 published
   property FillColor:TColor read FFillColor write FFillColor;
   property OnCanFill:TOnCanFill read FOnCanFill write FOnCanFill;
 end;

procedure Register;

implementation

procedure Register;
begin
 RegisterComponents("Aksianov", [TMyStringGrid]);
end;

procedure TMyStringGrid.DrawCell(ACol, ARow: Longint; ARect: TRect;
     AState: TGridDrawState);
var CanFill:boolean;
begin
  CanFill:=false;
  if assigned (FOnCanFill) then
     FOnCanFill(Self,ACol,ARow,CanFill);
  if CanFill then
     with Self.Canvas do
        Brush.Color:=FFillColor;
  inherited;
  if CanFill then
     Brush.Color:=clWhite;
end;

end.



 
olookin ©   (2004-08-06 09:06) [7]

Автор вероятно разумел под динамическим изменением прорисовку при перемещении по гриду? Тогда рисовать в StringGridOnTopLeftChange



Страницы: 1 вся ветка

Текущий архив: 2004.08.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.03 c
8-1086246500
dellax
2004-06-03 11:08
2004.08.22
Чтение TGA формата


1-1091964308
Чувак
2004-08-08 15:25
2004.08.22
Проблема с переменными.


14-1091829838
Ertong
2004-08-07 02:03
2004.08.22
Мобильная революция


1-1091601326
Nnn
2004-08-04 10:35
2004.08.22
Как в программе задать массив-константу?


1-1091812716
sdw_syscoder
2004-08-06 21:18
2004.08.22
Поиск в файле