近来做一个项目,考虑安全性使用Delphi开发,需要轮播图片,考虑后期版权还是自造轮子,话不多说直接上代码。使用就不说了,就几个属性:
Interval:多久轮播一次;
ImageLists:图片列表
ImageExistFilename:图片列表中图片文件不存在的时候显示这个图片,为空时直接绘制一个不存在
注意:目前只支持了PNG,其他 的图片请自行完善其中的TPngImage那里,判断文件类型加载
unit uSwiper;
interface
uses
System.SysUtils, System.Classes, System.Types, Vcl.Controls, Vcl.ExtCtrls,
Vcl.StdCtrls,
Vcl.Imaging.pngimage, Vcl.Imaging.jpeg, Vcl.Graphics, Vcl.ImgList,
Winapi.CommCtrl;
type
TSwiper = class(TPaintBox)
private
{ Private declarations }
FCurrentImage, FPos: Integer;
FTimerInterval: Integer;
FMemo: TMemo;
FTimer: TTimer;
FTimer1: TTimer;
FLines: TStrings;
FImageExistFilename: String;
FTmpBmpFirst, FTmpBmpSecond: TBitmap;
protected
{ Protected declarations }
procedure onTimer(Sender: TObject);
procedure onTimer1(Sender: TObject);
procedure SetInterval(Value: Integer);
procedure SetLines(Value: TStrings);
procedure PaintOneImage(Sender: TObject);
procedure Paint;override;
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
{ Published declarations }
property Interval: Integer read FTimerInterval write SetInterval;
property ImageLists: TStrings read FLines write SetLines;
property ImageExistFilename: String read FImageExistFilename write FImageExistFilename;
end;
proc