通过结构体传递二进制数给StringGrid的单元错误
比如用结构体
struct partition
{
unsigned char boottable;
unsigned char start_head;
unsigned short start_sec_cyl;
unsigned char parttype;
unsigned char end_head;
unsigned short end_sec_cyl;
unsigned long part_beg;
unsigned long plen;
};
中的boottable
二进制是0000 0000或1000 0000
即十六进制的00和80
我用
printf( "\n%02x ",m.pt[0].boottable);
可以输出正确结果
但使用StringGrid1-> Cells[0][j+1]=boottable;
以及类似输出其它结果时决大多数是错的,有的还是空格
该如何处理呢
好像StringGrid没有相关的参数
或其它的方法也可以
请教了
[解决办法]
void __fastcall TForm1::Button1Click(TObject *Sender)
{
StringGrid1-> FixedCols=0;
StringGrid1-> FixedRows=0;
StringGrid1-> DefaultColWidth=30;
StringGrid1-> ColCount=8;
unsigned char boottable=0x2;
for(int k=0;k <8;k++) StringGrid1-> Cells[7-k][0]=boottable> > k&1;
}
[解决办法]
默认类型Ansistring
unsigned char变Ansistring好像直接可以啊
[解决办法]
IntToHex(Val,2);
[解决办法]
=> Cells[1][1] = IntToHex((int)(byte)Val,2);