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

Вниз

DBGridDrawColumnCell   Найти похожие ветки 

 
Quart   (2007-10-30 15:59) [0]

Здравствуйте, ув. Мастера!
Такой вопрос:
Раскрашиваю ячейки цветами.
Решил засунуть сюда же еще один запрос помимо двух других; в качестве параметра в этот запрос передается значение ячейки Nomer_p
выделенной строки. Запрос работает правильно только если проходить DBgrid сверху вниз, а если проходить снизу вверх, то запросу передается параметр не текущей вбранной ячейки, а выбранной непосредственно до этого, т.е. фокус ячейки запаздывает на один шаг.
Можно ли как-нибудь это обойти?
procedure TForm5.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
a:string;
e,b:integer;
begin
OutRect:=Rect;
Query1.Active:=False;
Query2.Active:=False;
Query3.Active:=False;
end
else
if Column.FieldName = "n" then
begin
a:=Table2Nomer_pr_form.Value;
Query1.Active:=False;
Query2.Active:=False;
Query3.Active:=False;
Query1.ParamByName("a1").AsString:=a;
Query2.ParamByName("a1").AsString:=a;
Query3.ParamByName("a1").AsString:=a;
Query1.Active:=True;
Query2.Active:=True;
Query3.Active:=True;
b:=Query2.FieldByName("SUM OF Kolichestvo").AsInteger;
e:=Query3Kolvo_g.AsInteger;
begin
if
b>=e*80/100
then
 dbgrid1.canvas.Brush.color := clRed
else
if b>=e*50/100  then
dbgrid1.canvas.Brush.color := clYellow
else
dbgrid1.canvas.Brush.color := clGreen;
begin
dbGrid1.DefaultDrawDataCell(Rect,table2Nomer_p,State);
end;
end;
end;
end;


 
Desdechado ©   (2007-10-30 16:06) [1]

Ты опираешься на непонятные данные. А опираться нужно на то, что пришло в параметрах.


 
Маша Шрайбер ©   (2007-10-30 16:26) [2]

И вообще делать что-то в процедуре отрисовки кроме потребностей отрисовки и собственно отрисовки есть глупость и бред. И это вдвойне гб, когда выполняются запросы на каждый чих, сиречь отрисовку одной ячейки из множества видимых на экране.


 
Quart   (2007-10-30 16:27) [3]


> Desdechado ©   (30.10.07 16:06) [1]

Что вы хотели этим мне сказать?


 
Desdechado ©   (2007-10-30 16:35) [4]

Quart   (30.10.07 16:27) [3]
Ты используешь для расчетов Table2Nomer_pr_form.Value, а каково значение в каждой конкретной отрисовываемой ячейке? Используй DataCol: Integer; Column: TColumn


 
Quart   (2007-10-30 16:52) [5]

Здесь я ошибся:
не так     dbGrid1.DefaultDrawDataCell(Rect,table2Nomer_p,State);
а вот так dbGrid1.DefaultDrawDataCell(Rect,table2Nomer_pr_form,State);


 
Quart   (2007-10-30 17:03) [6]

пробовал Column.Field.Value - то же самое



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

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

Наверх




Память: 0.48 MB
Время: 0.013 c
15-1192999930
SerJaNT
2007-10-22 00:52
2007.11.25
ACDSee 3.0


1-1189017087
Fin
2007-09-05 22:31
2007.11.25
Как заполучить и в чём хранить 20 разрядное число ...


2-1194094219
Kolan
2007-11-03 15:50
2007.11.25
Как проеделить координаты для DropDownMenu у ToolButton?


15-1192827366
Nic
2007-10-20 00:56
2007.11.25
Какой регистратор лучше для...


2-1193848611
harisma
2007-10-31 19:36
2007.11.25
Позиционирование на запись в ComboBox