Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.11.25;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.046 c
2-1194260362
ProgRAMmer Dimonych
2007-11-05 13:59
2007.11.25
TMemoryStream (ограничения)


2-1193694632
Nikola
2007-10-30 00:50
2007.11.25
Фильтры ADOTable


2-1193996679
Dmitry_177
2007-11-02 12:44
2007.11.25
как сделать понулям секунды в TDateTime?


3-1184266719
WhiteCat
2007-07-12 22:58
2007.11.25
LIKE и регистр


15-1192726437
lak\proxy\
2007-10-18 20:53
2007.11.25
Проблема с Вордом





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский