给你一段代码,你参考一下:
    qh := WORD(str[0]) - $A0; //计算区
    wh := word(str[1]) - $A0; //计算位
    offset := (94 * (qh - 1) + (wh - 1)) * 32;//计算偏移量
    AssignFile(f, 'Hzk16');
    Reset(f);
    seek(f, offset);
    BlockRead(f, buf, 32);
    Canvas.Brush.Color := clRed;
    for i := 0 to 15 do
        for j := 0 to 1 do
            for k := 0 to 7 do
                if ((word(buf[i * 2 + j]) shr (7 - k)) and $1) > 0 then
                    Canvas.Rectangle(ARect[i, j * 8 + k]);