Delphi 10.4.2是最新版本的跨平台本机应用开发工具,一套代码可编译到五个操作系统上:iOS、Android、Windows、macOS 和 Linux; 本代码仅仅数十行即可轻松实现Android/IOS txt小说电子书阅读器应用APP翻页效果,颈椎枕轻松开发自己的电子书阅读APP应用:

Delphi源代码下载地址:https://download.csdn.net/download/xyzhan/15647843

unit PageTurnUnit1;interfaceusesSystem.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,FMX.Controls.Presentation, FMX.ScrollBox, FMX.Memo, FMX.Effects,FMX.Filter.Effects, FMX.Objects, FMX.Layouts, FMX.Ani, Data.Bind.GenData,Data.Bind.Components, Data.Bind.ObjectScope, Data.Bind.EngExt,Fmx.Bind.DBEngExt, System.Rtti, System.Bindings.Outputs, Fmx.Bind.Editors,FMX.StdCtrls, FMX.Edit;typeTPageTurnSampleForm = class(TForm)Memo1: TMemo;Memo2: TMemo;Swipe: TSwipeTransitionEffect;Memo3: TMemo;Memo4: TMemo;LayoutVisible: TLayout;LayoutVirtual: TLayout;LayoutGlass: TLayout;SwipePoint: TSelectionPoint;SwipeAnimation: TPathAnimation;PrototypeBindSource1: TPrototypeBindSource;BindingsList1: TBindingsList;EditLoremIpsum1: TEdit;LinkControlToFieldLoremIpsum1: TLinkControlToField;procedure FormResize(Sender: TObject);procedure FormCreate(Sender: TObject);procedure LayoutGlassMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Single);procedure LayoutGlassMouseDown(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Single);procedure LayoutGlassMouseUp(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Single);procedure SwipeAnimationProcess(Sender: TObject);procedure SwipeAnimationFinish(Sender: TObject);procedure LayoutGlassMouseLeave(Sender: TObject);private{ Private declarations }FCurPage: Integer;procedure FillMemo(memo: TMemo);procedure FinishTurn;const VisibleLines = 30;public{ Public declarations }end;varPageTurnSampleForm: TPageTurnSampleForm;implementation{$R *.fmx}procedure TPageTurnSampleForm.FillMemo(memo: TMemo);
vari: Integer;
beginMemo.Text := EditLoremIpsum1.Text;PrototypeBindSource1.Next;for I := 0 to 20 doMemo.Text := Memo.Text + Format('Page %d ', [FCurPage]);Memo.Text := Memo.Text + EditLoremIpsum1.Text;Memo.Text := Memo.Text + EditLoremIpsum1.Text;PrototypeBindSource1.Next;Inc(FCurPage);
end;procedure TPageTurnSampleForm.FinishTurn;
beginif not Swipe.Enabled then exit;if SwipeAnimation.Enabled then exit;SwipeAnimation.Path.Clear;SwipePoint.Position.Point := PointF(0, 0);SwipeAnimation.Path.MoveTo(Swipe.MousePoint);if Swipe.MousePoint.X <= ClientWidth - ClientWidth / 4 thenbeginSwipeAnimation.Path.LineTo(PointF(Swipe.MousePoint.X / 2, 0));SwipeAnimation.Path.LineTo(PointF(0, 0));endelsebeginSwipeAnimation.Path.LineTo(PointF(ClientWidth, 0));end;SwipeAnimation.Start;
end;procedure TPageTurnSampleForm.FormCreate(Sender: TObject);
beginFCurPage := 1;Swipe.CornerPoint := PointF(LayoutGlass.Width, 0);Swipe.MousePoint  := PointF(LayoutGlass.Width - 5, 5);FillMemo(Memo1);FillMemo(Memo2);FillMemo(Memo3);FillMemo(Memo4);
end;procedure TPageTurnSampleForm.FormResize(Sender: TObject);
beginMemo1.Width := ClientWidth / 2;Memo1.Height := ClientHeight;Memo2.Width := ClientWidth - Memo1.Width;Memo2.Position.X := Memo1.Width;Memo2.Height := ClientHeight;Memo4.Position := Memo2.Position;Memo4.Size := Memo2.Size;Memo3.Position := Memo1.Position;Memo3.Size := Memo1.Size;
end;procedure TPageTurnSampleForm.LayoutGlassMouseDown(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Single);
varvmemo: TBitmap;
beginSwipe.MousePoint := PointF(x,y);Swipe.Enabled := True;LayoutVirtual.BringToFront;vmemo := LayoutVirtual.MakeScreenshot;Swipe.Target.Assign(vmemo);vmemo.FlipHorizontal;Swipe.Back.Assign(vmemo);vmemo.Free;LayoutVisible.BringToFront;
end;procedure TPageTurnSampleForm.LayoutGlassMouseLeave(Sender: TObject);
beginFinishTurn;
end;procedure TPageTurnSampleForm.LayoutGlassMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Single);
beginif ssLeft in Shift thenbeginSwipe.MousePoint := (TPointF.Create(X,Y));end;
end;procedure TPageTurnSampleForm.LayoutGlassMouseUp(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Single);
beginFinishTurn;
end;procedure TPageTurnSampleForm.SwipeAnimationFinish(Sender: TObject);
beginSwipeAnimation.Enabled := False;Swipe.Enabled := False;if Swipe.MousePoint.X = 0 thenbeginMemo1.Text := Memo3.Text;Memo2.Text := Memo4.Text;FillMemo(Memo3);FillMemo(Memo4);end;
end;procedure TPageTurnSampleForm.SwipeAnimationProcess(Sender: TObject);
beginSwipe.MousePoint := SwipePoint.Position.Point;
end;end.

Delphi 10.4.2 轻松实现Android/IOS txt小说电子书阅读器应用APP翻页效果相关推荐

  1. 基于Android的小说在线阅读器软件APP

    在我国,有很多人在业余时间喜欢看小说,因为小说独特性,可以通过书籍.手机甚至在电脑上进行阅读.当然,根据不同的人阅读的习惯不一样,一部分的喜欢书籍阅读,一部分喜欢在手机上阅读.两者都有其优势,前者不易 ...

  2. android滑动切换卡片,一步步实现Viewpager卡片翻页效果

    这个CardStackViewpager的灵感来自Github上面的 FlippableStackView开源项目,而我想实现的效果方向上刚好与FlippableStackView相反,而且细节上也有 ...

  3. ios 开源的电子书阅读器项目

    iphone平台上开源的电子书阅读器项目: https://github.com/vfr/Reader https://github.com/brow/leaves https://github.co ...

  4. android 电子书源码,翻页效果

    这两天模仿着做了一个apk电子书的应用,有翻页效果,本来是想学一下自己写的,无奈,最后偷懒使用了别人写的 翻页类 PageWidget.java 下面是工程文件的结构 这个是写的类的包结构,PageV ...

  5. 基于Android的本地电子书阅读器的设计与实现Ebook(1)

    基于Android的本地电子书阅读器的设计与实现Ebook(1) 学习Android时间不久,试着做了一个本地电子书阅读器APP,因为知识浅薄并不能像其他大佬一样实现各种繁杂的功能,但可以实现基本的阅 ...

  6. Android翻页效果原理实现之翻页的尝试

    炮兵镇楼 在<自定义控件其实很简单>系列的前半部分中我们用了整整六节近两万字两百多张配图讲了Android图形的绘制,虽然篇幅很巨大但仍然只是图形绘制的冰山一角,旨在领大家入门,至于修行成 ...

  7. android 辅助功能 翻页,Android利用悬浮按钮实现翻页效果

    今天给大家分享下自己用悬浮按钮点击实现翻页效果的例子. 首先,一个按钮要实现悬浮,就要用到系统顶级窗口相关的WindowManager,WindowManager.LayoutParams.那么在An ...

  8. 用IOS手机看小说,阅读器APP怎么选

    由于IOS手机自身不能直接打开epub或者txt格式文件,或者阅读软件使用感较差,会我们的阅读带来不小的困扰.今天我为大家推荐iOS苹果手机上比较好用的3个epub阅读器,用这些阅读器,大家就可以轻松 ...

  9. Android之实现上下左右翻页效果

    如果实现上下或者左右翻页效果,我们借助下这个开源项目:https://github.com/openaphid/android-flip Aphid FlipView是一个能够实现Flipboard翻 ...

最新文章

  1. ifix从sqlserver里读数据_ifix连接SQL和读写EXCEL的方法
  2. Java非对称加密KeyPairGenerator类
  3. pta最长连续递增子序列C语言,pta 习题集 5-5 最长连续递增子序列 (dp)
  4. Vue3核心概念、新特性及与Vue2的区别
  5. centos7搭建hadoop
  6. 大数据之-Hadoop3.x_MapReduce_自定义序列化步骤---大数据之hadoop3.x工作笔记0095
  7. Visual Studio Code 1.30 发布,你升级了没?
  8. java 2017腾讯面试题_腾讯2017刁难面试题,是不是大神就看你会做几题
  9. 利用计算机解决的生活问题,利用计算机解决经典动力学问题
  10. 计算机导论大一知识点整理_电网计算机类考试?悄悄告诉你一个复习攻略!
  11. 均衡发展学校计算机室解说词,迎接省均衡发展学校解说词
  12. android-应用签名
  13. 计算机原理阅读,计算机原理与应用作业
  14. 使用planetaryjs插件实现3维地球仪效果
  15. 苏东坡的起伏一生:就算人生不顺利,也要活的潇潇洒洒
  16. 视觉slam中的一种单目稠密建图方法
  17. 如何实现Excel多人共享与协作
  18. 线性代数和微积分 1.1微分方程概述
  19. 车载FAKRA和HSD连接器
  20. 深度学习Python环境打包到另外一台电脑(详细教程)

热门文章

  1. 华为笔记本鸿蒙的出了吗,鸿蒙OS笔记本要来了?但可能不会在国内首发
  2. Java学习-SpringBoot
  3. 以AI绩效管理切入产研赛道,方云智能获近千万元天使轮融资
  4. 解决ios设备自带邮箱只能接收邮件不能发送邮件问题的方法
  5. ArcGIS Engine学习系列1 AE基础介绍
  6. 如何保存BING首页的图片壁纸
  7. Matlab概率论与数理统计实践-事件发生的概率的三种计算方法:二项分布公式,正态分布,切比雪夫不等式
  8. 基于ABC人工蜂群优化算法的最优解搜索算法matlab仿真
  9. Painter not active
  10. Substance Painter笔记:多显示器且多分辨率显示器时的设置