你們好,好多朋友來信諮詢Delphi和C++Builder的移動開發、DataSnap架構等問題,但願能有Demo代碼學習。其實Delphi和C++Builder自己自帶有不少示例代碼,已經覆蓋了大部分Delphi和C++Builder開發工具的特性和技術。對於開發各類特定的應用,仍是須要去在特定方向鑽研該方面的技術的,不要期望一套Demo代碼就能夠代替本身的學習。html
爲了方便各位 Delphi 和 C++Builder開發者,有針對性的查找RAD Studio自帶的示例代碼,從而更快更有針對性的學習對應的功能。我整理了大部分的Demo程序,還有一些由於沒有設備或者沒有對應的環境,沒有寫明註釋內容。對於FireDAC支持多種數據庫的特性的demo,也請有須要的朋友自行查看Demo代碼。而至於有朋友問如何鏈接Oracle等,則自帶的FireDAC的簡單的Demo都有選擇連接服務器的。sql
你們能夠用Ctrl+F搜索對應的內容。數據庫
程序的默認路徑爲下面小程序
C:\Users\Public\Documents\Embarcadero\Studio\17.0\Samples\Object Pascal\windows
+---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的例子,能夠左右滑動翻動頁面
| \---Windows10NavigationPaneapi
\---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緩存