Вы можете установить число строк и колонок, которые StringGrid отобразит - или во время проектирования, или во время выполнения. В действительности - мой пример программы делает кое-что из этого в обоих случаях. Свойство ColCount установлено на 7 при проектировании, и остается неизменным. Здесь имеется семь отображаемых колонок информации, не больше и не меньше. Характеристика RowCount установлена на 360 во время проектирования потому, что огромное большинство закладных расчитаны на 30 лег ежемесячных платежей, что дает всего 360 платежей. Однако, ничто не мешает вам отобразить закладную на 500 платежей или на 180, либо на любое другое значение. Когда процедура обработки событий TUnitTestForm.FormCreate устанавливает сетку, она просматривает закладную на предмет того, сколько всего платежей имеется в закладной, которая должна отобразиться в действительности, и корректирует свойство RowCount соответствующим образом:

{ Требуется по одной строке на платеж плюс } 
{ строка заголовка вверху: }
 RowCount := Mortgage.Periods + 1;

Номера платежей в закладной фактически являются номерами периодов, которые сохраняются в поле TMortgagcPeriods. Мы прибавляем к нему единицу, поскольку нам необходимо отобразить это число строк плюс дополнительную строку вверху для заголовков колонок. Многие, если не все, свойства компонентов Delphi, которые могут быть утановлены при пректировании, могут быть установлены и во время выполнения.

Загрузка клеток в StringGrid

Компонент StringGrid обладает и другими свойствами, определяемыми при проектировании, которыми можно манипулировать для получения различных эффектов, и я призываю вас проверить их, чтобы посмотреть, что получится. (Это является основным способом изучения тонкостей Delphi: нет никакой возможности кому-либо обобщить весь диапазон его возможностей в пособии меньшем, чем целая полка книг!) Единственным, наиболее важным, свойством StringGrid является свойство Cells, которое может быть доступно только во время выполнения. Свойство Cells определяет то, где StringGrid хранит строчные данные, которые она отображает во время выполнения вашего приложения.

Cells устанавливается в виде двумерного массива, которое я кратко представил в Главе 6. Вы можете рассматривать его просто матрицей строчек с двумя индексами: первым, обозначающим колонки, и вторым - строки. Оба индекса начинаются с 0. Простейшим способом показать - как работает эта двумерная адресация, является показать код, который загружает верхнюю строку заголовков в фиксированную строку. Обратитесь снова к Рисунку 8.3, читая этот код:

WITH UnitTestGrid DO BEGIN
{ Требуется по одной строке на платеж плюс } { строка заголовка вверху: } RowCount := Mortgage.Periods+1 { Put the header strings in the grid: } Cells[0,0] := 'Payment #'; Cells[1,0] := 'Principal'; Cells[2,0] := 'Interest'; Cells[3,0] := 'Prin. So Far'; Cells[4,0] := 'Int. So Far'; Cells[5,0] := 'Extra Prin.'; Cells[6,0] := 'Balance';
end;

Верхний левый угол сетки адресуется как Cells[0,01. При смещении вправо по верхней строке первый индекс увеличивается на единицу для каждой колонки, в то время как второй индекс (который определяет адресуемую строку) остается равным 0. Каждой клетке присваивается строка символов простым оператором присваивания


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

Программирование в среде 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