Строки заполняются с использованием цикла FOR, который пробегает значения от 1 до числа периодов в закладной, которое может изменяться от закладной к закладной.

Управляющая переменная цикла FOR выбирает одну из записей TPayment из массива записей Payments, и строчные эквиваленты значений этой записи TPayment загружаются в массив Cells. Имейте в виду, что Cells может хранить только строки; если вы хотите отобразить численнные значения (как мы делаем здесь), то вы должны преобразовать их в строки посредством стандартной процедуры Str.

В плане адресации массива Cells обратите внимание - в коде, приведенном ниже, для загрузки клеток строка устанавливается не в 0 (как выше), а в значение текущей записи платежа, подлежащей загрузке в массив. Колонки индексируются от 0 до 6 с использованием числовых литералов для определения колонки.

WITH Mortgage DO FOR I := 1 TO Periods DO begin
{ Для помещения таблицы закладной в строчную сетку } { мы должны преобразовать числовые значения в таблице } { закладной в строки. Вот для чего эта перетасовка: } WITH Payments[I] DO WITH UnitTestGrid DO begin
Str(I:5,TempString);
Cells[0,1] := TempString;
Str(PayPrincipal:12:2,TempString);
Cells [1,1] := TempString;
Str(Paylnterest:12:2,TempString);
Cells[2,1] := TempString;
Str(PrincipalSoFar:12:2,TempString);

Cells[3,1] := TempString

Str(InterestSoFar:12:2,TempString);
Cells[4,1] := TempString;
Str(ExtraPrincipal:12:2,TempString);

Cells[5,1] := TempString

Str(Balance:12:2,TempString);
Cells[6,1] := TempString;
end;
END;

Как только строки загружены данными по закладной, StringGrid обладает всем необходимым ей для отображения вашей закладной. Загрузите проект MORTGAGE.DPR и запустите его на выполнение. Теперь остается мало что делать - большая часть работы выпо г 1яется для вас компонентой StringGrid

ОТ ЗАПИСЕЙ К ОБЪЕКТАМ

Мы прошли довольно долгий путь в этой главе, но, в действительности, не имели пока дела с объектами. Это естественная последовательность в выяснении того, что же такое объекты (совершенно так же, как история домов - это история кирпичей, так и история объектов - это история и записей, и модулей). Если вы не поймете, что такое записи и модули ваше понимание объектов бу ier весьма проблематично.

Объект является структурой данных, совсем так же, как и запись. На простейшем уровне вы можете рассматривать объекты как записи, к которым добавляются определения процедур и функций. Это еще далеко от полной картины - объекты обладают по меньшей мере двумя дополнительными определяющими хитростями, использумыми в Delphi весьма удивительным образом, но объединение воедино кода и данных является основополагающей задачей объектов. В обекте код и данные действительно являются двумя различными полами, принадлежащими одному и тому же неразделяемому виду.

Кроме того, объект является пакетом - так же, как и модуль. Объекты и модули удивительно сходны между собой, а их основное отличие очень тонко: модуль является физическим пакетом, существующим в виде файла на диске, в то время как объект является логическим пакетом, существующим в памяти и принимающем гораздо большее участие в "жизни" приложения Delphi, чем это в состоянии сделать модуль. Модули и объекты - оба являются пакетами, но объекты - гораздо больше, чем просто пакеты. Большинство того, о чем мы будем говорить в остальной части этой главы, касается роли объектов как пакетов. Чтобы развить выражение "гораздо больше", мне потребуется дополнительный простор, и я воздержусь от этого до Главы 10.


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в среде Delphi



Новости за месяц

  • Декабрь
    2021
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31