| 发表于:2007-04-13 22:04:295楼 得分:0 |
unit unit1; interface uses windows, messages, sysutils, variants, classes, graphics, controls, forms, dialogs, stdctrls, buttons, extctrls; type tform1 = class(tform) panel1: tpanel; image1: timage; label1: tlabel; edit1: tedit; bitbtn1: tbitbtn; bitbtn2: tbitbtn; label2: tlabel; procedure bitbtn2click(sender: tobject); procedure bitbtn1click(sender: tobject); private { private declarations } public { public declarations } end; var form1: tform1; f: file; implementation {$r *.dfm} procedure getqwcode(hz: string; var q, w: word); begin q := byte(hz[1]) - $a0; w := byte(hz[2]) - $a0; end; procedure makechar(hz: string; n: integer); var offset: integer; getstr: array [0..31] of byte; temp,dis:byte; x, y, i, j: integer; q, w: word; begin getqwcode(hz,q, w); offset := (94*(q-1)+(w-1))*32; seek(f, offset); blockread(f, getstr, sizeof(getstr)); //getstr x:=0; y:=0; i:=0; j:=0; while(i <=31) do begin temp:=getstr[i]; for j:=0 to 7 do begin dis:=temp and 128; dis:=dis shr 7; if dis=1 then form1.image1.canvas.rectangle(n*32+(x+1)*2-1,(y+1)*2-1,n*32+(x+1)*2-1+3,(y+1)*2-1+3); inc(x); if x> 15 then begin x:=0; inc(y); end; temp:=temp shl 1; end; inc(i); end; end; procedure tform1.bitbtn2click(sender: tobject); begin close; end; procedure tform1.bitbtn1click(sender: tobject); var strchinese, strchar: string; i, n: integer; begin form1.image1.canvas.brush.color := clblack; form1.image1.canvas.fillrect(rect(0,0,324,36)); form1.image1.canvas.brush.color := clred; form1.image1.canvas.pen.color := clblack; strchinese := edit1.text; if length(strchinese) > 0 then begin assignfile(f, 'hzk16.bin '); reset(f, 1); n := length(strchinese) div 2; for i := 0 to n - 1 do begin strchar := copy(strchinese, i*2+1, 2); makechar(strchar,i); end; closefile(f); end; end; end. 这个程序怎么样直接显示getstr中的内容 getstr自己定义 | | |
|