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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2011, 08:04   #1
Basic_
 
Регистрация: 01.04.2011
Сообщений: 3
Вопрос Выделенные ячейки StringGrid

Уважаемые знающие люди! Помогите незнающему
Программа изменяет цвет ячеек StringGrid в зависимости от значения (0 - зеленый, 1 - красный). Вопрос интересует следующий: как выделить область ячеек и при помощи контекстного меню изменить значения выделенных ячеек?

Вот код:

void __fastcall SaveCells( TStringGrid* StringGrid, const AnsiString& FileName)
{
std::auto_ptr<TStrings> SaveStrings( new TStringList());
const int col_count =StringGrid->ColCount;
for (int index = 0; index < col_count; ++index)
{
SaveStrings->AddStrings(
StringGrid->Cols[index]);
}
SaveStrings->SaveToFile(FileName);
}
//----------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
char x[15]="d:\ploshad1.txt";
SaveCells( StringGrid1, x );
}
//---------------------------------------------------------------------------
void __fastcall LoadCells(TStringGrid* StringGrid, const AnsiString& FileName)
{
std::auto_ptr<TStrings> LoadStrings( new TStringList());
LoadStrings->LoadFromFile(FileName);
int index = 0;
const int col_count = StringGrid->ColCount;
const int row_count = StringGrid->RowCount;
for (int col=0;col<col_count;++col)
{
for (int row=0;row<row_count;++row)
{
StringGrid->Cells[col][row] = LoadStrings->Strings[index++];
}
}
}
//----------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
char x[15]="d:\ploshad1.txt";
LoadCells( StringGrid1, x );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect, TGridDrawState State)
{
int i, j;
for (i=0; i<40; i++)
for (j=0; j<40; j++)
if (StringGrid1->Cells [i][j] == 1)
{
if(ACol == i && ARow == j)
{
StringGrid1->Canvas->Brush->Color = clRed;
StringGrid1->Canvas->FillRect(Rect);
}
}
else
{
if(ACol == i && ARow == j)
{
StringGrid1->Canvas->Brush->Color = clLime;
StringGrid1->Canvas->FillRect(Rect);
}
}
}
//---------------------------------------------------------------------------
Basic_ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выбрать ВСЕ выделенные ячейки в StringGrid Os_Mary Компоненты Delphi 5 23.01.2011 18:21
ячейки в StringGrid Desha Компоненты Delphi 3 06.09.2010 20:32
Менять местами выделенные ячейки Whitered Microsoft Office Excel 4 11.08.2010 14:59
Копировать только выделенные ячейки Kolpachog Microsoft Office Excel 2 10.06.2010 16:11
Ячейки в StringGrid ImmortalAlexSan Общие вопросы Delphi 2 17.05.2010 17:41