Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Компоненты StringGrid и DrawGrid. Редактирование значений в DrawGrid.Содержание книги
Поиск на нашем сайте Компонент Таблица строк (TStringGrid) Использование многими пользователями электронных таблиц типа Excel стало практически неотъемлемой частью применения компьютеров. В системе Delphi 7 имеются два компонента, которые позволяют до некоторой степени сымитировать работу электронной таблицы, оставляя при этом, конечно, основную работу по реализации конкретных функций такой таблицы программистам. Первый компонент — это таблица строк, позволяющая работать с текстовой информацией в двумерной таблице, имеющей столбцы и строки (их размеры можно менять с помощью мыши). Дополнительно, к каждой ячейке таблицы можно ''привязать'' свой объект, характеристики которого программист представит в виде строки, расположенной в этой ячейке. Основное свойство таблицы строк — это двумерный массив Cells, позволяющий обращаться к содержимому ячеек и изменять их содержимое. Первое измерение - это номер строки, второе — номер столбца. ЗАМЕЧАНИЕ Нумерация элементов в таблице строк начинается с нуля. Число столбцов задается в свойстве ColCount, число строк — в свойстве RowCount.
Следующий код программы изменяет размер таблицы, помещенной на форму в режиме проектирования (по умолчанию принят размер 5x5 элементов), на размер 10x10 ячеек и заполняет ячейки строками, содержащими их координаты (рис, 4.5, стр 231)
procedure TForml.FormCreatefSender: TObject); var с,r: integer; begin StringGridl.ColCount:= 10; StringGridl.RowCount:= 10; for с:= 0 to StringGridl.ColCount-1 do for r:= 0 to StringGridl.RowCount-1 do StringGridl.Cells[c,r]:= '(' + IntToStr(c) + ', ' + IntToStr(r) + ')'; end; Обратите внимание, что левый столбец и верхняя строка, хотя и содержат текстовую информацию, фактически являются заголовочными областями. Использовать их наравне с другими ячейками не совсем правильно. ЗАМЕЧАНИЕ Число строк и столбцов, имеющих характер заголовка, задается свойствами FixedCols и FixedRows. Если таблица не содержит заголовочной информации, эти свойство должны принимать значение 0.
Можно получить доступ ко всем элементам одного столбца или одной строки. Соответствующие свойства Col и Row имеют тип TStrings, позволяющий обращаться к нужному элементу по номеру. Чтобы привязать к ячейке объект (наследник класса TObject), надо использовать свойство Objects, представляющее собой такой же массив, как Cells, но содержащий не строки, а объекты. Эти объекты должны создаваться, а также уничтожаться программистом вручную, иными словами, весь контроль над состоянием этого массива полностью возлагается на разработчика. Свойство Objects предоставляет только доступ к нужному объекту. Остальные свойства, предназначенные для оформле- ния таблицы строк, приведены ниже
SorderStyle Стиль отрисовки ячейки. Значение этого свойства можно комбинировать со значением свойства Ctrl3D для получения оригинального вида ячеек Ctrl3D Таблица представляется в ''трехмерном'' стиле ColWidths Массив, хранящий ширину каждого столбца в пикселах DefaultColWidt h Начальная ширина столбца по умолчанию DefaultDrawing Если значение свойства — True, производится автоматическая отрисовка содержимого каждой ячейки. В противном случае для таблицы необходимо определить обработчик события OnDrawCell чтобы запрограммировать процесс отрисовки ячейки DefaultRowHeight Начальная высота строки по умолчанию FixedColor Цвет области строк и столбцов, служащих заголовком таблицы GridHeight Высота всей таблицы (в пикселах) GridLineWidth Ширина (в пикселах) линий, разделяющих ячейки таблицы GridWidth Ширина всей таблицы (в пикселах} Options Множество значений (тип set of TGridOption }, позволяющее задавать различные режимы работы таблицы: выделение нескольких ячеек, способ использования линий прокрутки и прочие. В частности, чтобы разрешить изменение размеров строк и столбцов, надо установить значение True для свойств goRowSizing и goColSizing, вложенных в свойство Options. Чтобы разрешить редактирование содержимого ячеек, надо записать значение True в подсвойство goEditing RowHeights Массив, хранящий высоту каждой строки в пикселах ScrolLBars Наличие полос прокрутки VisibleColCount Число видимых в таблице столбцов (без области заголовка)
Чтобы установить для просмотра нужную область таблицы, надо задать номер начальной строки в свойстве TopRow, а номер начального столбца — в свойстве LeftCol. Область заголовков при этом не изменяется. Например, расположив на форме кнопку и включив указанные далее операторы в обработчик щелчка, можно быстро прокрутить таблицу к ячейке (3,5), которая будет расположена в верхнем левом углу таблицы под заголовком (рис. 4.6, стр 233), procedure TForml.ButtonlClick(Sender: TObject),- Begin StringGridl. LeftCol:= 3; StringGridl.TopRow:= 5; End; Чтобы выделить прямоугольную область ячеек (или одну ячейку) другим цветом, надо использовать свойство Selection. Оно доступно только во время работы про- граммыи имеет тип TGridRect, напоминающий тип TRect. Например, если требуется по щелчку на кнопке Buttonl выделить область от ячейки (2,2) до ячейки (3,5), надо выполнить следующие операторы. procedure TForml.ButtonlClick(Sender: TObject); Var GRect: TGridRect; begin GRect.Left:= 2; GRect.Top:= 2; GRect.Right:= 3; GRect.Bottom:= 5; StringGridl.Selection:= GRect; end; ВНИМАНИЕ Чтобы такое выделение работало, необходимо в свойстве Options включить подсвойство goRangeSelect (установить значение True).
Если запустить описанный пример, то после выделения группы ячеек окажется, что нижняя ячейка (3,5), которая была автоматически сделана текущей, не подсве- чена. Чтобы текущая ячейка таблицы выделялась отдельным цветом, надо подсвойству goDrawFocusSelected свойства Options задать значение True. Можно также программно включить его в множество Options. .StringGridl.Options: =StringGridl.Options + [goDrawFocusSelected]; Экранные координаты конкретной ячейки (в пикселах) определяются с помощью метода (функции) CellRect, которая, получая в качестве первого параметра номер столбца, а в качестве второго — номер строки, возвращает структуру типа TRect с координатами прямоугольника, охватывающего заданную ячейку. Если эта ячейка невидима, то все поля структуры будут иметь значения 0. Обратный пересчет осуществляется вызовом процедуры MouseToCeLL
procedure MouseToCell (X, Y: Integer; var ACol, ARow: Longint);
Здесь X и Y — экранные координаты точки, а значения, возвращаемые через параметры ACoL и ARow (передаваемые по ссылке), соответствуют номерам столбца и строки для ячейки, содержащей эту точку.
|
||
|
Последнее изменение этой страницы: 2017-02-21; просмотров: 1037; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.005 с.) |