
Хід роботи:
1. Створимо проект “Контроль знань таблиці множення”
Учень вводить в клітинки значення добутків. Якщо відповідь вірна – клітина біла, якщо не вірна – клітинка червона:
Для цього перобіть обробник кнопки “Заповнення” таким чином, щоб заповнювались тільки фіксовані клітинки, решта – порожні.
2. Обробник події OnDrawCell має мати ось такий вигляд:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
with StringGrid1 do
if (Cells[ACol, ARow] <> IntToStr(ACol * ARow))
and not (gdFixed in State) then
begin
Canvas.Brush.Color := clRed; // пензель червоний
Canvas.FillRect(Rect); // замальовка прямокутника
Canvas.Font.Color := clYellow; // перо жовте
Canvas.TextOut(Rect.Left + 2, Rect.Top + 2, Cells[ACol, ARow]); // вивід тексту
end;
end;
Примітка: в обробнику використовуємо властивість Canvas, яка є в багатьох компонентах. Canvas має
багато властивостей та методів для малювання. Детально Canvas буде розглянуто в подальших лабораторних роботах.
Завдання для самостійного виконання
Розробити програму “Таблиця чемпіонату”. Компонент StringGrid, заповнюєтся очками. Очки верхнього трикутника відповідають очкам нижнього трикутника (віграш-поразка, нічия-нічия). Автоматично підраховувати кількість очок.
Гра “Поле Чудес”. Слово вміщується посимвольно в сітку StringGrid. Гравець пропонує букву. Вміст сітки перевіряється. Якщо букву знайдено – вона відкривається, якщо ні – ShowMessage. Додатково: гравець вибирає букву з списку, який (список) з кожним ходом зменшується ( метод Delete для ComboBox.Items або ListBox.Items).
«Валютна каса». Сітка StringGrid містить: вид валюти, кількість валюти, курси валют, гривнений еквівалент (обчислюється автоматично). Підсумковий рядок: «Всього валюти на суму». Передбачити завантаження щоденних курсів валют з автоматичним перерахунком гривневого еквівалента та підсумка.
«Морський бій». Сітка StringGrid заповнюється з файла, який містить кораблі. Користувач вибирає клітинку (OnSelectCell)– программа сповіщає “мимо”, ”убив”. Клітинка набуває певного кольору. (кораблі “однопалубні”).
Щасливий переможець на грі “Поле Чудес” обирає призи (OnSelectCell компонента StringGrid) автоматично підраховується загальна сумма. Додатково: гравець може вагатися, обирати один приз, потім відмовлятися від нього обираючи інший.
Сітка містить цілі числа, які завантажуються з файла. Знайти найменше та найбільше значення. Відповідні клітинки виділити певним кольором.
«Таблиця Чемпіонату з футболу». Файл містить результати зустрічей туру, наприклад, в такому форматі: 1 2 0:2. Перша команда програла другій з рахунком 0:2. Читати файл, результати заносити в сітку. Кожен результат має бути відображеним в двох клітинках: [1, 2] := ‘0:2’; [2, 1] := ‘2:0’. Додатково: колонку «очки» автоматично переобраховувати.
«Товари». Файл містить інформацію про товари: назва, ціна, кількість. Завантажити файл в сітку. Обрахувати стовпець «Сума» як «ціна» * «кількість» по кожному товару. Передбачити підсумковий рядок: «Всього найменувань», «На загальну суму».
«Екзаменаційна відомість». Користувач заносить в сітку прізвища студентів та їх оцінки. В окремому полі редагування – назву дисципліни. Кількість студентів довільна (регулюється користувачем). Вміст сітки вивантажується в текстовий файл «Екзаменаційна відомість».
Сітка містить прізвища учасників змагань та набрані ними очки. Ворядкувати рядки сітки за спаданням кількості очок.
Завантажити з файла до сітки список студентів з інформацією про кількість годин пропусків (студенти, у яких нема жодного пропуску теж присутні в списку з нульовим значенням). Виділити жовтим кольором рядки, в яких студенти мають пропуски занять, червоним – відмітити студента, який має найбільшу кількість пропусків.
Написати демонстраційну програму впорядкування елементів одновимірного масиву будь-яким методом. Впорядкування має виконуватись по-кроково. На кожному кроці сітка має відображати поточний стан розташування елементів.
Надати можливість користувачу керувати складом стовпців та рядків, а саме: «додати стовпець», «додати рядок», «обміняти місцями два рядки», «обміняти місцями два стовпці».
Заповнити накладну: найменування товару, кількість, ціна. Автоматично обчислюється стовпчик “сума”, а також загальна сума накладної.