首页 技术 正文
技术 2022年11月14日
0 收藏 719 点赞 2,341 浏览 13723 个字

大家好,好多朋友来信咨询Delphi和C++Builder的移动开发、DataSnap架构等问题,希望能有Demo代码学习。其实Delphi和C++Builder本身自带有很多示例代码,已经覆盖了大部分Delphi和C++Builder开发工具的特性和技术。对于开发各种特定的应用,还是需要去在特定方向钻研该方面的技术的,不要指望一套Demo代码就可以代替自己的学习。

为了方便各位 Delphi 和 C++Builder开发者,有针对性的查找RAD Studio自带的示例代码,从而更快更有针对性的学习对应的功能。我整理了大部分的Demo程序,还有一些因为没有设备或者没有对应的环境,没有写明注释内容。对于FireDAC支持多种数据库的特性的demo,也请有需要的朋友自行查看Demo代码。而至于有朋友问如何连接Oracle等,则自带的FireDAC的简单的Demo都有选择链接服务器的。

大家可以用Ctrl+F搜索对应的内容。

程序的默认路径为下面

C:\Users\Public\Documents\Embarcadero\Studio\17.0\Samples\Object Pascal\

+—Database 数据库方面的内容
|   +—CloudAPI 云API,windows Azure和Amazon的云数据库的访问等,国内可能都没法用
|   |   +—CloudAPITest
|   |   \—CloudExplorer
|   +—EMS 英巴开发工具中的私有云服务器(或中间件服务器),所有需要的外围支持都有了,只需要用户写自己的REST的服务内容,然后象插件一样,插入EMS服务器就可以了。需要单独收费,按用户数。
|   |   +—CustomLogin
|   |   +—FireDACResource
|   |   \—NotesResource
|   +—FireDAC
|   |   +—Bin 辅助目录,帮助生成Demo数据库
|   |   +—DB 多种数据库的数据、元数据和SQL等
|   |   |   +—Data
|   |   |   +—Meta
|   |   |   \—SQL
|   |   +—Samples 示例代码
|   |   |   +—AddOn
|   |   |   |   +—SQLiteIniFile 使用TFDSQLiteIniFile在SQLite数据库上面实现INI文件类似的操作,包括普通数据类型和BLOB类型
|   |   |   |   |   \—Demo
|   |   |   |   |       \—data
|   |   |   |   \—VSE 将XML的结构和内容转化为表
|   |   |   +—Comp Layer
|   |   |   |   +—TFDBatchMove 将text类型的数据复制到表,或者数据集里面的sql数据到表等批量操作,可以使用BatchMove特性来提高性能
|   |   |   |   +—TFDConnection
|   |   |   |   |   +—ConnectionDefs 连接定义方法,在程序运行时创建、从INI文件读取等
|   |   |   |   |   +—DLL_Sharing 通过DLL方式共享连接
|   |   |   |   |   +—GetFieldNames 取得连接数据库的表以及表的字段
|   |   |   |   |   +—InfoReport 取得FireDAC连接的详细信息,便于诊断
|   |   |   |   |   +—Pooling 将连接改为连接池,采用多线程访问数据连接
|   |   |   |   |   \—Transactions 事务的提交和回滚
|   |   |   |   +—TFDEventAlerter 事件处理,不是所有数据库都支持事件
|   |   |   |   +—TFDGUIxLoginDialog 数据库连接时候显示用户名和密码相关
|   |   |   |   +—TFDLocalSQL
|   |   |   |   |   +—InMemDB 使用FDLocalSQL引擎支持的MemTable内存表,本质上就是用SQLite引擎
|   |   |   |   |   +—MegaFMX 通过使用LocalSQL,可以将多种不同来源的数据,放到内存表中,然后再执行混合SQL
|   |   |   |   |   \—xDBMS 使用LocalSQL将多种数据来源的表数据存入LocalSQL引擎,然后写SQL调用,与上面的例子类似
|   |   |   |   +—TFDMemTable
|   |   |   |   |   +—CachedUpdates 使用MemTable进行缓存对记录的修改,或应用更新
|   |   |   |   |   +—CloneCursor 克隆一个MemTable,并可以通过SetRange来限制显示范围
|   |   |   |   |   +—IncFetching_MSSQL 将多块同构数据加载到同一个内存表中
|   |   |   |   |   +—Main 一个综合性的MemTable的应用
|   |   |   |   |   +—MasterDetail 主从结构使用MemTable和DataSource实现的方法
|   |   |   |   |   \—NestedDataSet 使用内存表创建TDataSet数据类型字段,实现在一行数据中嵌套另外的一个多行的数据集
|   |   |   |   +—TFDMetaInfoQuery 一个综合性的取得元数据的程序,包含表、包、存储过程、字段索引等
|   |   |   |   +—TFDQuery
|   |   |   |   |   +—Aggregates 不需要写其他语句,直接使用Aggregates特性在数据集上面计算聚合函数
|   |   |   |   |   +—Blobs 使用CreateBlobStream和TBlobField读取BLOB字段
|   |   |   |   |   +—BlobStreams 直接使用流作为insert的参数的例子
|   |   |   |   |   +—CachedUpdates
|   |   |   |   |   |   +—Centralized使用SchemaAdapter对多个表格的更新集中管理
|   |   |   |   |   |   \—OnUpdateRecord 使用OnUpdateRecord事件更新记录
|   |   |   |   |   +—ExecSQL
|   |   |   |   |   |   +—ArrayDML 用数组的方式批量操作数据
|   |   |   |   |   |   +—Async 异步执行SQL,前台可以干别的,使用AfterOpen实现
|   |   |   |   |   |   +—Batch 批量数据处理可以用Array特性
|   |   |   |   |   |   \—BatchErrorHandling 批量处理中间可能出错误,捕捉到错误后,进行相应的处理,然后继续执行剩余的SQL
|   |   |   |   |   +—Filter 使用Filter属性的各种方法
|   |   |   |   |   +—Indices 使用已有的Index排序
|   |   |   |   |   +—Macros 对于不支持参数的SQL,可以采用Macro的方式替换对应的内容
|   |   |   |   |   \—MasterDetail 基本的主从结构的表,直接使用SQL的参数
|   |   |   |   +—TFDSchemaAdapter
|   |   |   |   |   \—MemTable利用MemTable和SchemaAdapter来决定更新哪些内容,与上面的例子同理
|   |   |   |   +—TFDScript
|   |   |   |   |   +—Console 使用Console界面执行SQL命令
|   |   |   |   |   +—GUI 图形界面的SQL脚本执行程序
|   |   |   |   |   \—Main 图形界面的执行SQL的总览例子程序
|   |   |   |   +—TFDStoredProc
|   |   |   |   |   +—Oracl_NextRecordSet 使用存储过程的例子
|   |   |   |   |   \—Oracl_UpdateSQL
|   |   |   |   +—TFDTableAdapter
|   |   |   |   |   \—Main 使用FDCommand支持TableAdapter的例子
|   |   |   |   \—TFDUpdateSQL
|   |   |   |       \—Main 使用FDUpdateSQL缓存更新
|   |   |   +—DApt Layer
|   |   |   |   +—Autoinc fields 主从结构、自增字段的数据添加的例子
|   |   |   |   +—Commands
|   |   |   |   +—GettingStarted
|   |   |   |   +—MappingColumns
|   |   |   |   \—Oracl_StoredProc
|   |   |   +—DatS Layer
|   |   |   |   +—AddRelation 使用DatSManager创建表格结构和关系的例子
|   |   |   |   +—AddTableAndConstr
|   |   |   |   +—AggregatesInView
|   |   |   |   +—AutoInc
|   |   |   |   +—CalcColumnSimple
|   |   |   |   +—CalcColumnWithFuncs
|   |   |   |   +—ChildRelations
|   |   |   |   +—CompareRows
|   |   |   |   +—CreateRows
|   |   |   |   +—CreateTable
|   |   |   |   +—CreateView
|   |   |   |   +—GetChanges
|   |   |   |   +—MasterDetail
|   |   |   |   +—MasterDetAutoInc
|   |   |   |   +—Mechanisms
|   |   |   |   +—RowFilter
|   |   |   |   +—SchemaAcceptChanges
|   |   |   |   +—SearchingInView
|   |   |   |   \—TableUpdates
|   |   |   +—DBMS Specific 这对每种数据库的特性的例子
|   |   |   |   +—InterBase
|   |   |   |   +—MongoDB
|   |   |   |   +—MSSQL
|   |   |   |   +—Oracle
|   |   |   |   +—PostgreSQL
|   |   |   |   \—SQLite
|   |   |   +—Getting Started 针对每种数据库的基本特性的综合例子
|   |   |   |   +—Firebird
|   |   |   |   +—InterBase
|   |   |   |   +—MSAccess
|   |   |   |   +—MSSQL
|   |   |   |   +—MySQL
|   |   |   |   \—SQLite
|   |   |   +—Getting Started FMX 针对移动端SQLite数据库的例子
|   |   |   |   \—SQLite_Desktop
|   |   |   +—Moni Layer
|   |   |   |   +—Clients
|   |   |   |   \—Main
|   |   |   +—Phys Layer
|   |   |   |   +—IFDPhysCommand
|   |   |   |   |   +—Async
|   |   |   |   |   +—Batch
|   |   |   |   |   +—EscapeFunctions
|   |   |   |   |   +—FetchTables
|   |   |   |   |   \—Macros
|   |   |   |   +—IFDPhysConnection
|   |   |   |   |   +—CreateConnection
|   |   |   |   |   +—Pooling
|   |   |   |   |   \—Transactions
|   |   |   |   \—IFDPhysMetaInfoCommand
|   |   |   |       +—Indices
|   |   |   |       +—StoredProc
|   |   |   |       \—Tables
|   |   |   \—Stan Layer
|   |   |       \—ExprEval 在FireDAC中直接分析并计算算数表达式的例子
|   |   \—Tool
|   |       +—Executor
|   |       |   \—GUI
|   |       \—reFind 老版本的DB程序,迁移到FireDAC的迁移工具
|   |           +—AD2FDMigration AnyDAC迁移到FireDAC
|   |           +—BDE2FDMigration BDE迁移到FireDAC
|   |           +—DBX2FDMigration DBX迁移到FireDAC
|   |           \—XE72XE8Migration XE7版本迁移到最新版本FireDAC
|   +—IBX
|   |   +—Admin
|   |   +—GdsDemo
|   |   +—IBMastApp
|   |   \—MtsPool
|   +—JSONWriter
|   \—RESTDemo
+—DataSnap 三层架构DataSnap的例子
|   +—Basic 传统DBX方式的,使用TSQLConnection的DataSnap的例子
|   +—DataSnapMonitor
|   +—EchoToChannel
|   +—FireDAC 使用FireDAC组件的,使用TFDConnection链接并使用TStream方式传输、使用FireDAC控件完成调用的DataSnap的例子
|   +—FireDACJSONReflect 使用FireDAC方式,REST架构并使用JSON传输数据,适合客户端不是delphi编写,但希望使用REST方式解析JSON格式数据的情况。
|   +—FireDAC_DBX 使用DBX的链接方式,但是使用FireDAC的二进制传输方式的DataSnap例子
|   \—LtWeightCallbacks 使用DataSnap回调的例子
+—LiveBindings
|   +—AdapterBindSource
|   +—bindgridlink
|   |   +—fmx
|   |   \—vcl
|   +—bindlink
|   |   +—fmx
|   |   \—vcl
|   +—common
|   \—oneofeach
|       \—vcl
+—Mobile Snippets 移动设备小程序
|   +—Accelerometer 加速计
|   +—AccessCameraApp 使用摄像头照相的动作的例子
|   +—AndroidIntents Android的不同程序之间的Intent的例子
|   |   +—ReceiveIntent
|   |   \—SendIntent
|   +—AudioRecPlay 使用Mic记录声音
|   +—CameraComponent 使用CameraComponent组件的例子
|   +—CameraRoll 访问相机胶卷的动作
|   +—CustomPicker 自定义的Picker,就是ComboBox里面加ListBoxItem的例子
|   +—DatePicker 日期的选择的例子
|   +—DeviceInfo 显示设备的信息
|   +—FireDACSQLite 使用SQLite的增删改查的例子
|   +—FireDAC_IBLite 使用IBLite的数据库的例子
|   +—Gyroscope 使用陀螺仪调整3D模型的例子
|   +—HorizontalScroll 应用THorzScollBox的水平滚动图片的例子
|   +—InteractiveGestures
|   |   +—ImageRotation 图片旋转手势的例子
|   |   +—ImageZoom 图片放大缩小手势的例子
|   |   \—TapAndHold 点击和保持手势的例子
|   +—Location 获取位置信息的例子
|   +—MessageAlerts 显示Message的例子,有单一消息,还有多段的消息
|   +—Notifications
|   |   +—SendCancelNotification
|   |   \—SetResetBadgeNumber
|   +—OrientationSensor 方向传感器的例子(三维指南针)
|   +—PhoneDialer 一个使用TPlatformService获得Sim卡信息并拨打电话的例子,有可能在某些设备上面执行失败,国内设备可能出现不支持PhoneDialer服务的情况
|   +—PlayAudioFile 使用TMediaPlay组件播放mp3的例子
|   +—ShareSheet 使用标准Action来实现拍照和分享的功能
|   +—TabSliding 使用TTabControl实现左右滑动页面的例子,可以根据设备不同显示不同风格
|   +—TimePicker 使用TTimeEdit实现选择时间
|   +—VideoPlayback 使用TMediaPlay播放mp4的例子,包括简单的控制功能
|   \—WebBrowser 使用WebBrowser控件支持浏览网页等内容
+—Multi-Device Samples
|   +—Cloud 云服务商主要是国外的
|   |   +—BaaS
|   |   \—SurfSpot Finder
|   +—Device Sensors and Services
|   |   +—AndroidBeaconServiceDemo 使用TBeacon组件,并将TBeacon组件放入到Android服务中,这个例子中也有TNotificationCenter组件的使用
|   |   +—AndroidNotificationServiceDemo 将TNotificationCenter组件放到Android的服务中,给程序发送消息的例子。
|   |   +—App Analytics 使用TAppAnalytics组件并使用AppAnalytics功能的例子。AppAnalytic可以帮助开发者分析软件的真实使用情况,该功能需要使用EDN账户。
|   |   +—App Tethering 通过TTetheringManager和TTetheringAppProfile控件实现非常简单的远程调用类似的功能。同时,TTetheringManager负责链接,TTetheringAppProfile则负责执行远程调用和自动复制远程数据。只需要告诉一下复制方向就可以。并且AppTethering技术支持多设备连接,不是只能在两端之间通讯,这点还没有去实际设备上面验证。
|   |   |   +—MediaPlayer
|   |   |   |   +—MediaPlayerCommand 这个是控制端
|   |   |   |   \—MediaPlayerHD 这个相当于服务端,是个播放媒体的例子
|   |   |   \—PhotoWall
|   |   |       +—DesktopWall 这个是桌面端
|   |   |       \—Mobile 移动端可以照相,然后通过AppTethering技术的resource发送到桌面端
|   |   +—Bluetooth
|   |   |   +—Beacons
|   |   |   |   +—Beacon Device 使用TBeaconDevice访问Beacon设备
|   |   |   |   +—Beacons Proximity 使用TBeaconManager注册多个Beacon设备,并监视是否进入这些Beacon设备范围的例子
|   |   |   |   +—BLE_BeaconScanner 使用TBluetoothLEManager扫描低功率蓝牙设备的例子
|   |   |   |   +—DemoProximityColors 一个iOS项目,Android下面没有成功
|   |   |   |   +—SensorTag 这个是与特定的低功率蓝牙传感器通讯的例子,和我的Blog里面讲解和iBeacon设备通讯的例子一样
|   |   |   |   \—Simple Beacon Demo 使用TBeacon组件的简单的例子,不使用BlueToothManager等组件
|   |   |   +—BLEScanner 低功率蓝牙设备扫描例子,这个例子不限制设备必须为Beacon设备
|   |   |   +—BlueChat 一个使用蓝牙TBluetoothManager组件,在两个设备之间建立Socket通道,之后收发信息的例子。我记得这个例子对Android设备的版本有要求,太低版本的不支持
|   |   |   +—Classic Bluetooth Basic app 传统蓝牙基础示例,讲解了如何配对,发现服务,创建Socket之后通讯等
|   |   |   +—EchoClassic
|   |   |   +—ExploreDevicesLE 这是一个运行在MacOS上面的低功率蓝牙的发现程序,同样是使用 TBluetoothLEManager ,发现设备,发现服务,发现Characteristic,并实现通讯的例子
|   |   |   +—HeartRateMonitor 一个低功率蓝牙的心率监测的例子,使用TBluetoothLE组件,访问Characteristic,解析回传数据并显示
|   |   |   +—ProximityClientServer
|   |   |   \—ScanFilterServicesAdvData
|   |   +—CapitalIAP 这是个TInAppPurchase的例子,需要内购功能看这里
|   |   +—DownloadImage 使用Android后台Intent服务方式,下载图片的例子,国内手机可以无法正常下载
|   |   +—DownloadServiceDemo
|   |   |   +—DownloadImage
|   |   |   \—DownloadService
|   |   +—FlashLight 一个使用TCameraComponent组件的手电筒的例子
|   |   +—LocationDemo 一个使用LocationSensor定位,之后使用WebBrowser控件显示在google地图上面。国内无法运行。
|   |   +—Map Type Selector 在iOS下面的地图类型选择的例子
|   |   +—Maps 使用TMapView控件的例子,iOS估计可以运行,国内Android应该不行
|   |   +—SensorInfo 一个综合性的传感器的例子
|   |   \—Windows 10 Notifications 在Windows10平台通知的例子
|   +—EMS 使用EMS中间件服务的例子,EMS按用户数付费
|   +—Google Glass 使用Google眼睛的例子
|   +—Media
|   |   +—MusicPlayer 一个音乐播放器的例子,这个播放器不是使用MediaPlayer控件,而是需要依据不同系统调用各自系统的播放器,相当于是如何写的MediaPlayer控件。同时还有音乐库的查询等。
|   |   \—PhotoEditorDemo 一个图片编辑软件例子,通过标准Action照相、访问相机胶卷和分享图片等功能。同时使用TFilterManager的各种过滤器修改照片。
|   +—Parallel Library 并行计算库的例子
|   +—Physics
|   |   +—Box2DHello 使用Boxe2D引擎的Hello程序
|   |   \—TestBed 使用Box2D引擎自带的测试程序
|   \—User Interface
|       +—ActionsDemo 使用ActionList 建立动作,然后在MainMenu和PopMenu中关联的例子
|       +—Controls 各种移动端UI控件的使用的例子
|       +—ControlsDesktop 各种桌面应用程序的UI控件的使用例子
|       +—CopyPaste 一个使用TPlatformServices的跨平台的CopyPaste的示例程序
|       +—CustomListBox 使用代码自定义ListBox内容的一个例子
|       +—DragAndDrop 使用TPlatformServices里面的拖拽服务,因为都跨平台了
|       +—FireFlow 一个可以显示多张图片翻转效果的例子
|       +—Forms 一个横竖屏转换的例子
|       +—ImageList 一个使用ImageList在各种支持ImageList的控件上的综合应用的例子
|       +—KeyboardToolbar
|       +—KeyboardTypes在Edit控件里面使用各种keyboard的例子
|       +—ListCollections
|       +—ListView 关于自定义ListView的多个Demo程序,从自带的Custom方式到自己写代码的方式
|       |   +—CustomAdapter
|       |   |   \—data
|       |   +—CustomAdapters
|       |   |   +—CustomAdapter
|       |   |   \—drowsyserver
|       |   |       \—data
|       |   +—ListViewAddThumbAndCaption
|       |   +—ListViewCheckList
|       |   +—ListViewCustomBottomDetail
|       |   +—ListViewMultiDetailAppearance
|       |   +—ListViewRatingsAppearance
|       |   \—SimpleListView
|       +—LowLevel3D 使用FIreMonkey 3D特性的示例代码
|       +—ModelViewer 可以查看3D模型的示例程序,可以旋转、缩放
|       |   +—FireMonkey
|       |   +—Models
|       |   \—Station
|       +—MouseOverHints 支持鼠标在控件上面的时候显示Hint,这是个多个控件的综合例子
|       +—MultiView 使用MultiView控件的例子,展现了Master区域依据不同OS或不同设置的显示方式
|       +—NativeControls 在多种控件的ControlType里面选择Platform时候,则系统会使用原生控件,同时原生控件的特性也被激活,FMX的某些特性可能缺失。当前原生控件仅支持iOS的原生控件
|       +—PlatformScrollBox 控件TPresentedScrollBox的例子,可以水平垂直滚动的区域
|       +—PullToRefresh 下拉就刷新的例子
|       +—ScrollableForm 使用VKAutoShowMode的全局变量,简化了每个输入控件都设置键盘类型的情况。同时这个例子还讲了如何让form适当滚动,避免弹出来的键盘遮挡住输入控件的特性
|       +—SearchContext
|       +—Settings Project 类似系统设置界面的例子,里面用了TabControl作为页面的切换
|       +—ShaderFilters 使用TFilterManager的过滤器和动画效果对图片处理的例子
|       +—TabControlDemo 使用TabControl的综合性的例子
|       +—TabletMasterDetailWithSearch 一个ListView的综合例子,可以显示主从信息
|       +—TabSlideTransition 多页面的Tabcontrol的例子,可以左右滑动翻动页面
|       \—Windows10NavigationPane

\—VCL
    +—ActivityIndicator 这是一个windows10风格的indicator的代码
    +—App Analytics 使用AppAnalytics的应用分析特性的代码
    +—InetWinSockets 一个注册Web.Winsockets组件的包的例子
    +—RelativePanel 控件对齐关系的示例
    +—SearchBox 一个SearchBox的演示
    +—Sensors 针对Win的平板,或者带有传感器的设备的示例
    +—SplitView 在Win10风格的新控件TSplitView,和移动端的很类似
    +—Taskbar
    |   +—MDI 多子窗口时候,在Win7及以上环境的任务条,使用Taskbar控件
    |   +—OneForm 一个Taskbar控件的综合例子,实现预览下面显示按钮等
    |   \—VideoPlayer 一个视频播放器的例子,通过Taskbar实现视频预览,按钮实现相应的功能,以及进度等信息
    +—ToggleSwitch 这是一个TToggleSwitch 开关控件的各种设置的示例程序
    +—tregsvr 注册Com组件的工具
    +—Windows 10 Calendar
    +—Windows 10 Notifications
    \—Windows 10 SharingContract
        +—Component
        \—FrameWork

http://blog.sina.com.cn/s/blog_53b391130102w9m1.html

上一篇: Linux之shell篇
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,075
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,551
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,399
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,176
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,811
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,893