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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2009, 22:59   #1
pavelslap
Пользователь
 
Регистрация: 08.02.2009
Сообщений: 73
Вопрос Помогите со StringGrid'ами...

Здравствуйте! Обьясните, пожалуйста новичку, как закрашивать определённые ячейки в StringGrid. Работаю в C++Builder 6. Имеется вот такой код, но он не работает, так как хотелось бы мне.

Код:
void __fastcall gridDrawCell(TObject *Sender, int ACol,
      int ARow, TRect &Rect, TGridDrawState State)
{
        TStringGrid *p=(TStringGrid *)Sender;
 
        p->Canvas->Brush->Color = clBlack;
        if (p->Cells[ACol][ARow] != ' ')
                p->Canvas->FillRect(Rect);
...
pavelslap вне форума Ответить с цитированием
Старый 26.11.2009, 12:35   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
как хотелось бы мне.
Телепаты в отпуске, учти.
Цитата:
но он не работает
Вот такой вот:
Код:
//---------------------------------------------------------------------------
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect,
		  TGridDrawState State)
{
 TStringGrid *p=(TStringGrid*)Sender;
 if (p->Cells[ACol][ARow]==" ") {
  p->Canvas->Brush->Color=clRed;
 } else {
  p->Canvas->Brush->Color=clGreen;
 }
 p->Canvas->FillRect(Rect);

}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
 StringGrid1->Cells[1][2]=" ";
}
//---------------------------------------------------------------------------
Вполне работает.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.11.2009, 14:23   #3
pavelslap
Пользователь
 
Регистрация: 08.02.2009
Сообщений: 73
Радость

Цитата:
Сообщение от Stilet Посмотреть сообщение
Телепаты в отпуске, учти.

Вот такой вот:
Код:
//---------------------------------------------------------------------------
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect,
		  TGridDrawState State)
{
 TStringGrid *p=(TStringGrid*)Sender;
 if (p->Cells[ACol][ARow]==" ") {
  p->Canvas->Brush->Color=clRed;
 } else {
  p->Canvas->Brush->Color=clGreen;
 }
 p->Canvas->FillRect(Rect);

}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
 StringGrid1->Cells[1][2]=" ";
}
//---------------------------------------------------------------------------
Вполне работает.
Спасибо большое за этот код, но в связи с тем, что все телепаты уже в отпуске, мне ещё надо чтобы поверх закрашенной ячейки можно было вывести текст, и чтобы закрашивалось после нажатия кнопки TButton1

Последний раз редактировалось pavelslap; 26.11.2009 в 14:48.
pavelslap вне форума Ответить с цитированием
Старый 26.11.2009, 19:05   #4
pavelslap
Пользователь
 
Регистрация: 08.02.2009
Сообщений: 73
По умолчанию

Не подскажете?
pavelslap вне форума Ответить с цитированием
Старый 27.11.2009, 13:52   #5
pavelslap
Пользователь
 
Регистрация: 08.02.2009
Сообщений: 73
По умолчанию

Мне надо чтобы поверх закрашенной ячейки можно было вывести текст, и чтобы закрашивалось после нажатия кнопки TButton1
pavelslap вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск