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

Вниз

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

 
vigo_   (2006-07-14 11:59) [0]

Возможно ли выделить цветом одну или несколько из строк в TDBGrid?


 
DVM ©   (2006-07-14 12:01) [1]

Возможно


 
vigo_   (2006-07-14 12:03) [2]

Если можно код...


 
Плохиш ©   (2006-07-14 12:06) [3]


> vigo_   (14.07.06 12:03) [2]
> Если можно код...

А поиском по форуму воспользоваться "Слабо"?


 
Amoeba ©   (2006-07-14 12:06) [4]

На http:\\www.delphikingdom.com найдешь большую статью "Разноцветный DBGrid".


 
vigo_   (2006-07-14 12:08) [5]

спасибо


 
vigo_   (2006-07-14 12:59) [6]

Народ, не могу загрузить с delphikingdom раздел "Свитки", где должна быть описана статья "Разноцветный DBGrid". Выложете, плиз, статью.
Спасибо


 
DVM ©   (2006-07-14 13:00) [7]


procedure TfrmMain.dbgrdListZoneDrawColumnCell(Sender: TObject;
 const Rect: TRect; DataCol: Integer; Column: TColumn;
 State: TGridDrawState);
var
 CheckIt: boolean;
begin
if TDBGrid(Sender).DataSource.DataSet.RecNo mod 2 = 1 then
   TDBGrid(Sender).Canvas.Brush.Color := cl3DLight;
 if gdSelected in State then
   begin
   TDBGrid(Sender).Canvas.Brush.Color:= clHighLight;
   TDBGrid(Sender).Canvas.Font.Color := clHighLightText;
  end;
 TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;


 
vigo_   (2006-07-14 15:28) [8]

Еще один вопрос по этой теме. Мне, например, нужно отметить определенные строки, причем их количество может меняться, а не через одну, как в примере. Тогда я должен указать диапазон, но в "set of " больше 256 эелементов не поместится. Как можно пометить бОльшее количество определенных строк?


 
DVM ©   (2006-07-14 15:35) [9]


> Как можно пометить бОльшее количество определенных строк?

procedure TfrmMain.dbgrdListZoneDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
CheckIt: boolean;
begin
if (Условие) then
  TDBGrid(Sender).Canvas.Brush.Color := clRed;
if gdSelected in State then
  begin
  TDBGrid(Sender).Canvas.Brush.Color:= clHighLight;
  TDBGrid(Sender).Canvas.Font.Color := clHighLightText;
 end;
TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

Условие - очевидно проверка значения какого либо поля в рисуемой строке


 
vigo_   (2006-07-14 15:42) [10]

А если строки уже прорисованы?


 
DVM ©   (2006-07-14 15:46) [11]


> А если строки уже прорисованы?

InvalidateRect()


 
vigo_   (2006-07-14 15:47) [12]

Хочу сделать кнопку, по которой осуществляется некая проверка. После чего определенные строки на гриде выделяются. При этом пользуюсь событием DBGrid.Refresh, так как пользователь может, например, удалить выделенную запись, после чего, естественно, строка этого номера не должна быть отмечена.



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

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

Наверх




Память: 0.49 MB
Время: 0.048 c
2-1154342098
zamtmn
2006-07-31 14:34
2006.08.27
Как "динамический" вызать конструктор?


6-1144075064
Yegorchic
2006-04-03 18:37
2006.08.27
Кодировка и IdPOP3


6-1144146711
WebSqlNeederr
2006-04-04 14:31
2006.08.27
Закрыть вылетающееся окошко ошибки ИЕ, вернее кликнуть на ОК


4-1146806660
__DATA__
2006-05-05 09:24
2006.08.27
Сообщение, отвечающее за изменение списка открытых окон в системе


15-1153990849
Юрий Зотов
2006-07-27 13:00
2006.08.27
"Не связывайся с дураками".