1,183
社区成员
发帖
与我相关
我的任务
分享
procedure TFrmwxgjxgl.FormCreate(Sender: TObject);
begin
FImages := TList<TImage>.Create;
FimagesTop:=TList<TImage>.Create;
//TDirectory.GetFiles(AppPath+PicPath+PicHappy+PicHappySbgl+PicHappySbglWxgjxgl+PicHappySbglWxgjxglWxgjxql,FileJpgAll)
LoadPicFile('C:\Users\YCY\Pictures', '*.jpg');
LoadPicFileTop('C:\Users\YCY\Pictures', '*.jpg');
if Length(TDirectory.GetFiles('C:\Users\YCY\Pictures', '*.jpg'))<2 then
begin
LoadPicFile('C:\Users\YCY\Pictures', '*.jpg');
LoadPicFileTop('C:\Users\YCY\Pictures', '*.jpg');
end;
end;
procedure TFrmwxgjxgl.LoadPicFile(FilePath,FileFlag:string);
var
FileName: String;
Wic: TWicImage;
Image: TImage;
begin
try
try
Wic := TWICImage.Create;
for FileName in TDirectory.GetFiles(FilePath,FileFlag) do
begin
try
Wic.LoadFromFile(FileName);
Image := TImage.Create(Self);
Image.Parent := Panel1;
Image.Top:=0;
Image.Left:=0;
Image.Height:=321;
Image.Width:=387;
Image.Stretch := True;
Image.Center := True;
image.Transparent:=True;
Image.Picture.Assign(Wic);
Image.Left := Panel1.ClientWidth * FImages.Count;
FImages.Add(Image);
except
//Ignore errors loading the image.
end;
end;
finally
Wic.Free;
end;
except
on e:Exception do
begin
//SetDlgAutoClose(CloseErrDlg,True);
Application.MessageBox(PChar(e.Message),PChar('错误'),MB_OK+MB_ICONERROR);
end;
end;
end;
procedure TFrmwxgjxgl.OnPan(Sender: TObject; Delta: TPoint);
var
I: Integer;
Image,Image2: TImage;
begin
//Pan
for I := 0 to FImages.Count - 1 do
begin
Image := FImages[I];
Image.Left := Image.Left - Delta.X;
end;
//Rotate images
Image := FImages[0];
if Image.Left + Image.Width < 0 then
begin
FImages.Add(Image);
FImages.Delete(0);
Image:=FImages[FImages.Count-1];
Image2:=FImages[FImages.Count-2];
Image.Left := Image2.Left+ Image.Width;
end
else
if Image.Left > 0 then
begin
FImages.Insert(0, FImages[FImages.Count - 1]);
FImages.Delete(FImages.Count - 1);
Image := FImages[0];
Image2 := FImages[1];
Image.Left := Image2.Left - Image.Width;
end;
end;
procedure TFrmwxgjxgl.Panel1Gesture(Sender: TObject;
const EventInfo: TGestureEventInfo; var Handled: Boolean);
begin
if EventInfo.GestureID = igiPan then
begin
if not (gfBegin in EventInfo.Flags) then
OnPan(Sender, Point(FLast.X - EventInfo.Location.X,Flast.Y - EventInfo.Location.Y));
FLast := EventInfo.Location;
end;
end;