需要在一个BMP图片上的某一行输入几个字符,并且要求这文字在某一行的正中间,该怎么入手呢

需要在一个BMP图片上的某一行输入几个字符,并且要求这文字在某一行的正中间,该如何入手呢?
比如说一个800*600的BMP图片,需要在竖直方向200处输出五个字符,可以用如下代码,不过这样输出的结果是字符向左靠齐,如何使它们自动排列在这一行的正中间呢?

bmp.Canvas.TextOut(0,200, '中国中国中 ');

------解决方案--------------------
bmp.Canvas.TextOut(bmp.Width div 2-80,100, '中华人中工 ');
------解决方案--------------------
w := bmp.canvas.textwidth( '中国中国中 ');
bmp.canvas.textout((bmp.width-w) div 2, 200, '中国中国中 ');