第3点:
不要选中PICTURE控件的“original sieze”选项
第1点:
你的BMP图片超过FILEREAD函数所能读取的大小32766了,可采用下列代码就不会报错了:
flen = FileLength('c:\'+string(photo_t)+'.jpg')
li_FileNum = FileOpen('c:\'+string(photo_t)+'.jpg', &
StreamMode!, Read!, LockRead!)
IF flen > 32765 THEN
IF Mod(flen, 32765) = 0 THEN
loops = flen/32765
ELSE
loops = (flen/32765) + 1
END IF
ELSE
loops = 1
END IF
new_pos = 1
FOR i = 1 to loops
bytes_read = FileRead(li_FileNum, b)
tot_b = tot_b + b
NEXT
if isnull(tot_b) then
messagebox('x','xxxxxxxx')
end if
p_1.setpicture(tot_b)
FileClose(li_FileNum)
对问题2,我用setpicture没什么作用。从数据库读出blob和从文件读出的一样吗?什么才能用setpicture?
对问题1,代码如下:
integer fh, ret
blob Emp_pic
string txtname, named
string defext = "BMP"
string Filter = "bitmap Files (*.bmp), *.bmp"
ret = GetFileOpenName("Open Bitmap", txtname, &
named, defext, filter)
IF ret = 1 THEN
fh = FileOpen(txtname, StreamMode!)
IF fh <> -1 THEN
FileRead(fh, Emp_pic)
FileClose(fh)
p_1.SetPicture(Emp_pic)
END IF
END IF