Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Выделение целой строки StringGrid [D6, XP]


maxXP ©   (2006-11-15 17:53:00) 

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

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

Спс


ЮЮ   (2006-11-16 03:51:00) [1]


> что нет у него 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


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

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

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


Jeer   (2006-11-15 18:05:00) [3]

OnDrawColumnCell

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо