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

Вниз

Перерисовка ДБГрида взависимости от значений полей таблицы   Найти похожие ветки 

 
Relaxxx ©   (2003-08-04 18:36) [0]

Как мне закрасить ячейки Грида в соответствии от данных находящейся в таблице базы??
Я делал так

procedure Tconstr_form.DBGrid_zakDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
var
my_artic:string;
my_date_nach:TDate;
my_date_konc:TDate;
begin
my_artic:=DBGrid_zak.Fields[0].AsString;
QueryZak.Close;
QueryZak.SQL.Clear;
QueryZak.SQL.Add("SELECT * FROM QQQ WHERE ARTICLE="+""""+my_artic+"""");
Constr_form.QueryZak.Open;
//Сдесь уже пишет ошибку так делать нельзя я так понял (но не понял как мне тогда сделать)
Ну дальше я просто считываю поле которое у меня будет влиять на закраску и тогда уже закрашиваю.

ПРОБЛЕМА В ТОМ Я НЕМОГУ узнать значение поля артикла запись которого сейчас перерисовывается.
Не уверен что понятно обьяснил, но все же, если что непонятно спрашивайте
end;


 
HSolo ©   (2003-08-04 18:45) [1]

TColumnEh.Field / FieldName
И если уж у Вас DBGridEh, то не проще ли обработать OnGetCellParams?


 
HSolo ©   (2003-08-04 18:50) [2]

Вдогонку: вот действующий пример. Оно?

procedure TfGetHozOper.DBGridEh1GetCellParams(Sender: TObject;
Column: TColumnEh; AFont: TFont; var Background: TColor;
State: TGridDrawState);
begin
if (DBGridEh1.DataSource.DataSet.FieldByName("fkinddoc").AsInteger = 1)
then begin
AFont.Style := AFont.Style + [fsBold];
( (not (gdFocused in State) Вдогонку: вот действующий пример. Оно?

procedure TfGetHozOper.DBGridEh1GetCellParams(Sender: TObject;
Column: TColumnEh; AFont: TFont; var Background: TColor;
State: TGridDrawState);
begin
if (DBGridEh1.DataSource.DataSet.FieldByName("fkinddoc").AsInteger = 1)
then begin
AFont.Style := AFont.Style + [fsBold];
if ((not (gdFocused in State)) and (not (gdSelected in State)))
then Background := Column.Title.Color;
end;
end;


 
sniknik ©   (2003-08-04 18:51) [3]

у тебя при прорисовке запрос уже должен быть открыт. (заранее) ты же по нему рисуеш.(?)
~
procedure Tconstr_form.DBGrid_zakDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
if QueryZak.Active then begin
if QueryZak.Fields[0].AsInteger = 0 then {рисуеш}
....

> ПРОБЛЕМА В ТОМ Я НЕМОГУ узнать значение поля артикла запись которого сейчас перерисовывается.
то которое перерисовывается в данный момент текущее, просто читай его.
> Не уверен что понятно обьяснил, но все же, если что непонятно спрашивайте
лутше ты.



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

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

Наверх




Память: 0.47 MB
Время: 0.012 c
3-92001
rosl
2003-08-05 03:10
2003.08.28
запрос sql


14-92213
syte_ser78
2003-08-10 16:51
2003.08.28
нелецензионный delphi


3-91981
kostik78ua
2003-08-01 09:29
2003.08.28
Создать БД


3-92043
NewN
2003-08-04 12:40
2003.08.28
Штрих-код, SQL


3-92080
stone
2003-08-01 14:10
2003.08.28
Иерархические структуры (деревья) в Access