§ 18. Кампаненты для работы з табліцамі
18.2. Кампанент DrawGrid
Кампанент DrawGrid выкарыстоўваецца для стварэння табліцы, якая можа ўтрымліваць графічныя малюнкі. На панэлі кампанентаў Additional кампанент DrawGrid намаляваны ў выглядзе Гэты кампанент падобны кампаненту StringGrid, які з'яўляецца наследнікам ад DrawGrid. У DrawGrid прысутнічаюць усе ўласцівасці, метады, падзеі кампанента StringGrid, акрамя тых, што адносяцца да тэксту, г. зн. акрамя уласцівасцей Cells, Cols, Rows. Кампанент DrawGrid (таксама StringGrid) мае канву, на якой можна размяшчаць малюнкі. Для занясення малюнкаў у ячэйкі DrawGrid выкарыстоўваюць апрацоўшчык падзей OnDrawCell. Гэта падзея надыходзіць для кожнай ячэйкі табліцы ў момант яе перамалёўкі. Размяшчаючы ў апрацоўшчыку падзеі OnDrawCell праграмны код, можна размалёўваць ячэйкі, выводзіць малюнкі і рабіць тэкставыя надпісы. Табліца сама пастаянна выклікае гэтую падзею для таго, каб адмаляваць свае ячэйкі. Прамаляваць малюнак можна, выкарыстоўваючы метады канвы StratchDraw або CopyRect. Апрацоўшчык OnDrawCell мае параметры (прыклад 18.6). Прыклад 18.7. Стварыць праект, у якім пры выбары ячэйкі табліцы, будзе альбо зафарбоўвацца ячэйка, альбо прамалёўвацца малюнак. Калі сума нумара радка і нумар слупка няцотныя, то адбываецца закраска ячэйкі, інакш прамалёўваецца малюнак. Этапы выканання задання
Калі ўласцівасць DefaultDrawing кампанента DrawGrid мае значэнне true (устаноўлена па змоўчанні), то замалёўвацца будуць толькі выдзеленыя ячэйкі табліцы. Як толькі вылучэнне зменіцца, ячэйка становіцца зафарбаванай тым колерам, які ўстаноўлены па змоўчанні. Калі для ўласцівасці DefaultDrawing устанавіць значэнне false, то пасля змены выдзеленай ячэйкі размалёўка папярэдніх ячэек не мяняецца. Кампанент DrawGrid зручна выкарыстоўваць для стварэння гульняў на клеткавым полі. Для праграміравання гульні спатрэбіцца матрыца стану гульні. У такой матрыцы будзе захоўвацца абстаноўка гульні на бягучым хаду. Пасля выканання ходу абстаноўка мяняецца, адпаведныя змены запісваюцца ў матрыцу стану і адбываецца абнаўленне кампанента DrawGrid. Матрыца стану гульні можа выкарыстоўвацца для захавання гульні і наступнай яе загрузкі. Прыклад 18.8. Падрыхтаваць поле гульні ў крыжыкі-нулікі для двух гульцоў. Этапы выканання задання
|
Кампанент StringGrid валодае істотна вялікімі магчымасцямі, чым DrawGrid, паколькі ён можа захоўваць у ячэйках і малюнкі, і тэксты. Калі неабходна ўнесці тэкст у нейкія ячэйкі DrawGrid, то спатрэбіцца выкарыстоўваць метады вываду тэксту на канву, што не заўсёды зручна. Прыклад 18.5. Кампанент DrawGrid на форме: Прыклад 18.6. Параметры апрацоўшчыка OnDrawCell:
- gdSelected — ячэйка вылучаная; Прыклад 18.7. Форма на этапе праектавання: Апрацоўшчык падзеі OnCreate для формы.
Апрацоўшчык падзеі OnSelectCell для табліцы.
Дадатак у час працы: Прыклад 18.8. Форма на этапе праектавання: Апрацоўшчык падзеі OnCreate для формы.
Апрацоўшчык падзеі OnSelectCell для табліцы.
Апрацоўшчык падзеі OnDrawCell для табліцы.
Апрацоўшчык падзеі OnClick для кнопкі.
Дадатак у час працы: |