为什么TJPEGImage里只有create方法,好像只是一个记录的类型,却为什么可以进行create来创建对象. 
而TImage就可以进行TImage.create(self)
这种差别有什么用意没有?

解决方案 »

  1.   

    TImage是个控件,可以把它看一个盛放图形的容器。
    TJpegImage是一个图形类,专用来处理jpeg文件。
    它们的关系是
    TImage -->TPicture-->TGraphic
                           \--->TBitmap
                            \--->TJpegImage
      

  2.   

    给一个抓图存为jpg的例子:
    var
        Jpeg1: TJpegImage;
        I: Integer;
        CPic:Tbitmap;
        CCanvas:TCanvas;
        Dc:HDc;
    Begin
      CPic:=TBitmap.Create;
      CCanvas:=TCanvas.Create;
      CPic.Width:=screen.Width;
      Cpic.Height :=screen.Height;
      Dc:=GetDc(0);
      CCanvas.Handle :=Dc;
      CPic.Canvas.CopyRect(Rect(0,0,Screen.Width,Screen.Height),CCanvas,Rect(0,0,Screen.Width,Screen.Height));
      CCanvas.Free;
      ReleaseDC(0,Dc);
      Jpeg1 := TJpegImage.Create;
      Jpeg1.Assign(CPic);
      Jpeg1.savetofile('c:\1.jpg');
    end;