Раскраска строк в DevExpress QuantumGrid C++ Builder 6
Спасибо.
Привет! Кто знает как раскрасить строки в DevExpress QuantumGrid C++ Builder 6 в зависимости от значения какого-нить поля.
Спасибо.
Нужно обрабатывать событие OnDrawCell.
Вот так делал я раскраску по колонке даты ( у меня это было связано со сроком годности )
TcxCustomGridTableView *Sender, TcxCanvas *ACanvas,
TcxGridTableDataCellViewInfo *AViewInfo, bool &ADone)
{
if (dynamic_cast<TcxGridTableDataCellViewInfo *>(AViewInfo) != NULL)
{
try
{
Variant ttt=AViewInfo->GridRecord->Values[((TcxGridDBTableView *)Sender)->GetColumnByFieldName("DEXPIRY_DATE")->Index];
if(AViewInfo->GridRecord->Selected & !((TcxGridDBTableView *)Sender)->Columns[AViewInfo->Item->Index]->Focused)
{
ACanvas->Font->Color=clWhite;
}
else
{
ACanvas->Font->Color=clBlack;
}
if(!ttt.IsNull())
{
if(ttt <= (dDate->EditValue+MainForm->OffDate))
{
ACanvas->Font->Color=clRed;
}
else
{
if(ttt <= (dDate->EditValue+MainForm->WarnDate))
{
ACanvas->Font->Color=clPurple;
}
}
}
}
catch(...)
{NULL;}
}
Нужно обрабатывать событие OnDrawCell.
Вот так делал я раскраску по колонке даты ( у меня это было связано со сроком годности )
TcxCustomGridTableView *Sender, TcxCanvas *ACanvas,
TcxGridTableDataCellViewInfo *AViewInfo, bool &ADone)
{
if (dynamic_cast<TcxGridTableDataCellViewInfo *>(AViewInfo) != NULL)
{
try
{
Variant ttt=AViewInfo->GridRecord->Values[((TcxGridDBTableView *)Sender)->GetColumnByFieldName("DEXPIRY_DATE")->Index];
if(AViewInfo->GridRecord->Selected & !((TcxGridDBTableView *)Sender)->Columns[AViewInfo->Item->Index]->Focused)
{
ACanvas->Font->Color=clWhite;
}
else
{
ACanvas->Font->Color=clBlack;
}
if(!ttt.IsNull())
{
if(ttt <= (dDate->EditValue+MainForm->OffDate))
{
ACanvas->Font->Color=clRed;
}
else
{
if(ttt <= (dDate->EditValue+MainForm->WarnDate))
{
ACanvas->Font->Color=clPurple;
}
}
}
}
catch(...)
{NULL;}
}
А как быть если поле с текстовым значением то-есть значение текстовое
А как быть если поле с текстовым значением то-есть значение текстовое
ну и сравнивай с текстовым значением.... тип Variant сам все разрулит, проблем быть не должно.
ну и сравнивай с текстовым значением.... тип Variant сам все разрулит, проблем быть не должно.
Извини, я еще не все вкурил
пишу в обработчике:
Variant Status = AViewInfo->GridRecord->Values[((TcxGridDBTableView *)Sender)->GetColumnByFieldName("status")->Index];
if (Status != "Ок")
ACanvas->Brush->Color = clRed;
получаю:
[C++ Error] Unit60.cpp(44): E2015 Ambiguity between '_fastcall Variant::operator wchar_t *() const' and '_fastcall Variant::operator wchar_t * *()'
Как быть? Помоги пожалуйста... Спасибо.
if (Status != String("Ок"))
Подскажи где его взять (и чтоб денег не просил и не глючил)
на мыло мне пиши [email]fantom@oe.if.ua[/email]
я в таких случаях делаю так
if (Status != String("Ок"))
Привет! Может подскажешь как в QuantumGrid в Indicator вставить рисунок или иконку (что-то типа как идет редактирование в индикаторе появляется ручка)... Спасибо...
Привет! Может подскажешь как в QuantumGrid в Indicator вставить рисунок или иконку (что-то типа как идет редактирование в индикаторе появляется ручка)... Спасибо...
{
int i=0;
TcxGridIndicatorRowItemViewInfo *info=dynamic_cast<TcxGridIndicatorRowItemViewInfo *>(AViewInfo);
if(info)
{
i=info->GridRecord->RecordIndex;
ACanvas->FillRect(AViewInfo->Bounds);
ACanvas->DrawComplexFrame(AViewInfo->Bounds, clBlack, clBlack, TcxBorders()<<bBottom<< bLeft<< bRight, 1);
if (условия_рисования)
{
TRect FBounds = AViewInfo->Bounds;
int x=(FBounds.Left+FBounds.Right)/2-4;
int y=(FBounds.Top+FBounds.Bottom)/2-4;
ACanvas->Draw(x,y,tbitmap);
}
ADone=true;
}
}
{
int i=0;
TcxGridIndicatorRowItemViewInfo *info=dynamic_cast<TcxGridIndicatorRowItemViewInfo *>(AViewInfo);
if(info)
{
i=info->GridRecord->RecordIndex;
ACanvas->FillRect(AViewInfo->Bounds);
ACanvas->DrawComplexFrame(AViewInfo->Bounds, clBlack, clBlack, TcxBorders()<<bBottom<< bLeft<< bRight, 1);
if (условия_рисования)
{
TRect FBounds = AViewInfo->Bounds;
int x=(FBounds.Left+FBounds.Right)/2-4;
int y=(FBounds.Top+FBounds.Bottom)/2-4;
ACanvas->Draw(x,y,tbitmap);
}
ADone=true;
}
}
Привет! Напиши пожалуйста примером как написать условие рисования например (если поле а = 0). Как ето правильно написать? Плиз.
Привет! Напиши пожалуйста примером как написать условие рисования например (если поле а = 0). Как ето правильно написать? Плиз.
Чтоб получить значение любой колонки надо сделать так:
а далше сравнивей с чем захочеться...
Чтоб получить значение любой колонки надо сделать так:
а далше сравнивей с чем захочеться...
Спасибо за помощь!!!