§ 18. Кампаненты для работы з табліцамі
18.1. Кампанент StringGrid
Кампанент табліца радкоў — StringGrid прызначаны для апрацоўкі даных, прадстаўленых у таблічнай форме. На панэлі кампанентаў Additional кампанент StringGrid намаляваны ў выглядзе Кампанент StringGrid прызначаны ў першую чаргу для адлюстравання ў табліцы тэкставай інфармацыі. Аднак яго можна выкарыстоўваць і для адлюстравання графічнай інфармацыі. Уласцівасці кампанента прыведзены ў прыкладзе 18.2. За многія ўласцівасці кампанента StringGrid адказвае ўласцівасць Options (гл. Дадатак). Даныя табліцы могуць быць даступныя, як толькі для чытання, так і для рэдагавання. Пры ўстаноўцы кампанента на форму, ячэйкі табліцы ў першым слупку і першым радку фіксаваныя і недаступныя для рэдагавання, астатнія ячэйкі можна рэдагаваць. Фіксаваныя ячэйкі выкарыстоўваюцца ў асноўным для подпісаў загалоўкаў слупкоў і радкоў. Пры з'яўленні палос пракруткі фіксаваныя ячэйкі застаюцца на месцы. У кампаненце StringGrid рэалізавана адрасаванне кожнай асобнай ячэйкі па яе нумары слупка і радка[1]. Змесціва ячэйкі (i, j), дзе i — нумар слупка, j — нумар радка, мае выгляд: StringGrid1 -> Cells[i][j] Нумары слупкоў і радкоў пачынаюцца з 0. Слупок і радок з нумарам нуль па змоўчанні належаць фіксаванай зоне. У момант выбару карыстальнікам ячэйкі надыходзіць падзея OnSelectCell. У апрацоўшчык гэтай падзеі перадаюцца нумары слупка (ACol) і радка (ARow) выдзеленай ячэйкі, а таксама лагічны параметр CanSelect — дапушчальнасць выбару. Параметр CanSelect можна выкарыстоўваць для забароны вылучэння ячэйкі, задаўшы яго значэнне false. А параметры ACol і ARow могуць выкарыстоўвацца для нейкай рэакцыі праграмы на вылучэнне карыстальніка. Прыклад 18.3. Стварыць праект, у якім пры выбары ячэйкі табліцы, у ёй будзе прапісвацца адрас. Этапы выканання задання
Кампанент StringGrid можна ўжываць для вырашэння задач, якія выкарыстоўваюць двухмерныя масівы. Прыклад 18.4. Стварыць праект, у якім будзе вылічвацца сума элементаў двухмернага масіва. Элементы масіва задаюцца выпадковым чынам. Этапы выканання задання
Часам пры працы патрабуецца ачысціць усе ячэйкі табліцы ад тэксту. Метаду, які гэта робіць для табліцы, няма. Можна ў цыкле звярнуцца да кожнай ячэйцы і прысвоіць ёй значэнне пустога радка або выкарыстоўваць метад, які ачышчае значэнне слупка: for (int i = StringGrid1 -> FixedCols; [1] Звярніце ўвагу на тое, што першым паказваецца нумар слупка, а другім — нумар радка (па аналогіі з адрасаваннем ячэек у Excel) |
Прыклад 18.1. Кампанент StringGrid на форме: Прыклад 18.2. Уласцівасці кампанента StringGrid.
Уласцівасці Color і FixedColor працуюць, калі ва уласцівасці DrawingStyle абрана значэнне gdsClassic. Пры неабходнасці ўстаноўкі шырыні і вышыні асобных слупкоў і (або) радкоў выкарыстоўваюць уласцівасці:
Значэнні для гэтых уласцівасцей наладжваюцца ў апрацоўшчыку падзеі OnCreate для формы, гэтак жа, як і надпісы загалоўкаў, якія размяшчаюцца ў радках і слупках фіксаванай зоны табліцы. Прыклад 18.3. Форма на этапе праектавання: Апрацоўшчык падзеі OnCreate для формы.
Апрацоўшчык падзеі OnSelectCell для табліцы.
Дадатак у час працы: Прыклад 18.4. Форма на этапе праектавання: Апрацоўшчык падзеі OnClick для кнопкі BitBtn1.
Апрацоўшчык падзеі OnClick для кнопкі BitBtn2.
Дадатак у час працы: |