2 qq 33915826 qq_33915826 于 2016.04.20 19:24 提问

Delphi实现图片滚动切换的代码中move函数报错说variable required?为什么?

procedure TMainForm.startClick(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;
start.Enabled := False; //改变两个按钮的属性
stop.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;
start.Enabled := True; //激活“开始”按钮
stop.Enabled := False; // 停止“按钮”失效
end;图片说明

1个回答

caozhy
caozhy   Ds   Rxr 2016.04.20 19:44
已采纳
 Move ((Bmp.ScanLine [0])^, Line^, LineBytes); //复制图像的第一行
qq_33915826
qq_33915826 谢谢,问题解决了
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
delphi中move函数的正确理解
  我们能看到以下代码var pSource,pDest:PChar;     len: integer;.......................//一些代码Move(pSource,pDest,len); //错误Move(pSource^,pDest^,len); //正确看起来确实好像是传值,而不是传地址,但是各位别忘了,这不是C,C++,而是Delph
JS实现4张图片滚动切换代码
JS实现4张图片滚动切换代码 - www.webdm.cn *{ margin:3;padding:0; font-size:12px; } body{ font-size:9pt; text-align:center; margin-top: 8px; } body *{text-align:center;} .font14{font-size:14px;} se
[转]DELPHI警告错误提示
====================================================== 注:本文源代码点此下载 ====================================================== 字号: 大大中中小小 delphi的中文错误提示(1) ';' not allowed before 'else' else前不允许有“;”
delphi中常见错误提示说明
 Delphi的中文错误提示; not allowed before ELSE    ElSE前不允许有“;” clause not allowed in OLE automation section 在OLE自动区段不允许“”子句 is not a type identifier 不是类型标识符 not previously declared as a PROPERTY
js两种实现网页图片滚动的方法 和一种切换的方法
第一种用js的window.onload() 先随便来几个图片 路径自己设一下<div id="box" style="margin-top:0px;"> <ul> <li><img src="../img/1.jpg" width="340" height="210"></li> <li><img src="../img/2.jpg" wi
CSS3实现图片滚动播放效果
本文原地址:http://blog.csdn.net/wongleetionCSS3实现图片滚轮效果在平常我们使用一些滚动图片的效果,都是用javascript代码(JQuery)实现,但是在如今Html5和CSS3盛行的时代,可以替代javascript代码来实现一些常见的效果来提高网页的加载速度,对用户来说体验是更加友好的。特别是现在微信平台开发比较火热的年代,同样的效果用HTML5+CSS3...
HTML中让图片滚动的<marquee>标签的使用方法
实例:  <marquee id="affiche" align="left" behavior="scroll" bgcolor="#FF0000" direction="up" height="300" width="200" hspace="50" vspace="20" loop="-1" scrollamount="10" scrolldelay="100" onMouseOut="t
div+css的图片滚动效果
想必大家都注意到的不循环滚动,所以出现了很多替代脚本,或iframe或JS输出,不管怎么做,都略显麻烦。下面说一下这个相对简单的实现思路:一个设定宽度并且隐藏超出它宽度的内容的容器demo,里面放demo1和demo2,demo1是滚动内容,demo2为demo1的直接克隆,通过不断改变demo1的scrollTop或者scrollLeft达到滚动的目的,当滚动至demo1与demo2的交界处时直
html5 用canvas实现图片自动滑动切换
转自:http://blog.csdn.net/iamke1987/article/details/9886707 图片自动滑动效果很多网站都要用,最近在学html5就拿这个练练手,发现用canvas实现起来其实很简单。代码比较粗糙,有很多改进的地方,不过还是先记录一下。 一. html文件 [html] view plaincopy
E_jquery图片滚动切换插件 jCarousel Lite
E_jquery图片滚动切换插件 jCarousel Lite,可以实现多种图片滚动。代码无误,亲测有用。