Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
230401_MU_-_Osnovy_algoritmizatsii_i_programmir...docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
1.02 Mб
Скачать
  1. Сохраните выполненную на данный момент работу в своей папке.

  2. Запрограммируйте событие ввода/редактирования текста в таблицу StringGrid2 так, чтобы в момент ввода денежных сумм в первую и вторую ячейки в третьей ячейке отобра­жался остаток капитала (поскольку каждый год инвестиру­ют весь имеющийся капитал).

Активизируйте объект StringGrid2 и в окне ObjectInspector откройте закладку Events этого объекта. Здесь следует выбрать событие, для которого вы хотите описать последовательность действий - реакцию на событие. Выберите событие OnSetEditText (ЕслиТекстРедактируется) и дважды щелкните в поле справа от неё. Откроется окно программы с заготовкой процедуры StringGrid2SetEditText. Заполните ее следующим образом:

procedureTForml .StringGrid2SetEditText(Sender:

TObject; ACol, ARow: Longint; const Value: string); var i, code : integer; s : string; begin

{Считываем числа с первой и второй ячеек таблицы инвестиций) fori := 0 to1 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. Запустите созданную программу и исследуйте ее работу.

Введите денежные суммы инвестиций в ячейки для первого и второго предприятий и наблюдайте за изменением третьей суммы. Убедитесь в ее правильности. Щелкните на кнопке «Биржевые ре­зультаты», просмотрите результаты финансового года, щелкните на кнопке «Следующий год». Сыграйте в эту игру несколько раз и за­кончите работу программы, щелкнув на кнопке «Выход».

  1. Создайте ехе-файл программы.

  2. Закройте Delphi, запустите созданную программу, сыграйте и попробуйте достичь хороших результатов.

  3. Продемонстрируйте созданную форму преподавателю. За­кончите работу.

Задача 4.1. Информационную надпись «Прибыль (убыток) на конец года составляет» поменяйте на «Прибыль на конец года составляет» или «Убыток на конец года составляет» в зависимо­сти от того возрос или уменьшился капитал игрока в конце года по сравнению с начальным.

Задача 4.2. Обеспечьте вывод денежной суммы прибыли зеле­ным цветом, а убытка - красным.

Задача 4.3. Не дайте возможности игроку ввести отрицатель­ные денежные суммы в таблицу инвестиций.

Задача 4.4. Вычислите и выведите в форме все денежные сум­мы с точностью до цента.

Практическое занятие №28 Перегрузка методов. Задачаотелефонномсправочнике

Новые объекты: многостраничный блокнот, комбинированный список. Создание новых окон и стандартных диалогов. Работа с файлами записей в ObjectPascal.

Цель работы. Создать программу для работы с базой данных -телефонным справочником, сформированным в виде файла запи­сей. В каждой записи определены поля: фамилия и имя (строки длиной по 20 символов каждая), адрес и номер телефона (строки длиной 100 и 15 символов соответственно). Необходимо реализо­вать следующие операции: создание и удаление записи, сохране­ние и считывание файла записей с диска, редактирование, поиск и сортировку данных в алфавитном порядке, просмотр записей и навигацию по базе.

Ознакомиться с новыми объектами: многостраничным блокно­том (PageControl), страницей блокнота (TabSheet), комбиниро­ванным списком (ComboBox), диалоговым окном (AboutBox), ста­ндартными диалогами открытия и сохранение файлов (OpenDialogи SaveDialog).

Теоретические часть.

Многостраничный блокнот (PageControl) находится на особом виде формы TabbedPages (об­ъект PagesDlg, заголовок "TabbedNotebookDialog"). Форму соз­дают командами File =>New...=> Закладка Forms =>TabbedPages =>• Ok. После её создания ненужную форму "Forml" в случае не­обходимости можно удалить с помощью кнопки JiJ (Removeunit) окна менеджера проекта (ProjectManager). Вызов окна менеджера проекта осуществляется командами View =>ProjectManager. В данной работе активизацию объектов PageControl и PagesDlg мо­жно осуществлять с помощью инспектора объектов. Свойства объ­екта PagesDlg совпадают со свойствами обычной формы Form. Ра­ссмотрим новые свойства блокнота PageControl:

Свойство

Описание свойства

Примеры значений

ActivePage

Имя активной страни­цы

TabSheet7

MultiLine

Возможность размещать закладки страниц в не­сколько строк

True (закладки в не­сколько строк), False(за­кладки в одну строку)

Свойства отдельной страницы блокнота (объекта TabSheet) аналогичны описанным в предыдущих разделах.

Объект ComboBoxпредназначен для создания выпадающего списка. Его новые свойства такие:

Свойство

Описание свойства

Примеры значений

DropDown Count

Количество строк в выпадающем списке, которые видимы без использования полос прокручивания

7; 3

Sorted

Сортировка списка по алфавиту

True(список сортируется), False(не сортируется)

Style

Стиль оформления и использование списка

csOwnerDrawVariable(за­данный программистом), csDropDown(стандартный)

Стандартные диалоги открытия (объект OpenDialog) и со­хранение файлов (объект SaveDialog), - это невидимые на форме объекты, предназначенные для создания стандартных в Windowsокон: "Openfile" и "SaveFileas" - в момент вызова их из про­граммного кода ' проекта командой OpenDialogl .Execute или SaveDialogl .Execute. Имя выбранного файла возвращается в программу свойством FileName этих объектов.

Практическая часть