Форум: "Основная";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];
ВнизDBGrid и выделять строчку Найти похожие ветки
← →
DimonNew (2004-12-29 15:07) [0]Привет, подскажите пож-та. В DBGrid можно ставить опцию OnRowSelet, но при этом нельзя редактировать ячейки. Как можно обойти эту ситуацию? В одной статье видел как выделять ячейку самому в DrawColumnCell:
if gdSelected in State then
begin
TDBGrid(Sender).Canvas.Brush.Color:=clGreen;
TDBGrid(Sender).Canvas.Font.Color:=clWhite;
end;
TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
Но здесь только текущая ячейка, а как всю строчку выделить?
← →
msguns © (2004-12-29 15:09) [1]Убери if и будет тебе краситься вся строка
← →
DimonNew (2004-12-29 15:16) [2]Краситься вся таблица.
← →
msguns © (2004-12-29 15:21) [3]Проверяй номер строки через TDBGrid.DataSource.DataSet.RecNo=DataSet.RecNo
← →
midavik © (2004-12-29 15:30) [4]
type THackDBGrid = class(TDBGrid);
type TForm1 = class(TForm)
...........
...........
procedure TForm1.DBGrid1DrawColumnCell
(Sender: TObject; const Rect: TRect; DataCol: Integer;
Column: TColumn; State: TGridDrawState);
begin
if (THackDBGrid(DBGrid1).DataLink.ActiveRecord + 1 =
THackDBGrid(DBGrid1).Row)
or (gdFocused in State) or (gdSelected in State) then
begin
DBGrid1.Canvas.Brush.Color := clSkyBlue;
DBGrid1.Canvas.Font.Style := DBGrid1.Canvas.Font.Style + [fsBold];
DBGrid1.Canvas.Font.Color := clRed;
end;
end;
← →
DimonNew (2004-12-29 16:19) [5]msguns ©
Хорошщая идея, только одно и то же с двух сторон, поэтому вся таблица краситься снова. Вот если бы определить номер строки у выделенной ячейки, только не могу найти, тогда бы сработало:
TDBGrid.DataSource.DataSet.RecNo="номер строки выделенной ячейки"
← →
DimonNew (2004-12-29 17:54) [6]Спасибо всем, особенно midavik ©, на его основе вот , что заработало:
TDBCracker = class(TCustomDBGrid);
with TDBCracker(Sender) do
if DataLink.ActiveRecord = Row - 1 then
begin
Canvas.Brush.Color:=clGreen;
Canvas.Font.Color:=clWhite;
end;
TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.037 c