Главная страница
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.015 c
14-92233
Омлет
2003-08-09 09:17
2003.08.28
Самое главное.


8-92121
Blacked
2003-04-15 18:38
2003.08.28
...при наведении на клавишу - звуковой синал???...


14-92193
` frizZ. `
2003-08-10 19:46
2003.08.28
Задачка


7-92287
Globa
2003-06-15 11:57
2003.08.28
Технология написания Shell a для Windows


1-92115
Skier
2003-08-15 15:00
2003.08.28
Уничтожение поле класса