首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

通过结构体传递二进制数给StringGrid的单元异常

2012-02-14 
通过结构体传递二进制数给StringGrid的单元错误比如用结构体structpartition{unsignedcharboottableunsig

通过结构体传递二进制数给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);

热点排行