ls [i, j]: = '' + chr (I + k); k: = k +8; i: = i +1;// 8 колонок
end;
{===============}: = TStringList.Create;// Створюємо контейнер для зберігання строк.LoadFromFile ('HMRusBase.txt');// завантажуємо в нього весь текстовий файл;// Запускаємо генератор випадкових значень;
{Процедура для StringGrid2 з вкладки Events. Прибирає виділення з клітинки} TForm1.StringGrid2DrawCell (Sender: TObject; ACol, ARow: Integer;: TRect; State: TGridDrawState);: TStringGrid;: TCanvas;: = Sender as TStringGrid;: = StringGrid.Canvas;. Font: = StringGrid . Font; (ARow> = StringGrid.FixedRows) and (ACol> = StringGrid.FixedCols) Can.Brush.Color: = StringGrid.ColorCan.Brush.Color: = StringGrid2.Color; ActiveControl = Sender then// Цей рядок "вимикає" виділення (gdSelected in State) then.Font.Color: = 0;. Brush.Color: = StringGrid1.Color;;. FillRect (Rect);. TextOut (Rect.Left +2, Rect.Top +2 , StringGrid.Cells [ACol, ARow]);
end;
{Ігноруємо натискання стрілок на клавіатурі, для виключення переходів по таблиці через них}
procedure TForm1.StringGrid1KeyDown (Sender: TObject; var Key: Word;: TShiftState); (Key = VK_Up) or (Key = VK_Down) or (Key = VK_Left) or (Key = VK_RIGHT) then Key: = VK_Shift;; TForm1.Button3Click (Sender: TObject);
beginMessageDlg ('Виходимо з програми?',
mtConfirmation, [mbYes, mbNo], 0) = mrYesclose;; TForm1.Button2Click (Sender: TObject); ();;. p>
Налагодження
Налагодження програми В«Гра в словаВ»
№ Тип ошибкиПримерРешение1Логическая ошібкаНе відображається російський алфавіт в табліцеЗаполняем нашу таблицю літерами А.. Я begin k: = 192; for j: = 0 to 3 do Begin// 4 рядки for i: = 0 to 7 do StringGrid1.Cells [i, j]: = '' + chr (I + k); k: = k +8; i: = i +1;// 8 колонок end; 2Логіческая ошібкаПрі натисканні на кнопку нова гра не очищалися минулі слова Були додані наступні рядки, for i: = 0 to StringGrid2.ColCount do StringGrid2.Cells [i, 0]: =''; 3Логіческая ошібкаПрі завантаженні слів з текстового файлу виводилася ошібкаІсправлена ​​помилка невірного читання з файла.4Логіческая ошібкаКогда користувач вгадав слово програма порівнювала загадане слово не з тим що вибирав пользователь.sTemps - мінлива що зберігає слово вгадуються користувачем for j: = length (tempS) downto 1 do Begin if pos ('', tempS)> 0 then delete (tempS, pos ('' , tempS), 1); end; if tempS = ZagadalTemp then Begin ShowMessage ('Перемога'); end; 5Логіческая ошібкаКогда користувач вибирав букву вона залишалася в табліцеБило додано StringGrid1.Cells [ACol, ARow]: ='';
Тестування
№ Назва тестаНормальние условіяКрітічес...