• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Delphi > Delphi实现图片滚动切换的完整实例代码

Delphi实现图片滚动切换的完整实例代码

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了delphi串口通信实例,delphi多线程实例,delphi 7编程实例教程,delphi实例教程,delphi7数据库实例等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文以实例介绍了Delphi实现图片滚动切换的方法。该程序可以实现图像的滚动播出,并且通过本代码可控制窗口中的图像向上滚动,通过调节速度滚动条的值还可以调整滚动的速度;点击“停止”按钮,图像即停止滚动。

完整的功能代码如下:

unit Unit1;
interface
uses
Windows, Classes, Graphics, Forms, Controls, Menus,
Dialogs, StdCtrls, ExtCtrls, SysUtils, ComCtrls, Buttons;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
File1: TMenuItem;
Open1: TMenuItem;
N1: TMenuItem;
Exit1: TMenuItem;
Help1: TMenuItem;
AboutImageViewer1: TMenuItem;
OpenDialog1: TOpenDialog;
Options1: TMenuItem;
ColorDepth1: TMenuItem;
ScrollPanel1: TMenuItem;
Panel1: TPanel;
TrackBar1: TTrackBar;
BitBtn2: TBitBtn;
BitBtn1: TBitBtn;
Label1: TLabel;
Image1: TImage;
N2: TMenuItem;
procedure Open1Click(Sender: TObject);
procedure Exit1Click(Sender: TObject);
procedure AboutImageViewer1Click(Sender: TObject);
procedure ColorDepth1Click(Sender: TObject);
procedure ScrollPanel1Click(Sender: TObject);
procedure TrackBar1Change(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
public
{ Public declarations }
end;
var
Form1: TForm1;
nLines: Integer;
fCancel: Boolean;
implementation
{$R *.DFM}
procedure TForm1.Open1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
Image1.Picture.LoadFromFile (OpenDialog1.FileName);//导入图像文件
Caption := '控制图像动态移动- ' + OpenDialog1.FileName;//改变窗体标题
end;
end;
procedure TForm1.Exit1Click(Sender: TObject);
begin
Close; //退出窗体
end;
procedure TForm1.AboutImageViewer1Click(Sender: TObject);//关于
begin
MessageDlg ('控制图像动态移动为'+ #13'Delphi图形工作室制作', mtInFormation,
[mbOk], 0);
end;
procedure TForm1.ColorDepth1Click(Sender: TObject);
var
strDepth: String;
begin
case Image1.Picture.Bitmap.PixelFormat of //获得图像颜色深度
pfDevice: strDepth := '无图';
pf1bit: strDepth := '1-bit';
pf4bit: strDepth := '4-bit';
pf8bit: strDepth := '8-bit';
pf15bit: strDepth := '15-bit';
pf16bit: strDepth := '16-bit';
pf24bit: strDepth := '24-bit';
pf32bit: strDepth := '32-bit';
pfCustom: strDepth := 'Custom';
end;
MessageDlg ('图像颜色深度:' + strDepth,mtInFormation, [mbOK], 0);//给出图像
颜色深度信息
end;
procedure TForm1.ScrollPanel1Click(Sender: TObject);
begin
Panel1.Visible := not Panel1.Visible;
ScrollPanel1.Checked := Panel1.Visible; //改变控制面板的可见性
end;
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
nLines := TrackBar1.Position;
TrackBar1.Hint := IntToStr (TrackBar1.Position);//给出当前速度大小的提示
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var
W, H, I, J, LineBytes: Integer;
Line: PByteArray; //定义指针类型变量
Bmp: Tbitmap;
R: TRect;
begin
if Image1.Picture.Bitmap.PixelFormat=pfDevice then //当没有打开图片时
begin
MessageDlg ('没有打开图片!', mtInFormation, [mbOk], 0);//给出出错提示
exit; //退出
end
else
fCancel := False;
BitBtn1.Enabled := False; //改变两个按钮的属性
BitBtn2.Enabled := True;
Bmp := Image1.Picture.Bitmap; //获取BMP 图像并定义图像尺寸
W := Bmp.Width;
H := Bmp.Height;
LineBytes := Abs (Integer (Bmp.ScanLine [1]) -Integer (Bmp.ScanLine [0]));
Line := AllocMem (LineBytes);
for I := 0 to H - 1 do
begin
if fCancel then //在每一次循环前均检查中断标志(即确定停止按钮是否按下)
Break; //单击“停止”按钮则停止滚动图像
Move ((Bmp.ScanLine [0]), Line, LineBytes); //复制图像的第一行
for J := 1 to H - 1 do
begin
Move ((Bmp.ScanLine [J]), (Bmp.ScanLine [J-1]), LineBytes);
if (J mod nLines = 0) then
begin
R := Rect (0, Panel1.Height + J-nLines,W, Panel1.Height + J);
InvalidateRect (Handle, @R, False);
UpdateWindow (Handle);
end;
end;
Move (Line, (Bmp.ScanLine [Bmp.Height - 1]), LineBytes);
R := Rect (0, Panel1.Height + H - nLines,W, Panel1.Height + H);
InvalidateRect (Handle, @R, False);
UpdateWindow (Handle);
Application.ProcessMessages; //允许立即停止循环使程序处于初始状态
end;
BitBtn1.Enabled := True; //激活“开始”按钮
BitBtn2.Enabled := False; // 停止“按钮”失效
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
fCancel := True; //改变标志Fcancel 的值,停止图像滚动
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
TrackBar1Change (self); //调用TrackBar1Change 函数
end;
end.
</div> </div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Delphi实现木马文件传输代码实例
  • Delphi实现图片滚动切换的完整实例代码
  • Delphi实现读取系统时间与日期完整实例
  • Delphi实现碰撞球体完整实例代码
  • Delphi实现树型结构具体实例
  • Delphi 生成excel中饼图的实例代码
  • Delphi隐藏TPageControl的标签实例介绍

相关文章

  • 2017-05-28delphi中一个值得大家来考虑的DLL问题
  • 2017-05-28delphi 正弦曲线图
  • 2017-05-28Delphi书籍15本网盘下载地址整理
  • 2017-05-28Delphi实现碰撞球体完整实例代码
  • 2017-05-28截取指定符号之间的字符串(随机读取)delphi实例代码
  • 2017-05-28Delphi创建开机启动项的方法示例
  • 2017-05-28delphi xe 可用的MD5算法
  • 2017-05-28Delphi常用关键字用法详解
  • 2017-05-28Delphi中对时间操作方法汇总
  • 2017-05-28Delphi修改操作注册表权限的代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Delphi建立、读取、存贮INI文件的方法《一》
    • delphi制作wav文件的方法
    • delphi发送消息控制滚动条使用示例
    • Delphi实现图像文本旋转特效完整实例代码
    • Delphi下OpenGL2d绘图之画点的方法
    • Delphi中对时间操作方法汇总
    • delphi实现将BMP格式图形转化为JPG格式图形的方法
    • delphi中exit,abort,break,continue的区别介绍
    • TImage组件实现保存图片到Stream
    • Delphi中设置条件断点的方法讲解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有