我正在嘗試創建一個生命遊戲模擬器。我以前使用過StrGrid,但是速度較慢,我被告知要使用DrawGrid。我的程序的工作原理是有兩個數組,strArray包含下一代單元格的所有值,currentArray包含當前代單元格的所有值(都是數組類型[1..127])數組[1..127]的字符串;我知道最好使用布爾數組,但這是一個較舊的程序)。在計時器上,算法計算每個單元周圍的活細胞數,並在strArray,T(指定活細胞)或F(指定死細胞)中給它一個值。然後將此模式寫入currentArray,以便下次需要計算活細胞時使用。然後,如果相關單元格與currentArray中的「F」匹配,則將每個單元格的顏色更改爲白色,如果匹配「T」,則將其更改爲黑色。我還想爲單元格着色,然後單擊黑色,並將其在數據表中的值更改爲'T'。單擊並在計時器上在Delphi DrawGrid中着色單個單元格
但是,我不熟悉drawgrid,似乎也找不到任何對我有意義的相關信息。當我使用字符串網格時,可以通過使用stringgrid.cells [stringgrid.col,stringgrid.row]:='whatever'來訪問每個單元格的內容;但是我找不到DrawGrid的類似方法。
總之,我需要幫助:
- 更改單元格中timer.onTick程序內drawgrid的顏色。
- 當我單擊它時,在drawgrid中改變單元格的顏色。
我希望你能幫助我。謝謝!
東西['像this'](http://pastebin.com/2Jq09SZU)? [我想知道爲什麼'InvalidateCell'方法受到保護;對於'TDrawGrid',它可能對公衆有用] – TLama
@TLama:你爲什麼把這個代碼發佈到pastebin而不是在這裏發佈它作爲答案? –
@Remy,因爲對於OP來說,它似乎比只是一個代碼更有用的解釋,我懶得寫一個故事。 – TLama