咋点击Tlabel控件就显示出黑白子的图片呢我用的是c++builder上vcl( 二 )


那么,搞这事已经有点麻烦了;
-----
其次,你要的棋盘状态数据,保存在哪里?直观的来说是一个二维数组,可是你有一个二维数组来查询吗?
可能是有的,你打算把上面那些tImageButton加到二维数组里面?然后根据image的值,来确定棋盘上某个位置到底是黑棋还是白棋还是没有棋子?
-----
所以你不得不把思路反过来,就清晰多了:准备一个二维数组,里面就放上0表示没棋子,1表示黑棋,2或者-1表示白棋;这是你的核心数据。然后,界面上的棋盘也好棋子也好,都只是把这个二维数组里面的数据表现到屏幕上而已。
------
那么,怎么办呢?也好办,弄个双层循环遍历这个数组,来决定某个tImageButton到底显示什么图片。
不过,做到这个时候,你就会发现,还是 @vczh 轮子哥说的那种思路更简单清晰!直接画出来嘛!
------
【咋点击Tlabel控件就显示出黑白子的图片呢我用的是c++builder上vcl】 实际上,两种做法确实都有,你只要把核心数据确定好,然后根据核心数据去更新界面,那就都是一回事,差别不大。至于性能......轮子哥还担心满屏三百多个控件的性能?有很多web端的围棋棋盘开源插件,都是满屏三百多个DOM元素啊。
再有,我们在做unity版本的时候,不方便画,就只能弄了一大堆面片拼成一个棋盘了。
------
不过对你来说,写围棋软件不是容易的事。接下来,你有没有想明白如何解决提子的问题?如何判断气是否没了?
然后,你打算如何解决打劫的问题?
到处都是坑啊。

■网友
用TBitmap,在OnPaint事件里直接把Bitmap画到Canvas上。


推荐阅读