Главная страница
    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.44 MB
Время: 0.057 c
15-1271132872
oldman
2010-04-13 08:27
2010.08.27
«РИФ+КИБ 2010»: общая информация


2-1269806850
NetherEagle
2010-03-29 00:07
2010.08.27
Передача текста в поле Edit на почту


2-1267297747
Первокурсница
2010-02-27 22:09
2010.08.27
Две задачи для первого курса,Delphi


15-1265122686
YurikGL
2010-02-02 17:58
2010.08.27
Программа, рассчитывающая время произношения текста


2-1265983724
Unior
2010-02-12 17:08
2010.08.27
Как узнать дату понедельника на этой неделе?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский