Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Пометить записи в DBGrid


Автор: draCOOLa 9.4.2008, 21:12
Народ, кто как решал подобную проблему. Необходимо пометить определенные записи в DBGrid. Может можно как то щелкать по текущей записи и она буде принимать другой цвет, а поле в этой строке будет иметь статус "помечен". Собственно я знаю как реализовать подобную задачу на половину. Но вот каким образом сделать так что бы при нажати допустим пробелом на текущей строке менялось значение не знаю. Может вы подскажите?

Автор: Craft 9.4.2008, 21:28
Посмотри как я раньше решал. Немного не то что тебе нужно но переделать я думаю не составит проблем.
Код

void __fastcall TF_CASH::GRID_MAINDrawColumnCell(TObject *Sender,
      const TRect &Rect, int DataCol, TColumnEh *Column,
      TGridDrawState State)
{
if(!F_CASH->T_CASH->FieldByName("CS_OSTAT")->IsNull)
         {
        if ((T_CASH->FieldByName("CS_OSTAT")->Value<0)&
                                (Column->FieldName=="CS_OSTAT") )
                {
                        GRID_MAIN->Canvas->Brush->Color=clSkyBlue;
                       // GRID_MAIN->Canvas->Font->Color=clWhite;
                        GRID_MAIN->Canvas->FillRect(Rect);
                        GRID_MAIN->Canvas->TextOut(Rect.Left+2,Rect.Top+2,Column->Field->Text);
                }
                if((T_CASH->FieldByName("CS_OSTAT")->Value>0) & (Column->FieldName=="CS_OSTAT") )
                        {
                        GRID_MAIN->Canvas->Brush->Color=clMoneyGreen;
                        //GRID_MAIN->Canvas->Font->Color=clWhite;
                        GRID_MAIN->Canvas->FillRect(Rect);
                        GRID_MAIN->Canvas->TextOut(Rect.Left+2,Rect.Top+2,Column->Field->Text);
                        }
          }
}

Автор: draCOOLa 9.4.2008, 21:52
пасиб конечно возьму на заметку, ну че та пока не очень понятно...

Автор: cra6 11.4.2008, 14:26
Собственно тебе дали код который изменяет цвет ячеек  ДБГрида при прорисовке. Если хочеш чтоб при нажатии менялся цвет и оставался таким же тебе нада менять что то в самом источнике данных - базе данных, а потом по этому признаку менять цвет (например сделать запросом значение ячейки =1,а потом все  ячейки с 1 перерисовать в красный)

Автор: draCOOLa 11.4.2008, 16:14
Цитата

(например сделать запросом значение ячейки =1,а потом все  ячейки с 1 перерисовать в красный) 


Вот это у меня и не получается. Если это запросом нужно делать, то придется использовать компонент query, а у меня table.

Автор: Vyacheslav 15.4.2008, 11:10
Для того, чтобы  как то в пометить запись( не высвечивать , а только пометить )  можно использовать TBookmark

Автор: draCOOLa 15.4.2008, 12:30
пасиб

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)