|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.04.2011, 08:04 | #1 |
Регистрация: 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); } } } //--------------------------------------------------------------------------- |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Выбрать ВСЕ выделенные ячейки в 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 |