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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2014, 21:38   #1
Леон2110
Пользователь
 
Регистрация: 23.06.2014
Сообщений: 13
По умолчанию Проверка данных в StringGrid1

Здравствуйте. Помогите пожалуйста написать цикл для проверки введенных данных в компоненте StringGrid1.

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
   if ((form1.StringGrid1.Cells[0,0] = '0') and (form1.StringGrid1.Cells[0,1] = '1') and (form1.StringGrid1.Cells[0,2] = '2')...и т.д...) then begin
    form2.Show
  end;
end;
В общем должно проверять, если в компоненте StringGrid1 введены цифры:

0 4 8 12
1 5 9 13
2 6 10 14
3 7 11 15

Я пока временно написал все в if и с кучей and-ов это все организовал, помогите пожалуйста написать небольшой цикл для этой проверки, потому что планируется увеличить число полей в StringGrid1 и это условие будет слишком длинное.

Начало думаю как-то так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var i,x,y : integer;
begin
for X:=0 to 3 do
for y:=0 to 3 do begin
...
  end;
end;

Последний раз редактировалось Леон2110; 04.07.2014 в 21:43.
Леон2110 вне форума Ответить с цитированием
Старый 04.07.2014, 21:53   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
  xOk:=True;
  for i:=0 to 15 do xOk:=xOk and (StrToIntDef(StringGrid1.Cells[i mod 4,i div 4],-1)=i);
  if xOk then ...
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 04.07.2014, 22:02   #3
Леон2110
Пользователь
 
Регистрация: 23.06.2014
Сообщений: 13
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var xOk: boolean;
i: integer;
begin
xOk:=True;
for i:=0 to 15 do
xOk:=xOk and (StrToIntDef(StringGrid1.Cells[i mod 4,i div 4],-1)=i);
  if xOk then
  form2.Show;
end;
Я что-то не так написал в коде? не работает.
Леон2110 вне форума Ответить с цитированием
Старый 04.07.2014, 22:22   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
не работает
А, там для заполнения
0 1 2 3
4 5 и т.д.
Сделай так:

Код:
  for i:=0 to 15 do xOk:=xOk and (StrToIntDef(StringGrid1.Cells[i mod 4,i div 4],-1)=(i div 4)+(i mod 4)*4);
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 04.07.2014, 22:28   #5
Леон2110
Пользователь
 
Регистрация: 23.06.2014
Сообщений: 13
По умолчанию

оо спасибо большое)) Работает отлично.
Леон2110 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка данных каждой ячейки в столбце с условием и при совпадении, занесение данных в параллельные ячейки другого столбца DEE9 Помощь студентам 3 12.04.2014 08:46
проверка данных - база данных Anton PHP 2 05.08.2012 17:16
проверка базы данных на корректность веденных данных samouelson БД в Delphi 1 20.12.2009 17:23
проверка данных 2 nervnuu Помощь студентам 0 07.12.2009 21:51
StringGrid1 Ратмир Помощь студентам 2 04.04.2009 14:51