Copyright © 2010 Promsite. All Rights Reserved.
Основы TStringGrid
Автор Джерри Мейер перевод Виктор Алексеев aka prom
При разработке проекта мне потребовалось создать таблицу для хранения данных и дать возможность пользователям делать в ней изменения. Я решил, что для этой цели прекрасно подходит грид, поэтому на палитре компонентов, на вкладке Дополнительно выбрал компонент TStringGrid. Когда я перенес компонент на форму, то появилась таблица с достаточно простыми свойствами в инспекторе объектов. Я был рад тому, что перешел на С++ Билдер и что программировать станет легче. Попытался открыть файл помощи библиотеки VCL по TStringGrid, но ничего не нашел. В первый момент подумал, что неправильно набрал имя в хелпе - но нет. Также проверил документацию, которая прилагается к Билдеру, но относительно TStringGrid ничего не нашел.
Позвонил в службу поддержки Borland, но там мне объяснили, что справка по TStringGrid не включена по маркетинговым причинам. К счастью можно скачать апдейт по адресу www.borland.com (в настоящий момент ссылка устарела).
Но даже, если у вас есть новая справка по TStringGrid, не прекращайте чтение этой статьи. Поскольку я буду здесь рассказывать об уникальных свойствах TStringGrid.
Несколько другой грид (TDBGrid)
Не зная о причине отсутствия файла помощи и придя к заключению, что это недоразумение, я начал углубленно изучать класс TStringGrid. Зная о компоненте DBGrid, я первым делом проверил наличие файла помощи. И хотя информация была, но в изучении TStringGrid не помогла по той причине, что TDBGrid и TStringGrid относятся к разной иерархии классов. В итоге с помощью поиска нашел в каталоге Include\VCL заголовочный файл Grid.HPP. Если вам интересны разделы классов, то вы сами можете посмотреть этот файл. Я ознакомился с открытой секцией, основой класса TStringGrid.
Выяснилось, что TStringGrid является потомком TDrawGrid. Что это значит? Для TDrawGrid в библиотеке VCL был файл помощи. И хотя для понимания свойств, методов и событий TDrawGrid это была полезная информация, но не давало полного представления как работают свойства уникальные для TSTringGrid. Поэтому пришлось вернуться к заголовочному файлу TSTringGrid.
Cells (ячейки)
У TStringGrid есть четыре public (открытых) свойства:
Наиболее значимым свойством является Cells[i][j], с помощью которого можно читать и записывать строковые значения любой ячейки. Например, можно установить значение каждой ячейки грида, выполняя двойной цикл, подобный этому: