Copyright © 2010 Promsite. All Rights Reserved.
стр. 2


Основы TStringGrid

Автор Джерри Мейер                                                                перевод Виктор Алексеев aka prom



стр. 2
    В соответствии с названием компонента, грид работает со строковыми значениями. Поэтому, можно ассоциировать свойство Cells со строкой или ассоциировать это свойство со строкой другого объекта.

    Можно заметить некоторую особенность (по крайней мере мне так казалось раньше): колонки индексируются первыми, а строки вторыми. Необходимо помнить про эту особенность.

Rows и Cols

    Свойство Cells удобно, но иногда бывает проще присвоить значений всей строке или столбцу за одну инструкцию. Для выполнения этой задачи класс TStringGrid предоставляет свойства Row[i] и Cols[i]. Эти свойства позволяют читать и записывать объекты типа TStrings (напомним, что свойство Cells[i][j] работает с типом AnsiString). Вкратце о классе TSrings. Если вы знакомы с классом AnsiString, то вы знаете, что он содержит только простые строки. Класс TStringGrid допускает хранение несколько объектов AnsiString - можете считать, что это массив строк.

  Свойства Rows и Cells работают таким образом, что первая строка помещается в первую ячейку строки или столбца, вторая в следующую ячейку и т.д. При использовании свойств Rows и Cols можно избежать двойного цикла, который необходим в свойстве Cells.

    Дополнительным преимуществом использования свойств Cols и Rows является то, что можно загрузить строки класса TStrings автоматически из файла на диске. У TStrings есть метод LoadFromFile(filename) и его близкий родственник LoadFromStream(stream). Каждая строка в текстовом файле становится отдельной строкой в объекте TSrings и поэтому помещается в отдельную ячейку. Например, следующая инструкция:

       MyGrid -> Rows[0] -> LoadFromFile("zxc.txt")

    Будет заполнять первую строку грида последовательно строками из текстового файла. Другим полезным свойством класса TStrings является CommaText, который позволяет построить массив строк из строк разделенных запятыми. Например, строка:

       MyGrid -> Rows[0] -> CommaText = "MeasId,Description,Units"

Будет заполнять первую ячейку 0-ой строки строкой MeasId, вторую ячейку строкой Description, третью - Units.

Дополнительный пример по свойствам Rows, Cols, Cells.

       И ниже (далее) результат:
P  R  O  M  S  I  T  E
Статьи по С++Builder 6
страницы: 1   2   3   4
страницы: 1   2   3   4

Для отображения Облака ссылок
необходим
Adobe Flash Player 9
или выше.