Форум: "Базы";
Текущий архив: 2002.07.15;
Скачать: [xml.tar.bz2];
ВнизDBGrid Найти похожие ветки
← →
Teas (2002-06-15 01:48) [0]Подскажите, как в DBGrid выделять строку цветом при перемещении по таблице, с возможностью редактирования.
← →
ilysha (2002-06-15 11:53) [1]http://www.gratis97.chat.ru/hobby/delphi/122600-1/txt122600-1.htm
← →
Teas (2002-06-17 23:57) [2]Спасибо за ответ. Но содержимое сайта не помогло. У меня таблица имеет много столбцов. И, чтобы была видна текущая запись мне надо выделить всю строку целиком. То есть когда нажимаю клавишу Up or Down выделение строки должно переходить вместе с курсором.
← →
Севостьянов Игорь (2002-06-18 11:08) [3]Выставь опцию для DBGrid
DBGrid.Options := DBGrid.Options + [dgRowSelect]
← →
Lusha (2002-06-18 11:10) [4]Например так...
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var aTitles : Integer;
begin
aTitles := 0;
if dgTitles in TDBGrid(Sender).Options then inc(aTitles);
with TMyDBGrid(Sender) do
if Datalink.ActiveRecord = Row - aTitles then
begin
Canvas.Brush.Color := clHighlight;
Canvas.FillRect(Rect);
Canvas.Font.Color := clHighlightText;
Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, Column.Field.AsString);
end;
end;
здесь TMyDBGrid = class(TDBGrid)...
← →
Севостьянов Игорь (2002-06-18 11:10) [5]А вообще я вот написал комплнент DGrid с выделением столбцов (Multi тоже присутствует) и посмотри RX - там в примерах есть
Все вопросы по мылу
← →
fool (2002-06-18 11:39) [6]В зависимости от условий - выделяет разными цветами:
procedure TFrmMain.DBGrid3DrawDataCell(Sender: TObject;
const Rect: TRect; Field: TField; State: TGridDrawState);
begin
if QStreRoomDetail.FieldByName("Uses").AsBoolean then
begin
DBGrid3.Canvas.Brush.Color := clYellow;
DBGrid3.Canvas.Font.Color := clWindowText;
end else
if QStreRoomDetail.FieldByName("CurrentMass").AsFloat > 0 then
begin
DBGrid3.Canvas.Brush.Color := RGB(175,230,140);
DBGrid3.Canvas.Font.Color := clWindowText;
end else if not QStreRoomDetail.FieldByName("CurrentMass").AsFloat = 0 then
begin
DBGrid3.Canvas.Brush.Color := RGB(230,165,140);
DBGrid3.Canvas.Font.Color := clWindowText;
end;
DBGrid3.DefaultDrawDataCell(Rect, Field, State);
end;
← →
fool (2002-06-18 11:43) [7]Извините, не совсем то что надо, только счас заметил, что выделить надо текущую запись :0(
← →
Pavel_S (2002-06-18 13:10) [8]Насчет текущей записи -
Вот тебе часть кода, надеюсь разберешся
сначала укажи это вначале :
type
TCustomDBGridCracker = class(TCustomDBGrid);
затем в событии OnDrawColumnCell
if TCustomDBGridCracker(sender).DataLink.ActiveRecord = TCustomDBGridCracker(Sender).Row - 1 then
with TDBGrid(Sender).Canvas do
begin
Brush.Color:=clTeal;
Pen.Color:=clBlue;
font.Color:=clWhite;
end;
if gdSelected in state then
with TDBGrid(Sender).Canvas do
begin
Brush.Color:=$C8C800;
Pen.Color:=clBlue;
font.Color:=clWhite;
font.Style:=[fsBold];
TextOut(Rect.Left+2,Rect.Top+2,Column.Field.Text);
end;
TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
← →
Teas (2002-06-19 12:58) [9]Спасибо всем.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.07.15;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.01 c