Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.18;
Скачать: [xml.tar.bz2];




Вниз

Как в RXDBGrid текущию строку сделать с другим Font или цветом? 


Fran   (2002-01-24 09:59) [0]

Как в RXDBGrid текущию строку сделать с другим Font или цветом?
Т.е. строку где стоит курсор.



savva   (2002-01-24 10:01) [1]

а перерисовывать самостоятельно не пробовал?



gek   (2002-01-24 10:10) [2]


procedure TForm_find.RxDBGrid_findGetCellParams(Sender: TObject; Field: TField;
AFont: TFont; var Background: TColor; Highlight: Boolean);
begin
if(Highlight)and(RxDBGrid_find.Focused) then
begin
AFont.Color := clHighlightText;
Background := clHighlight;
end
else if(Highlight)and( not RxDBGrid_find.Focused)then
begin
AFont.Color := clnavy;
Background := clbtnface;
end;
end;



Alexandr   (2002-01-24 10:29) [3]

это по-моему для только для текущей ячейки, а для все текущей строки надо по-другому



Alexandr   (2002-01-24 10:29) [4]

кстати, в кулибе написано как делать



savva   (2002-01-24 10:47) [5]

Delphi Help ©
The following example conditionally changes the font color of rows in a DB Grid. The following code is added to the DB Grid’s OnDrawDataCell event. If the field Size is greater than 10, the row’s font will be red.

procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState);

begin
if Table1.FieldByName("Size").AsFloat > 10 then
DBGrid1.Canvas.Font.Color := clRed;
DBGrid1.DefaultDrawDataCell(Rect, Field, State);
end;

надо привязываться к State:

Description

TGridDrawState represents state information about the cell of a grid that is being rendered. It is a set that includes 0 or more of the following:

Value Meaning

gdSelected The cell is currently selected.
gdFocused The cell has input focus.
gdFixed The cell is in the fixed region of the grid.

то есть тебе надо gdFocused - и все...



savva   (2002-01-24 10:51) [6]

а что бу перерисовать все строку - ИМХО просто пройтись по горизонтали от 1 столбца к последнему...



Alexandr   (2002-01-24 11:02) [7]

вот что в кулибе написано по поводу выделения цветом всей текущей строки


DefaultDrawing:=False;
....
procedure TfrmCard.GridDrawColumnCell(Sender: TObject; constRect: TRect;

DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var

Index : Integer;
Marked, Selected: Boolean;
begin


Marked := False;
if (dgMultiSelect in Grid.Options) and THackDBGrid(Grid).Datalink.Active then
Marked:=Grid.SelectedRows.Find(THackDBGrid(Grid).Datalink.Datasource.Dataset.Bookmark,Index);


Selected := THackDBGrid(Grid).Datalink.Active and (Grid.Row-1 = THackDBGrid(Grid).Datalink.ActiveRecord);


if Marked then
begin
Grid.Canvas.Brush.Color:=$DFEFDF;
Grid.Canvas.Font.Color :=clBlack;
end;


if Selected then
begin
Grid.Canvas.Brush.Color:=$FFFBF0;
Grid.Canvas.Font.Color :=clBlack;
if Marked then
Grid.Canvas.Brush.Color:=$EFE3DF; { $8F8A30 }
end;


Grid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

где



--------------------------------------------------------------------------------
THackDBGrid = class(TDBGrid)

property DataLink;
property UpdateLock;
end;

Обратите внимание на обьявление класса THackDBGrid. Таким образом можно получить доступ к приватным полям, свойствам и методам класса, что, к сожалению, приходится делать, если авторы исходного класса оказались не предусмотрительны. [001138




Fran   (2002-01-24 15:48) [8]

Спасибо, последний совет Alexandr (24.01.02 11:02) самый правильный. Все получилось. А в Кулибе я этого аочему-то не нашел :(




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.18;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.014 c
1-57087           Егор                  2002-01-31 04:25  2002.02.18  
DCOM


3-57015           jenbond               2002-01-24 09:45  2002.02.18  
выбор СУБД


6-57166           amamed_3071           2001-11-28 08:27  2002.02.18  
Послат сообшения на порт не имея Remote acces


3-57008           Andrushk              2002-01-23 17:11  2002.02.18  
Как удалить записи в FoxPro шной таблице


14-57185          perov                 2001-12-27 09:33  2002.02.18  
справка а-ля хинт