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

Вниз

StringGrid красим ячейки мышкой   Найти похожие ветки 

 
Ardent   (2010-04-29 17:37) [0]

Всем привет! есть код:

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

 If (gdSelected in State)and(ACol=Col)And(ARow=Row)  then  
 begin

 if Canvas.Brush.Color = clRed then Canvas.Brush.Color:= clWhite else  Canvas.Brush.Color:= clRed ;
  Canvas.FillRect(Rect);
  Canvas.DrawFocusRect(Rect);

 end
  else
 If (gdSelected in State)  then
 begin
  if Canvas.Brush.Color = clRed then Canvas.Brush.Color:= clWhite else  Canvas.Brush.Color:= clRed ;
  Canvas.FillRect(Rect);
  Canvas.DrawFocusRect(Rect);
  Canvas.DrawFocusRect(Rect);
 end;
end;

Выделенные ячейки закрашиваются в красный цвет.
1) Как сделать чтоб  ячейки оставались закрашенными, после перехода в другую ячейку?
2) Как сделать исключение при закраске - при выделении красных ячеек они красятся в белый и наоборот


 
Ardent   (2010-04-29 17:39) [1]

Вот правильный исходный код....

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

If (gdSelected in State)and(ACol=Col)And(ARow=Row)  then  
begin

Canvas.Brush.Color:= clRed ;
 Canvas.FillRect(Rect);
 Canvas.DrawFocusRect(Rect);

end
 else
If (gdSelected in State)  then
begin
 Canvas.Brush.Color:= clRed ;
 Canvas.FillRect(Rect);
 Canvas.DrawFocusRect(Rect);
 Canvas.DrawFocusRect(Rect);
end;
end;


 
MonoLife ©   (2010-04-30 06:41) [2]


> 1) Как сделать чтоб  ячейки оставались закрашенными, после
> перехода в другую ячейку?

Пиши что-нить в ячейку, а потом проверяй в DrawCell
"если в ячейке ACol, ARow то, что надо, то красим, иначе не красим"


 
ixen ©   (2010-05-02 11:03) [3]

я так понял что данные для заполнения в stringgrid беруться из некоего массива. Создай тип запись где укажи поле состояние ячейки, например 0 или 1 . затем проверяй содержимое этого поля в DrawCell и закрашивай.



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

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

Наверх




Память: 0.47 MB
Время: 0.063 c
11-1215697287
KOLBOSS
2008-07-10 17:41
2010.08.27
как добавить страницу в RichEdit


15-1268021733
rust-02
2010-03-08 07:15
2010.08.27
Нужно реализовать тестовую программу


15-1265624198
Сергей М.
2010-02-08 13:16
2010.08.27
TMozillaBrowser и программный доступ к параметрам конфигурации


15-1270033255
pasha_golub
2010-03-31 15:00
2010.08.27
DLL средствами MSVC Express 2008


15-1275083308
Германн
2010-05-29 01:48
2010.08.27
Сдвинуть блок текста в IDE влево