Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2012, 11:27   #1
Multiman
Пользователь
 
Регистрация: 13.10.2010
Сообщений: 91
По умолчанию onDrawCell C++ Builder

Здравствуйте!

Нужно в стрингриде закрасить определенные ячейки.

Код:
void __fastcall TCoordinates::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow,
          TRect &Rect, TGridDrawState State)
{
   	int x,y;

  x=Rect.left+(Rect.Width()-StringGrid1->Canvas->TextWidth(StringGrid1->Cells[ACol][ARow]))/2;
  y=Rect.top+(Rect.Height()-StringGrid1->Canvas->TextHeight(StringGrid1->Cells[ACol][ARow]))/2;
  //if(ACol!=0 && ARow!=0)
  {
	StringGrid1->Canvas->Brush->Color=clWhite;
	StringGrid1->Canvas->Font->Color=clBlack;
	StringGrid1->Canvas->FillRect(Rect);
	StringGrid1->Canvas->TextOut(x,y,StringGrid1->Cells[ACol][ARow]);


  }

  if  ((ACol==StringGrid1->ColCount-18) && ((ARow % 2)==0))   {
	StringGrid1->Canvas->Brush->Color = clSkyBlue;
	StringGrid1->Canvas->FillRect( Rect );
	StringGrid1->Canvas->TextOut(x, y, StringGrid1->Cells[ACol][ARow]);
}
   if  ((ACol==StringGrid1->ColCount-17) && (ARow % 2==0))   {
	StringGrid1->Canvas->Brush->Color = clSkyBlue;
	StringGrid1->Canvas->FillRect( Rect );
	StringGrid1->Canvas->TextOut(x, y, StringGrid1->Cells[ACol][ARow]);
}

   if  ((ACol==StringGrid1->ColCount-14) && (ARow % 2 != 0))   {
	StringGrid1->Canvas->Brush->Color = clSkyBlue;
	StringGrid1->Canvas->FillRect( Rect );
	StringGrid1->Canvas->TextOut(x, y, StringGrid1->Cells[ACol][ARow]);
}
  if  ((ACol==StringGrid1->ColCount-11) && (ARow % 2 != 0))   {
	StringGrid1->Canvas->Brush->Color = clSkyBlue;
	StringGrid1->Canvas->FillRect( Rect );
	StringGrid1->Canvas->TextOut(x, y, StringGrid1->Cells[ACol][ARow]);

}

  }
Все работает норм, но почему то закрашивает криво:



Что нужно изменить чтобы полностью ячейка была закрашена?

И еще вопрос, как по такому же принципу изменить размер шрифта в определенных ячейках?
Multiman вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CodeGear C++ Builder 2007 Lite не может откомпилировать исходники C++ Builder 6 Ecosasha C++ Builder 2 22.11.2013 15:02
переезд из C++ Builder 6 в C++ Builder 2009 NadS Помощь студентам 2 18.03.2012 06:44
Синтаксис Delphi Builder --> C++ Builder KingBelt C++ Builder 2 28.11.2010 16:25
Не вызывается OnDrawCell по нажатию правой кнопки мыши shumsheec Общие вопросы Delphi 7 15.08.2010 15:23
Перенести код из C++ Builder 5 в C++ Builder 2009 Kreadlling C++ Builder 2 13.09.2009 14:00