查询触摸屏 | 工业触摸屏
登陆:用户 密码
网站首页 | 触摸屏资讯 | 触控一体机 | 触摸屏屏幕 | 触摸屏机柜 | 触摸显示器 |  触摸控制器 | 自助终端 | 呼叫系统 | 触摸屏论坛
电子大屏 | 触摸屏外设 | 考勤排队机 | 触摸屏新品 | 解决之方案 | 选购与维护 |  驱动与软件 | 数字城市 | POS 系统 | 触摸屏软件
触摸屏浏览器Toucher V4.1正式发   浙江杭州宏拓科技发展有限公司联   新疆诚信行商贸有限公司联系方式   福建省泉州卓远科技限公司联系方   Toucher触摸屏浏览器4.0正式发布   Toucher触摸屏浏览器4.0正式发布   广东省广州市3M誉思电子科技有限   欢迎加入中国触摸屏网群   广州市力麒贸易有限公司重庆分公   上海尚科信息技术有限公司    全国触摸屏销售热线:【请点击】
导航: 首页 >> 选购与维护 >> 触摸屏技术 >> 正文 全国触摸屏销售热线:(点击查看)
全国触摸屏经销商
【浙江杭州】杭州宏拓
【新疆乌市】新疆诚信行
【上 海 市】尚科触控
【贵州凯里】贵州易通
【福建泉州】泉州卓远
【广东广州】3M誉思触控
【重 庆 市】重庆力麒
【湖北武汉】武汉力麒
【北 京 市】北京联控
【江苏苏州】苏州名雅
触摸屏编程图象处理的一些小技巧  
触摸屏编程图象处理的一些小技巧
副标题:触摸屏编程图象处理的一些小技巧
日期:2007-12-20 21:28:39     来源:电子产品世界   编辑:51Touch 

[摘要] 触摸屏大家是经常用到的,但不一定知道的是通过鼠标的单击和移动是怎样才能实现触摸屏的种种功能。下面就让我们来简单介绍在触摸屏编程过程中图形、图象处理技术的一些小技巧。

原文位置 原文位置
[关键字] 触摸屏 Delphi 编程技巧

原文位置 原文位置
  触摸屏大家是经常用到的,但不一定知道的是通过鼠标的单击和移动是怎样才能实现触摸屏的种种功能。下面就让我们来简单介绍在触摸屏编程过程中图形、图象处理技术的一些小技巧。  原文位置
原文位置
  1.怎样使窗体全屏显示,即根据显示器的大小来确定窗体的大小,这里介绍三种方法来实现:  原文位置
原文位置
  (1)BorderStyle := bsNone;  原文位置
原文位置
  WindowState := wsMaximized;  原文位置
原文位置
  (2)BorderStyle := bsNone;  原文位置
原文位置
  Left := 0;  原文位置
原文位置
  Top := 0;  原文位置
原文位置
  Width := Screen.Width;  原文位置
原文位置
  Height := Screen.Height;  原文位置
原文位置
  (3)BorderStyle:=bsNone;  原文位置
原文位置
  SetBounds(0,0,Screen.Width,Screen.Height);  原文位置
原文位置
  2.实现按ESC键使全屏窗体退出全屏,则要根据ESC的键值27来实现,代码如下:  原文位置
原文位置
  procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState);  原文位置
原文位置
  begin  原文位置
原文位置
  if key=27 then  原文位置
原文位置
  close;//关闭窗口;  原文位置
原文位置
  end;  原文位置
原文位置
  另外一定要把Form1的keypreview设置成为True;keypreview默认为False。  原文位置
原文位置
  3.当鼠标移动到某组件区域范围内(如Image组件),如何改变鼠标的形状呢?主要是设置相应组件的cursor属性,具体方法如下:  原文位置
原文位置
  (1)如果是要使用系统已定义的光标,可用:Image1.cursor:=已定义光标名;  原文位置
原文位置
  (2)如果是使用自定义的光标,可用以下方法:  原文位置
原文位置
  将制作好光标调入  原文位置
原文位置
   const  原文位置
原文位置
   newcur = 1;(必须大于0)  原文位置
原文位置
  screen.cursors[newcur]:= loadicon()或Loadcursorfromfile(); //调入的图标的扩展名必须为ani,ico,cur  原文位置
原文位置
  image1.cursor:=newcur;  原文位置
原文位置
  4.在查看较大图象时,如果窗体比图象小,就不能完全显示图象。如果将较大的图象压缩来显示到窗体上的话,图象就会模糊不清。将图象的一部分显示到窗体上,需要时用鼠标移动图象来浏览其他部分,这样可以浏览全部图象有可以达到清晰的效果。如果要使鼠标移动图象,需要用到三个事件,即:onMouseDown、onMouseUp、onMouseMove,具体代码如下:  原文位置
原文位置
  procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;  原文位置
原文位置
   Shift: TShiftState; X, Y: Integer);  原文位置
原文位置
  begin  原文位置
原文位置
   moveFlag:=true;  原文位置
原文位置
   OX:=X;  原文位置
原文位置
   OY:=Y;  原文位置
原文位置
  end;  原文位置
原文位置
  procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,  原文位置
原文位置
   Y: Integer);  原文位置
原文位置
  begin  原文位置
原文位置
  if moveFlag then  原文位置
原文位置
   begin  原文位置
原文位置
   image1.Left:=image1.Left+(X-OX);  原文位置
原文位置
   image1.Top:=image1.Top+(Y-OY);  原文位置
原文位置
   end;  原文位置
原文位置
  end;  原文位置
原文位置
  procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;  原文位置
原文位置
   Shift: TShiftState; X, Y: Integer);  原文位置
原文位置
  begin  原文位置
原文位置
   moveFlag:=False;  原文位置
原文位置
  end;  原文位置
原文位置
  5.如何实现跟随鼠标轨迹在透明的Image组件上绘制不规则曲线(即在触摸屏的背景图片上做标记),并且绘线的同时没有闪烁现象,首先让我们实现Image组件在画线是保持透明,这里用image1.Canvas.Brush.Color来实现;而根据鼠标轨迹绘制不规则曲线,主要用到TCanva的两个重要方法:MoveTo、LineTo。具体代码如下:  原文位置
原文位置
  procedure TForm1.DrawShape(TopLeft, BottomRight: TPoint; AMode: TPenMode);  原文位置
原文位置
  begin  原文位置
原文位置
  with image1.Canvas do  原文位置
原文位置
  begin  原文位置
原文位置
   Pen.Mode := AMode;  原文位置
原文位置
   pen.Color:=clred;  原文位置
原文位置
   pen.Width:=10;  原文位置
原文位置
   MoveTo(TopLeft.X, TopLeft.Y);  原文位置
原文位置
   LineTo(BottomRight.X, BottomRight.Y);  原文位置
原文位置
  end;  原文位置
原文位置
  end;  原文位置
原文位置
  procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,  原文位置
原文位置
   Y: Integer);  原文位置
原文位置
  begin  原文位置
原文位置
  if Drawing then  原文位置
原文位置
  begin  原文位置
原文位置
  MovePt := Point(X, Y);  原文位置
原文位置
   DrawShape(Origin, MovePt, pmcopy);  原文位置
原文位置
  origin:=movept;  原文位置
原文位置
  end;  原文位置
原文位置
  end;  原文位置
原文位置
  procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;  原文位置
原文位置
   Shift: TShiftState; X, Y: Integer);  原文位置
原文位置
  begin  原文位置
原文位置
  Drawing := True;  原文位置
原文位置
  image1.Canvas.MoveTo(X, Y);  原文位置
原文位置
  Origin := Point(X, Y);  原文位置
原文位置
  MovePt := Origin;  原文位置
原文位置
  end;  原文位置
原文位置
  procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;  原文位置
原文位置
   Shift: TShiftState; X, Y: Integer);  原文位置
原文位置
  begin  原文位置
原文位置
  if Drawing then  原文位置
原文位置
  DrawShape(Origin, Point(X, Y), pmCopy);  原文位置
原文位置
  Drawing := False;  原文位置
原文位置
  end;  原文位置
原文位置
  procedure TForm1.FormCreate(Sender: TObject);  原文位置
原文位置
  begin  原文位置
原文位置
  panel1.DoubleBuffered:=true;//在Image1所在的容器设置双缓冲,防止画线时闪烁。  原文位置
原文位置
  image1.Canvas.Brush.Color:=panel1.Color;  原文位置
原文位置
  image1.Canvas.FillRect(rect(0,0,image1.Width,image1.Height));//实现绘线的同时保持Image1的透明性。  原文位置
原文位置
  end;

 

对这篇文章您有更多的想法? 请去论坛发表意见吧   
“触摸屏编程图象处理的一些小技巧” 的相关新闻
【江苏南京】维达前线
【四川成都】东骏博锐
【山西太原】鑫 远 望
【云南昆明】昆明德添
【福建厦门】厦门卓远
【福建福州】首钢环星
【山东济南】鸿飞触控
站内搜索 站内搜索
选择搜索类别:
软件开发 软件开发
Toucher2.2在线演示
时代广场软件首页
成都市勘察测绘研究院软件首页
眉山经济贸易委员会软件首页
推荐新闻 推荐新闻
友达、华映将推新品,电
Toucher触摸屏浏览器4.0
Toucher触摸屏浏览器V4.
Toucher触摸屏浏览器4.0
在便携设备中应用电容式
KTV市场触摸屏 又掀娱乐
山东青岛触摸屏项目招标
设为首页加入收藏网站地图友情链接联系我们  |  广告联系 |
网站广告、经销商加盟、触摸屏软件销售:13183843395 028-85582323 联系人:张小姐 杜先生 传真:028-85582323
   四 川   028-81934978 云 南   0871-5109466 南 京   025-83610010
   上 海   13816713998 山 西   0351-7321227 苏 州   0512-65581867
   厦 门   0592-5615268 福州    0591-87611230 北 京   010-62631382
   山 东   13396407999 重 庆   023-68609756 武 汉   027-87851201
   广 东   020-87507489 泉 州  0595-88150378 凯 里  0855-8220226
   贵 阳  0851-5566120 浙 江  13805704917 其 他… 028-85582323
电子邮件: 51touch(A)126.com 请将地址中的"(A)"改成"@",避免垃圾邮件出此下策,望谅
版权所有 Copyright© 2003-2006 触摸屏在线 地址:成都市倪家桥8号 邮编:610041

在线咨询QQ: 43361182   

触摸屏、触摸屏软件、触控一体机咨询