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

Вниз

Выделение целой строки StringGrid   Найти похожие ветки 

 
maxXP ©   (2006-11-15 17:53) [0]

Подскажите как можно реализовать выделение целой строки StringGrid в обработчике StringGrid1DrawCell.

Т.е Фокус нажали на  ячейку и вся строка поменяла цвет.

Спс


 
Jeer ©   (2006-11-15 18:05) [1]

OnDrawColumnCell

поищи по ключевому слову "разноцветный Grid"


 
MsGuns ©   (2006-11-15 22:02) [2]

>Jeer ©   (15.11.06 18:05) [1]
>OnDrawColumnCell
>поищи по ключевому слову "разноцветный Grid"

Серега, немного не в тему. И дело не в том, что StringGrid отличается от DBGrid, а в том, что нет у него DefaultDrawCell


 
ЮЮ ©   (2006-11-16 03:51) [3]


> что нет у него DefaultDrawCell

там кода-то - кот наплакал. почему бы не перенести его в  DrawCell ?

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
 Rect: TRect; State: TGridDrawState);
begin
 if ARow = TStringGrid(Sender).Row then begin
   TStringGrid(Sender).Canvas.Brush.Color := clRed;
   TStringGrid(Sender).Canvas.Font.Color := clWhite;
 end
 else begin
   // стандартные цвета
   if gdFixed in State then
     TStringGrid(Sender).Canvas.Brush.Color := TStringGrid(Sender).FixedColor
   else
     TStringGrid(Sender).Canvas.Brush.Color := TStringGrid(Sender).Color;
   TStringGrid(Sender).Canvas.Font.Color := TStringGrid(Sender).Font.Color;
 end;
  TStringGrid(Sender).Canvas.FillRect(Rect);
  TStringGrid(Sender).Canvas.TextRect(
    Rect, Rect.Left + 2, Rect.Top + 2, TStringGrid(Sender).Cells[ACol, ARow]
  );
end;

procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
 ARow: Integer; var CanSelect: Boolean);
begin
 // чтобы перерисовалась "покинутая" строка, ибо сам стринггрид
 // перерисовывает только "покинутую" ячейку
 TStringGrid(Sender).Invalidate;
end;


Работает и с в включенным по умолчанию DefaultDrawing. При отключенном теряеется 3D-шность фиксированных ячеек, ибо это делается в TCustomGrid.Paint именно если DefaultDrawing = true



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

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

Наверх




Память: 0.47 MB
Время: 0.032 c
2-1163409157
иван8511
2006-11-13 12:12
2006.12.03
Как из одного события вызвать другое?


15-1163250973
Сало
2006-11-11 16:16
2006.12.03
Не прошло и 15 лет...


2-1163792521
vasIzmax
2006-11-17 22:42
2006.12.03
Понятие объекта


2-1163670719
galyc
2006-11-16 12:51
2006.12.03
правильность ввода пути


2-1163535181
DoktorX
2006-11-14 23:13
2006.12.03
А вы не могли бы мне подсказать как сравнить по пикселам два ч/б