| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Таблица StringGrid |
| Автор: faithless 13.7.2007, 15:50 |
| Подскажите, пожалуйста, как можно сделать так, чтобы выдавалась ошибка если в StringGrid есть незаполненные поля??? for(int i=1;i<3;i++) for(int j=1;j<=StringGrid1->RowCount;j++) if(StringGrid1->Cells[i][j]=="") { Form3->Visible=false; Form2->Show(); } else ShowMessage("Ошибка!"); |
| Автор: _hunter 13.7.2007, 15:58 |
| написать наоборот? if(StringGrid1->Cells[i][j]=="") ShowMessage("Ошибка!"); else { Form3->Visible=false; Form2->Show(); } |
| Автор: faithless 13.7.2007, 16:00 |
| тоже пробовала. Думаю что он не правильно понимает " ". Можно как то по другому задать что поле пустое??? |
| Автор: Rodman 13.7.2007, 16:01 | ||
это имелось ввиду?! |
| Автор: faithless 13.7.2007, 16:08 |
| Можно ли как то сделать чтобы ошибка выдавалась только один раз? |
| Автор: faithless 13.7.2007, 16:38 |
| Очень странно, но теперь он всегда выдает Ашыпка, не зависимо от того заполнены поля или нет |
| Автор: Rodman 13.7.2007, 16:42 | ||
faithless, покажи код... как ты заполняешь грид!
вот у меня все нормально выдает - "не Ошибка!" |
| Автор: faithless 13.7.2007, 16:52 |
| void __fastcall TForm3::FormCreate(TObject *Sender) { StringGrid1->Cells[0][0]="выа"; StringGrid1->Cells[1][0]="ваыа"; StringGrid1->Cells[2][0]="авол"; StringGrid1->Cells[0][1]="1"; } |
| Автор: Rodman 13.7.2007, 16:53 |
| faithless, пользуйся кнопкой "Код"! ну это не пример! по твоему примеру не заполнены все ячейки! вот например, где StringGrid1->Cells[0][2], StringGrid1->Cells[0][3]??? Добавлено через 1 минуту и 5 секунд а если ты заполняешь вручную, то проверяй пошагово! и помни, что ячейки начинаются с 0! а в цикле у тебя с 1... |
| Автор: faithless 13.7.2007, 16:55 |
| они должны заполняться при запуске. Добавлено через 2 минуты и 46 секунд Можешь показать как проверить пошагово? |
| Автор: Rodman 13.7.2007, 16:58 | ||
лопустим число столбцов 3, а строк 2!
проверь! |
| Автор: faithless 13.7.2007, 17:06 |
| Проблема в том что у меня нет определенного числа строк. Их можно как добавлять так и удалять (уже после запуска программы). и поля я заполняю во время работы. |
| Автор: MODE 13.7.2007, 17:27 | ||
| А а просто проверять перед внесением данных в таблицу нельзя ???? У тебя как организован ввод данных Типа защита от дурака
|
| Автор: Rodman 16.7.2007, 09:28 | ||||
так что при проверке будут проверены все ячейки.. сколько бы их там не было! |
| Автор: ksili 16.7.2007, 09:58 | ||||
Чтобы только один раз выводилась "Ашипка", можно вместо
поставить
|
| Автор: faithless 17.7.2007, 17:23 |
| спасибо большое за помощь. у меня наконец-то все получилось int r=0; for(int i=1;i<3;i++) for(int j=1;j<StringGrid1->RowCount;j++) if (StringGrid1->Cells[i][j].Length()==0){ r=1; break; } if (r==1){ ShowMessage("Ошибка! Заполнены не все поля."); return;} else{ Form3->Visible=false; Form2->Show(); } оказывается ошибка была в том что вместо < было <= for(int j=1;j<StringGrid1->RowCount;j++). теперь все рабоает как надо |
| Автор: XPyCT 25.8.2007, 15:30 | ||
| я дико извеняюсь но в билдере есть такое метод как " IsEmpty()" если прописать этот код на событие он клик то при щелчке мыши на пустой ячейке выйдет сообщение о необходимости заполнения поля
не судите строго новичка |