我用shelllistview时,运行程序之后,为什么第一次点击的时候可以,而第二次就要出错,具体有关源码如下:(100分)

  • 主题发起人 主题发起人 liuweib1111
  • 开始时间 开始时间
L

liuweib1111

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TFrmMain.SLVChange(Sender: TObject; Item: TListItem;
Change: TItemChange);
var
fileName,ext,dir,dir1,dir2:string;
jpg:tjpegimage;
i,j:integer;
MyIco:ticon;
begin『其中slv是shelllistview,』
filename:=slv.SelectedFolder.PathName;『程序每第二次执行到这里提示错误:非法地址访问』
ext:=extractfileext(filename);
ext:=lowercase(copy(ext,2,length(ext)-1));
if ext='' then begin
showmessage(slv.Selectedfolder.Details[3]);
showmessage(filename);
end else if (ext='jpg')or (ext='jpeg') then begin
jpg:=tjpegimage.Create;
jpg.LoadFromFile(filename);
image1.Picture.Bitmap.Assign(jpg);
jpg.Free;
end else if (ext='bmp')then begin
image1.Picture.LoadFromFile(filename);
end else if (ext='ico') then begin
myico:=ticon.Create;
myico.LoadFromFile(filename);
image1.Picture.Icon:=myico;
myico.Free;
end;

end;
『谢谢』
 
加一句判断:
if slv.SelectedFolder = nil then exit;
filename:=slv.SelectedFolder.PathName;『程序每第二次执行到这里提示错误:非法地址访问』
change事件在一个item失去焦点和得到焦点时都会触发,但你如果只是要
点击一个东西作相应动作,比如显示文件名或显示图片什么的,为什么
不用click事件呢?
 
谢谢了我开始以为用上下箭头不会触发click事件,现在看了,可以
 
后退
顶部