Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2011, 13:25   #1
sandr4
 
Регистрация: 05.12.2011
Сообщений: 5
Вопрос Как подсчитать подсвеченные строки в DBGrid-е?

Доброго времени суток.Помогите пожалуйста решить задачку.По определенному условию закрашиваю строки в DBGridEh.Необходимо сосчитать эти строки и вывести в Label.Caption.
Делаю так:
//Окрашивание строк в зелёный цвет
procedure TmainForm.DBGridEh1DrawColumnCell(S ender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
dat:=StrToDate(Edit3.Text);
if MainForm.sopTable.FieldByName('data ').AsFloat<dat then
mainForm.DBGridEh1.Canvas.Brush.Col or:=clGreen;
mainForm.DBGridEh1.DefaultDrawColum nCell(Rect,DataCol,Column,State);
Label.Caption:=IntToStr(DBGridEh1.D ataSource.DataSet.RecordCount);
end;
Выводит общее к-во строк, а необходимо подкрашенные.Как это делается?

Последний раз редактировалось sandr4; 05.12.2011 в 13:54.
sandr4 вне форума Ответить с цитированием
Старый 05.12.2011, 13:59   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
greencount:=0;
MainForm.sopTable.first;
while not MainForm.sopTable.EOF do begin
  if MainForm.sopTable.FieldByName('data ').AsFloat<dat then greencount:=greencount+1;
  MainForm.sopTable.NEXT;
end;
Label.Caption:=inntostr(grenncount);
MainForm.sopTable.FIRST;
И делается сие не во время рисования (onDraw), а при открытии таблицы, и после ее изменения (и повторном считывании).
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 05.12.2011, 14:14   #3
sandr4
 
Регистрация: 05.12.2011
Сообщений: 5
По умолчанию

Спасибо, позже попробую, сейчас собираюсь на работу...
sandr4 вне форума Ответить с цитированием
Старый 06.12.2011, 11:41   #4
sandr4
 
Регистрация: 05.12.2011
Сообщений: 5
По умолчанию

Все работает.Только при "0" показывает на одну запись больше.Ставлю "-1" и все ОК.Еще раз спасибо!!!
sandr4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как найти и подсчитать повторяющиеся строки? Jacki Microsoft Office Excel 2 09.03.2011 07:11
Нужно подсчитать данные с одной строки таблицы MikaS007 БД в Delphi 9 09.06.2010 08:11
Нужно подсчитать данные с одной строки таблицы MikaS007 БД в Delphi 0 07.06.2010 13:42
подсчитать суммы элементов заданной строки и заданного столбца и определить, где сумма минимальна lubov09 Помощь студентам 4 11.11.2009 17:02
Как в DBGrid пронумеровать строки Talemir БД в Delphi 26 14.08.2009 09:25