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

Вниз

TFIBDataSet получить следующее значение поля в OnDrawColumnCell   Найти похожие ветки 

 
DelphiLexx ©   (2006-08-09 16:18) [0]

В OnDrawColumnCell происходит моя отрисовка нижней граници сетки записи в том случае если следующее значение  конкретного поля TFIBDataSet <= текущего.
Я делаю так:

TFIBDataSet.First;
CurrValue := TFIBDataSet.FieldByName("Field1").AsInteger;
TFIBDataSet.Next;
NextValue := TFIBDataSet.FieldByName("Field1").AsInteger;
if CurrValue >= NextValue then
begin
   {здесь я осуществляю свою прорисовку}
end;

Всё это приводит к зацикливанию OnDrawColumnCell
Как все таки нужно решать задачу.


 
MsGuns ©   (2006-08-09 16:57) [1]

Вместо TIBDataSet использовать для отображения TCLientDataSet, куда предварительно загрузить полученный с сервера запросом НД. Предварительно добавить доп.поле флагов.
Потом этот датасет отсортировать как надо и, просканировав его, выставить флаги как нужно.
Отрисовка же делается с помощью этих флагов и безо всякого "прыгания" и "скакания" по датасету.


 
Ega23 ©   (2006-08-09 17:11) [2]


TFIBDataSet.DisableControls;
try
 TFIBDataSet.First;
 CurrValue := TFIBDataSet.FieldByName("Field1").AsInteger;
 TFIBDataSet.Next;
 NextValue := TFIBDataSet.FieldByName("Field1").AsInteger;
 if CurrValue >= NextValue then
 begin
    {здесь я осуществляю свою прорисовку}
 end;
finally
 TFIBDataSet.EnableControls;  
end;

?


 
MsGuns ©   (2006-08-09 17:21) [3]

>Ega23 ©   (09.08.06 17:11) [2]

Угу, а Eof Пушкин будет ловить ?
Кроме того, что делать с разными событиями датасета, фильтрацией, возможными переходами датасета из одного режима в другой (при редактировании в гриде) и т.д. ?

Засовывать перемещения по датасету в обработчик прорисовки отображающего его грида - верный способ получения жирного гемора


 
clickmaker ©   (2006-08-09 17:23) [4]

можно вычисляемое поле сделать для определения форматирования


 
sniknik ©   (2006-08-09 17:28) [5]

> Ega23 ©   (09.08.06 17:11) [2]
[0] > В OnDrawColumnCell ...
EnableControls вызовет рефреш .... и...
> Всё это приводит к зацикливанию OnDrawColumnCell

DelphiLexx
не надо в отрисовке грида лезть и менять данные которые рисуются, прыгать по нм... лучше исправь логику того, что хочеш сделать... твоя ошибочна.


 
Ega23 ©   (2006-08-09 17:35) [6]


> EnableControls вызовет рефреш .... и...


А вызовет ли?


 
Ega23 ©   (2006-08-09 17:37) [7]

Посмотрел. Вызовет.
Я, кстати, если это кого-то интересует, вообще всё на уровне запроса бы сделал.
Кстати, именно этим в данный момент времени и занимаюсь (раскраской грида)


 
Ega23 ©   (2006-08-09 17:37) [8]


> Угу, а Eof Пушкин будет ловить ?


Я особо не вникал в то, что между First и т.д.



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

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

Наверх




Память: 0.48 MB
Время: 0.031 c
2-1158646489
pkm
2006-09-19 10:14
2006.10.08
Объявление массива.


6-1147938633
LINde
2006-05-18 11:50
2006.10.08
Как узнать системную информацию на комп"ютерах в локальной сети


2-1158578030
Rezon
2006-09-18 15:13
2006.10.08
Подскажите где можно почитать про ....


15-1158563005
VitV
2006-09-18 11:03
2006.10.08
Название компонента


2-1158408359
greengeneral
2006-09-16 16:05
2006.10.08
Как сделать чтобы в Edit1 можно было вводить только цифры?