DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: fhc2004
今日帖子: 16
在线用户: 15
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 rhlw (lw) ★☆☆☆☆ -
盒子活跃会员
2004/1/9 17:00:33
标题:
请问IMAGE控件可显示并使用JPG图片吗? 浏览:1629
加入我的收藏
楼主: 如何使用?
----------------------------------------------
-你的一句话,会令我少走许多弯路,衷心的多谢指点。
作者:
男 cndaijin (阿呆) ★☆☆☆☆ -
普通会员
2004/1/9 17:34:27
1楼: 在开始的单元引用中加入JPEG,就可以的!
----------------------------------------------
-
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2004/1/9 18:13:39
2楼: procedure TMainForm.FileOpenItemClick(Sender: TObject);
var
 s,extt,sfile,s1,s2:string;
 jj:  TJPEGImage;
 bb:TBitMap;
 Child: TMDIChild;
begin
 s2:=LastSavingDir;
 delete(s2,length(s2),1);
 od1.InitialDir :=s2;
 if od1.Execute then
   begin //0
     jj:=  TJPEGImage.Create ;
       bb:=TBitMap.Create ;
    try
    if od1.FileName =' then exit;
     s:=od1.FileName ;
     sfile:=ExtractFileName(s);
     extt:=ExtractFileExt(s);
     if tabcontrol1.Tabs.IndexOf(sfile)>=0 then exit;

     DealTabAdd(sfile);
    FIsOpen:=false;
     if LowerCase(extt)='.bmp' then
      begin//1

        Child := TMDIChild.Create(Application);
        Child.Caption :=sfile;
        with Child do
         begin//22
          image1.picture.LoadFromFile(s);
          s1:=IntToStr(MainForm.MDIChildCount);
          edtindex.Text :=s1;
          edtpath.Text :=s;
          edtmodify.Text :=';
          end;//22
       end;//1
       if  LowerCase(extt)='.jpg' then
        begin//2
          jj.LoadFromFile(s);
          bb.Assign(jj);
        Child := TMDIChild.Create(Application);
        Child.Caption :=sfile;
        with Child do
         begin//33
          s1:=IntToStr(MainForm.MDIChildCount);
          image1.picture.Bitmap.Assign(bb);  
          edtindex.Text :=s1;
          edtpath.Text :=s;
          edtmodify.Text :=';
         end;//33
        end;//2

      LastSavingDir:=ExtractFilePath(s);
      AddDMenu(s);
      FIsOpen:=true;
      FClosingALL:=false;
    finally
     jj.Free ;
     bb.Free;
    end; //end try

   end;//0

end;

----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 luowenfu (MIXbird) ★☆☆☆☆ -
盒子活跃会员
2004/1/9 19:03:21
3楼: 用下面这段代码吧,D6,2000测试通过
procedure TForm1.BitBtn1Click(Sender: TObject);
var
  jpeg :TJpegImage;
  bmp :TBitmap;
begin
 if op1.Execute then
 begin
  jpeg:=TjpegImage.Create;
  jpeg.LoadFromFile(op1.FileName);
  bmp :=TBitmap.Create;
  bmp.Assign(jpeg);
  image1.Picture.Bitmap:=bmp;
  jpeg.Free;
  bmp.Free;
 end;
end;
----------------------------------------------
<<努力自信爱心>>菜鸟中的菜鸟
作者:
男 rhlw (lw) ★☆☆☆☆ -
盒子活跃会员
2004/1/9 21:52:44
4楼: 多谢各位老师:
luowenfu 老兄,用你的方法可把JPG图片作背景;但我却不知道如何使之实现动态更新——即在对话框中选择好JPG图片后,背景不能马上更新,要最小化后再最大化才能实现更新。似乎不太方便,不合理,不知是否有好的方法?谢谢!

----------------------------------------------
-你的一句话,会令我少走许多弯路,衷心的多谢指点。
作者:
男 rhlw (lw) ★☆☆☆☆ -
盒子活跃会员
2004/1/9 22:11:07
5楼: 补充:
我用BIOS大哥给我的代码实现MDI背景,如下:
PROCEDURE TMainForm.ClientWndProc(VAR Message: TMessage);
VAR
  CanvasClient:TCanvas;
begin
with Message do
case Msg of
WM_ERASEBKGND:
  begin
    CanvasClient:=Tcanvas.Create;
    CanvasClient.Handle:=GetDC(self.ClientHandle);
    CanvasClient.StretchDraw(rect(0,0,clientwidth,clientheight),image1.Picture.bitmap);
    CanvasClient.Free;
  end;
else
  Result := CallWindowProc(FPrevClientProc, ClientHandle, Msg, wParam, lParam);
end;
end;

procedure TMainForm.FormShow(Sender: TObject);
begin
//// MDI背景平铺代码,与WndProc链接
 FClientInstance := MakeObjectInstance (ClientWndProc);
 FPrevClientProc := Pointer(GetWindowLong(MainForm.ClientHandle, GWL_WNDPROC));
 SetWindowLong(MainForm.ClientHandle, GWL_WNDPROC, LongInt(FClientInstance));

end;
----------------------------------------------
-你的一句话,会令我少走许多弯路,衷心的多谢指点。
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行58.59375毫秒 RSS