Задали нам сделать кроссворд на дельфи...есть вопросы (или для простоты - слова), ответы(слова) надо ввести в определенное место в стринггриде и потом проверить правильно ли введено, если где то не правильно (пересечение слов не совпало или вообще слово не то), то как то это показать.... вот... вопросы: 1) Как выделить определенную ячейку в стринггриде? 2) Может у кого либо есть алгоритм проверки ввода слов... 3) Как выделить ошибку? Буду благодарна за любую помощь ))
По поводу вопросов к кроссворду - предлагаю следующее решение (оно не блестящее, но работающее). Смотрите: вот у нас есть файл с кроссвордом: CROSWORD.DAT. Хорошо; создаем в "Блокноте" текстовый файл с вопросами и обзываем его тоже CROSWORD, но расширение даем VPR: CROSWORD.VPR. После загрузки кроссворда из файла CROSWORD.DAT меняем расширение, и читаем вопросы из CROSWORD.VPR. Подробности смотрите в коде. По поводу стрелочек - хи-хи... сделано было так. Когда мы просто поставили на форму грид, то по нему уже и так можно ходить. Проблемы начинаются, когда мы беремся его редактировать. Отключаются клавиши "влево" и "вправо" - они переключаются на редактирования текста в ячейке. И перейти в соседнюю ячейку можно только после нажатия на ЭНТЕР. Поэтому я сделал что: я заставил программу после каждой нажатой буквы-цифры имитировать нажатие на ЭНТЕР. Это сделано здесь:
procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char); begin if key <> #13 then begin StringGrid1.Cells[StringGrid1.Col,StringGrid1.Row] := Key; Key := #13; StringGrid1.OnKeyPress(Sender,key); // имитируем нажатие end; end;
По поводу проверки... это зависит от того, как срочно это Вам нужно. Сегодня мне уже лень, завтра я могу не управиться, в выходные я этим заниматься не буду... если до вторника потерпите, то так и быть. В общем-то, помочь Вам было бы приятно.