讲稿6-BCB高级组件应用1.ppt

  1. 1、本文档共77页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
讲稿6-BCB高级组件应用1

{ int p,Col,Row; DrawGrid1-MouseToCell (X, Y, Col, Row); //由鼠标位置确定当前栅格的行、列 p = Row*4+Col; //由当前栅格的行、列号确定对应图片文件在列表中的位置 if (p FileListBox1-Items-Count) { FileName = FileListBox1-Items-Strings[p]; //取该图片文件名 Image1-Picture-LoadFromFile (FileName); //图片装载到Image1 Label1-Caption = FileName; } } //--------------------------------------------------------------------------- void__fastcall TForm1::Image1DblClick (TObject *Sender) { int w, h; float r1, r2; w = Image1-Picture-Width; //计算图片的原始宽度 h = Image1-Picture-Height; //计算图片的原始高度 Form2-Image1-Picture-Assign (Image1-Picture); r1 = (float) w/h; r2 = (float) 1000/700; if (r1r2) //以下计算使图片在保持原有的长宽比前提 { //在1024×768分辨率之下最大化窗口内 Form2-Image1-Width = 1000; //尽可能按最大尺寸显示 h = 1000 /r1; Form2-Image1-Height = h; Form2-Image1-Left = 22; Form2-Image1-Top = (700-h) /2; } else { Form2-Image1-Height = 700; w = 700*r1; Form2-Image1-Width = w; Form2-Image1-Left = 10+(1000-w) /2; Form2-Image1-Top = 0; } Form2-WindowState = wsMaximized; //使窗口最大化 Form2-Show ( ); } //--------------------------------------------------------------------------- 将若干图片文件(本例中限使用.bmp类型)与应用程序放在同一目录下,运行本程序,如图11-6所示,左侧GridDraw可同时显示16幅缩小的图片,点击其中某图片即能在右方TImage组件中显示放大的画面,并在标签上显示文件名。双击Image1组件,打开Form2以全屏幕放大显示该图片,如图11-7所示。 图11-6 图片浏览程序在运行时的界面 图11-7 将图片放大显示 【评析】 (1) TFileListBox组件是TListBox的派生类,但增加了文件列表的功能,它可以将指定目录(本例中缺省为当前目录)下所有文件的名称作为列表中的项目供显示和访问。本例将“FileListBox1-Mask”设为*.bmp,使列表仅接受.bmp文件;在本例中仅利用该表提取文件名,所以执行“FileListBox1-Visible = false;”使列表框不可见。除了可以用文件列表取得文件名外,也可以使用API的 FindFirst、FindNext函数取得文件名,但使用不太方便。 (2) 在Form的OnCreate中,对DrawGrid进行了若干设置:DrawGrid1-RowCount为DrawGrid1中栅格的行数,由于每行有四个栅格,所以行数为FileListBox1-Items-Count /4(若除不尽再加一行)。DrawGrid的每行的高度和每列的宽度都是能控制的,“DrawGrid

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档