- •Проект приложения № 4.
- •1. Загрузите среду визуального программирования Delphi.
- •6. Вставьте в форму три таблицы текстовых строк StringGrid (см. Рис. 1).
- •8. В окне текста программы перед разделом implementation введите описание констант и переменных программы:
- •9. Запрограммируйте кнопки SpeedButtonl и SpeedButton2 следующим образом:
- •10. В окне текста программы после раздела implementation введите описание метода Refresh формы.
- •11. Запрограммируйте процедуру создания формы FormCreate.
- •12. Сохраните выполненную на данный момент работу в своей папке.
- •14. Запустите созданную программу и исследуйте ее работу.
- •15. Создайте ехе-файл программы.
- •16. Закройте Delphi, запустите созданную программу, сыграйте и попробуйте достичь хороших результатов.
- •17. Продемонстрируйте созданную форму преподавателю. Закончите работу.
11. Запрограммируйте процедуру создания формы FormCreate.
Для этого дважды щелкните на форме и полученную заготовку процедуры FormCreate заполните следующим образом:
procedure TForml.FormCreate(Sender: TObject);
begin
capital := 1000;
year := 2000;
profit := 0;
Refresh;
StringGridl.Cells[l, 0] := 'Возрастет евро';
StringGridl.Cells[2, 0] := 'Возрастет йена';
StringGridl.Cells[3, 0] := 'Возрастет доллар';
StringGridl.Cells[0, 1] := 'Hundai'; StringGridl.Cells[0, 2] := 'Philips'; StringGridl.Cells[0, 3] := 'Bosh'; StringGrid2.Cells[0, 0] := 'Инвестиции, $'; StringGrid3.Cells[0, 0] := 'Вероятность'; end;
12. Сохраните выполненную на данный момент работу в своей папке.
13. Запрограммируйте событие ввода/редактирования текста в таблицу StringGrid2 так, чтобы в момент ввода денежных сумм в первую и вторую ячейки в третьей ячейке отображался остаток капитала (поскольку каждый год инвестируют весь имеющийся капитал).
Активизируйте объект StringGrid2 и в окне Object Inspector откройте закладку Events этого объекта. Здесь следует выбрать событие, для которого вы хотите описать последовательность действий — реакцию на событие. Выберите событие OnSetEditText (ЕслиТекстРедактируется) и дважды щелкните в поле справа от неё. Откроется окно программы с заготовкой процедуры StringGrid2SetEditText. Заполните ее следующим образом:
procedure TForml.StringGrid2SetEditText(Sender: TObject; ACol, ARow: Longint; const Value: string); var i, code : integer; s : string;
begin
{Считываем числа с первой и второй ячеек таблицы инвестиций} for i := 0 to 1 do
val(StringGrid2.Cells[0, i + 1], money[i], code); {Вычисляем остаток капитала и инвестируем его в третье предприятие} money[2] := capital - money[0] - money[l]; Str(money[2], s); StringGrid2.Cells[0, 3] := s; SpeedButtonl.Enabled := True;
end;
Замечание. Заготовки для событий-процедур каждого объекта можно вызвать, дважды щелкая по объекту на макете формы, как это делалось для кнопок. Для большинства объектов это событие - OnClick (ЕслиЩелкнуть), в том числе и для StringGrid. Поэтому мы были вынуждены «вручную» выбрать нужный для нашего случая тип события — OnSetEditText.
14. Запустите созданную программу и исследуйте ее работу.
Введите денежные суммы инвестиций в ячейки для первого и второго предприятий и наблюдайте за изменением третьей суммы. Убедитесь в ее правильности. Щелкните на кнопке «Биржевые результаты», просмотрите результаты финансового года, щелкните на кнопке «Следующий год». Сыграйте в эту игру несколько раз и закончите работу программы, щелкнув на кнопке «Выход».
15. Создайте ехе-файл программы.
16. Закройте Delphi, запустите созданную программу, сыграйте и попробуйте достичь хороших результатов.
17. Продемонстрируйте созданную форму преподавателю. Закончите работу.
Задача 4.1. Информационную надпись «Прибыль (убыток) на конец/года составляет» поменяйте на «Прибыль на конец года составляет» или «Убыток на конец года составляет» в зависимости от того возрос или уменьшился, капитал игрока в конце года по сравнению с начальным.
Задача 4.2. Обеспечьте вывод денежной суммы прибыли зеленым цветом, а убытка — красным.
Задача 4.3. Не дайте возможности игроку ввести отрицательные денежные суммы в таблицу инвестиций.
Задача 4.4. Вычислите и выведите в форме все денежные суммы с точностью до цента.