在win2000环境下以下两过程均可运行.但是在win xp环境中TForm1.Button1Click(Sender: TObject)过程出错,
                  TForm1.Button2Click(Sender: TObject)过程正常.
这是什么原因呢?
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
  begin
   image1.Picture.LoadFromFile(OpenDialog1.FileName);
  end;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
if OpenDialog1.Execute then
  begin
   edit1.text:=OpenDialog1.FileName;
  end;

解决方案 »

  1.   

    是LoadFromFile过程出错,不关OpenDialog的事
      

  2.   

    在win2000环境下以下两过程均可运行.但是在win xp环境中TForm1.Button1Click(Sender: TObject)过程出错,
                      TForm1.Button2Click(Sender: TObject)过程正常.
    这是什么原因呢?
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    if OpenDialog1.Execute then
      begin
       image1.Picture.LoadFromFile(OpenDialog1.FileName);
      end;
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
    if OpenDialog1.Execute then
      begin
       edit1.text:=OpenDialog1.FileName;
      end;
      

  3.   

    你用image1.Picture.LoadFromFile(OpenDialog1.FileName);只能打开bmp文件,jpg的会报错
    改为下面的代码试试:uses JPEG;procedure TForm1.Button1Click(Sender: TObject);
    var
      Jpg: TJpegImage;
      ExtName, FileName: String;
    begin
      if not OpenDialog1.Execute then Exit;
      FileName := OpenDialog1.FileName;
      ExtName := UpperCase(ExtractFileExt(FileName));
      if ExtName = '.BMP' then
        Image1.Picture.LoadFromFile(FileName)
      else if (ExtName = '.JPG') or (ExtName = '.JPEG') then
      begin
        Jpg := TJpegImage.Create;
        try
          Jpg.LoadFromfile(FileName);
          Image1.Picture.Assign(Jpg);
        finally
          Jpg.Free;
        end;
      end;
    end;