系統控制元件
# Smart 控制元件使用(系統)
系統控制元件包含一些設備通訊協定使用到的控制元件、計時控制的相關控制元件。
# 1. TComPort元件
TComPort元件提供了程式內元件的COM連線介面,可供其他元件呼叫以連線COM埠與設備進行通訊。
# 1.1. 屬性
- TComPort元件主要屬性
| 屬性 | 功能說明 |
|---|---|
| Active | 是否啟用該元件 |
| BaudRate | 獲取或設定序列波特率 |
| BufferSizes | 快取區設定 |
| Characters | 設定控制字元 |
| CustBaudRate | 獲取或設定自定義序列波特率 |
| DataBits | 獲取或設定每個位元組的標準數據位長度 |
| DeviceName | 元件對應的連線埠名稱 |
| FlowControl | 流控制設定選項 |
| Parity | 指定ComPort對象的奇偶校驗位 |
| PriorityClass | 指示系統將與程序關聯的優先順序,此值與程序的每個執行緒的優先順序值一起來確定每個執行緒的基本優先順序別 |
| StopBits | 指定在ComPort對像上使用的停止位的數目 |
| ThreadPriority | 指定執行緒的優先順序別 |
# 1.1.1. DataBits 屬性
獲取或設定每個位元組的標準數據位長度。預設為dbDefault,其餘選項包括db4~db8。
# 1.1.2. FlowControl 屬性
設定通訊時的數據流控制選項。包含以下屬性選項設定。
- DTR:在序列通訊過程中啟用數據終端就緒 (DTR) 訊號。
- RTS:在序列通訊中啟用請求發送 (RTS) 訊號。
- XOffLimit、XOnLimit、XOnXOff為流控制協議及其限制設定,只要通訊雙方根據通訊狀況使用相同的配置協議即可。
# 1.1.3. Parity 屬性
指定ComPort對象的奇偶校驗位。包含如下選項。
- paDefault:預設選項。
- paEven:設定奇偶校驗位,使位數等於偶數。
- paMark:將奇偶校驗位保留為 1。
- paNone:不發生奇偶校驗檢查。
- paOdd:設定奇偶校驗位,使位數等於奇數。
- paSpace:將奇偶校驗位保留為 0。
# 1.1.4. PriorityClass 屬性
指示系統將與程序關聯的優先順序。 此值與程序的每個執行緒的優先順序值一起來確定每個執行緒的基本優先順序別。包含如下選項。
- pcDefault:預設選項。
- pcHigh:指定程序執行必須立即執行的時間關鍵任務,不管操作系統的負荷如何,使用者呼叫該對話方塊后均必須迅速響應。 該程序的執行緒優先於普通或空閑優先順序類程序的執行緒。為程序的優先順序類指定High 這一個優先順序時需謹慎,因為高優先順序類應用程式幾乎可以使用所有可用的處理器時間。
- pcIdle:指定此程序的執行緒只能在系統空閑時運行,如螢幕保護程式。 更高優先順序類中運行的任何程序的執行緒都優先於此程序的執行緒。 此優先順序類由子程序繼承。
- pcNormal:指定程序沒有特殊的安排需求。
- pcRealTime:指定程序擁有可能的最高優先順序。具有 RealTime 優先順序的程序的執行緒搶佔所有其他程序的執行緒,包括執行重要任務的操作系統程序。 因此,執行時間並不太短的 RealTime 優先順序程序可能導致磁碟快取記憶體不重新整理或滑鼠無響應。
# 1.1.5. StopBits 屬性
指定在ComPort對像上使用的停止位的數目。有如下選項。
- sbDefault:預設選項。
- sb1:使用一個停止位。
- sb1_5:使用1.5個停止位。
- sb2:使用兩個停止位。
# 1.2. 事件
- TComPort主要事件
| 事件 | 何時觸發 |
|---|---|
| AfterClose | 在埠關閉后觸發該事件 |
| AfterOpen | 在埠打開后觸發該事件 |
| BeforeClose | 在埠關閉前觸發該事件 |
| BeforeOpen | 在埠打開前觸發該事件 |
# 2. TTimer元件
Timer定時器是一個非視覺化元件,能夠定時觸發OnTimer事件,完成模擬時鐘、系統延時、倒計時等工作。
# 2.1. 屬性
- TTimer元件主要屬性
| 屬性 | 功能說明 |
|---|---|
| Enabled | 規定元件是否響應滑鼠、鍵盤和計時器事件 |
| Interval | 規定時間間隔、以毫秒為單位 |
# 2.2. 事件
- TTimer元件主要事件列表
| 事件 | 何時觸發 |
|---|---|
| OnTimer | 當經過固定時間(在interval屬性中設定)時,將觸發該事件 |
# 3. TPaintBox元件
TPaintBox是一個圖形元件,只有聊聊幾個函式和屬性,主要就是Canvas和Paint函式。
# 3.1. 屬性
- TPaintBox元件主要屬性
| 屬性 | 功能說明 |
|---|---|
| Canvas | 用圖片元件實現畫布 |
| Align | 決定容器(父元件)對該元件的歸屬方式 |
| Anchors | 該屬性指定元件如何停放在其父窗體中 |
| Color | 規定元件的背景顏色 |
| Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大值或最小值時,重新調整元件的大小不能超出該限制 |
| DragCursor | 當拖動元件時顯示的滑鼠指針影象型別 |
| DragKind | 使用該屬性可獲取或設定元件是拖動操作還是拖動/停靠操作 |
| DragMode | 使用該屬性可控制使用者何時可拖動元件 |
| Enabled | 規定元件是否響應滑鼠、鍵盤和計時器事件 |
| Font | 規定元件中的文字字型屬性 |
| ParentFont | 規定元件是否繼承父元件的字型屬性資訊 |
| ParentShowHint | 使用該屬性可確保窗體中的所有元件以統一格式顯示或不顯示其幫助提示 |
| PopupMenu | 將元件與功能表欄中的位置繫結 |
| Position | 滾動條在元件中的位置 |
| ShowHint | 當滑鼠游標懸停在元件上時是否顯示提示內容 |
| Visible | 規定該元件在窗體上是否可見 |
# 3.2. 事件
- TPaintBox元件主要事件列表
| 事件 | 何時觸發 |
|---|---|
| OnPaint | 當元件接收到windows圖片時,將觸發該事件 |
# 3.3. 方法
- TPaintBox元件主要方法列表
| 方法 | 功能描述 |
|---|---|
| Paint | 產生OnPaint事件 |
# 4. TMediaPlayer元件
TMediaplayer提供了媒體控制界面(MCI),包含一系列的按鈕(播放、停止等)。
# 4.1. 屬性
- TMediaPlayer元件主要屬性
| 屬性 | 功能說明 |
|---|---|
| Capabilities | 決定開放媒體設備的能力 |
| DeviceID | 開放媒體設備的ID |
| DisplayRect | 展示區域 |
| EndPos | 在目前載入的媒體中確定用於斷點以在目前位置停止播放或錄製 |
| Error | 返回MCI界面的錯誤程式碼 |
| ErrorMessage | 用於描述錯誤程式碼對應的錯誤提示資訊 |
| Frames | 規定移動的幀數 |
| Length | 媒體的長度 |
| Mode | 目前媒體設備的狀態 |
| Notify | 決定OnNotify事件是否啟用 |
| NotifyValue | 描述需要返回通知的媒體元件方法的結果 |
| Position | 展示目前載入媒體的位置 |
| Start | 確定媒體開始播放的位置 |
| StartPos | 從開始播放或錄製的位置設定起始位置 |
| TimeFormat | 用於確定位置資訊的時間格式 |
| TrackLength | 報告音軌/視訊軌道的長度 |
| Wait | 只有當按鈕的方法完成後才能返回使按鈕可用 |
| Anchors | 該屬性指定元件如何停放在其父窗體中 |
| AutonEnable | 是否自動啟用或禁用按鈕 |
| AutoOpen | 當應用運行時是否自動開始播放 |
| AutoRewind | 是否在播放或錄製前自動倒帶 |
| ColoredButtons | 規定含有顏色的元件按鈕 |
| Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大值或最小值時,重新調整元件的大小不能超出該限制 |
| DeviceType | 設定打開媒體播放器的多媒體設備型別 |
| Display | 設定輸出顯示的視窗 |
| DoubleBuffered | 確定元件影象是直接在視窗渲染或者是首先在內容中產生點陣圖 |
| Enabled | 規定元件是否響應滑鼠、鍵盤和計時器事件 |
| EnableButtons | 確認哪些按鍵可以使用 |
| FileName | 媒體檔案的名稱,多媒體檔案可任選WAV、MID或AVI檔案 |
| ParentShowHint | 使用該屬性可確保窗體中的所有元件以統一格式顯示或不顯示其幫助提示 |
| PopupMenu | 將元件與功能表欄中的位置繫結 |
| Shareable | 是否超過一個應用可共享媒體檔案 |
| Position | 滾動條在元件中的位置 |
| ShowHint | 當滑鼠游標懸停在元件上時是否顯示提示內容 |
| Visible | 規定該元件在窗體上是否可見 |
| VisibleButtons | 元件按鈕是否可見 |
# 4.2. 事件
- TMediaPlayer元件主要事件列表
| 事件 | 何時觸發 |
|---|---|
| OnClick | 當元件點選按鈕時,將觸發該事件 |
| OnNotify | 當媒體元件方法完成後,觸發該事件 |
# 4.3. 方法
- TMediaPlayer元件主要方法列表
| 方法 | 功能描述 |
|---|---|
| Back | 在目前載入的媒體中設定返回一定的幀 |
| Close | 關閉打開的媒體設備 |
| Eject | 從媒體設備中發佈載入的媒體 |
| Next | 移動至下一軌載入媒體的開頭 |
| Open | 打開一個媒體設備 |
| Pause | 觸發打開的媒體為開或關 |
| PauseOnly | 暫停打開的媒體設備 |
| Play | 播放在媒體設備中載入的媒體 |
| Previous | 將位置設定為前一個媒體檔案的開頭 |
| Resume | 恢復對暫停媒體的錄製及播放 |
| Rewind | 設定當前位置為媒體的開始,儲存在Start屬性中 |
| Save | 將目前載入的媒體儲存為檔案,檔名為FileName屬性配置 |
| StartRecording | 開始錄製,起點為目前位置或是在StartPos屬性中設定的位置 |
| Step | 在目前載入的媒體中播放一定數量的幀 |
| Stop | 停止播放或錄製 |
# 5. TOleContainer元件
使用ToleContainer元件可新增OLE2.0元件。TOleContainer能夠使使用者通過呼叫InsertObjectDialog方法選擇OLE對像插入(例如Word文件、Excel文件、PowerPoint文件、文字文件等)。TOleContainer可以建立OLE對像或者是鏈接到OLE對象。
# 5.1. 屬性
- TOleContainer元件主要屬性
| 屬性 | 功能說明 |
|---|---|
| CanPaste | Windows剪下板中可以包含能夠複製到OLE容器的OLE對像 |
| Linked | OLE對象可鏈接或嵌入 |
| Modified | OLE對象是否修改 |
| NewInserted | OLE對象是否新建而不是貼上或建立為檔案鏈接 |
| ObjectVerbs | 列舉OLE對象的支援動作 |
| OleClassName | 規定OLE對象的類名 |
| OleObject | 展示OLE容器中的OLE對像 |
| OleObjectInterface | 提供OLE對象的界面 |
| PrimaryVerb | 規定OLE對象的主要動作資訊 |
| SourceDoc | 為鏈接的OLE對像指定來源文件的名稱 |
| State | 描述OLE對象的狀態 |
| StorageInterface | 提供OLE對象的儲存界面 |
| Align | 決定容器(父元件)對該元件的歸屬方式 |
| AllowActiveDoc | 是否允許OLE容器支援IOleDocumentSite界面 |
| AllowInPlace | OLE容器是否支援原地啟用 |
| Anchors | 該屬性指定元件如何停放在其父窗體中 |
| AutoActivate | OLE容器中的對象的啟用方式 |
| AutoVerbMenu | OLE容器是否建立包含OLE對像動作的功能表 |
| BorderStyle | 規定元件的邊界型別 |
| Caption | 定義元件的文字描述資訊 |
| Color | 規定元件的背景顏色 |
| Constraints | 使用該屬性可指定元件寬度和高度的最小值和最大值,當其包含最大值或最小值時,重新調整元件的大小不能超出該限制 |
| CopyOnSave | 呼叫SaveToFile和SaveToStream方法是否首先建立OLE對象的副本 |
| Ctl3D | 規定元件的視覺外觀是3D還是2D |
| DragCursor | 當拖動元件時顯示的滑鼠指針影象型別 |
| DragMode | 使用該屬性可控制使用者何時可拖動元件 |
| Enabled | 規定元件是否響應滑鼠、鍵盤和計時器事件 |
| Iconic | OLE對象是否以圖示形式展現 |
| OldStreamFormat | OLE對象是否以VCL格式載入和儲存 |
| ParentShowHint | 使用該屬性可確保窗體中的所有元件以統一格式顯示或不顯示其幫助提示 |
| PopupMenu | 將元件與功能表欄中的位置繫結 |
| ShowHint | 當滑鼠游標懸停在元件上時是否顯示提示內容 |
| TabOrder | 規定元件在父元件中的換欄位置序號 |
| TabStop | 使用該屬性可允許或不允許用Tab鍵訪問元件 |
| Visible | 規定該元件在窗體上是否可見 |
# 5.2. 事件
- TOleContainer元件主要事件列表
| 事件 | 何時觸發 |
|---|---|
| OnActivate | 當OLE對像啟用時,將觸發該事件 |
| OnDeactivate | 當OLE對像取消啟用時,觸發該事件 |
| OnObjectMove | OLE容器中OLE對像移動或大小改變發出通知時,觸發該事件 |
| OnResize | OLE容器視窗大小改變時,觸發該事件 |
# 5.3. 方法
- TOleContainer元件主要方法列表
| 方法 | 功能描述 |
|---|---|
| ChangeIconDialog | 展示改變OLE圖示的對話方塊 |
| Close | 取消對OLE對象的啟用 |
| Copy | 將OLE對像複製到Windows剪下板 |
| CreateLinkToFile | 從檔案內容中建立一個OLE鏈接對像 |
| CreateObjectFromFile | 建立一個嵌入的OLE對像 |
| CreateObjectFromInfo | 匹配TCeateInfo記錄建立OLE對像 |
| DestroyObject | 銷燬容器中的OLE對像 |
| Doverb | 要求OLE對像執行動作 |
| GetIconMetaPict | 返回包含OLE對像圖示的元檔案的全域性記憶體控制代碼 |
| InsertObjectDialog | 展示插入OLE對象的對話方塊 |
| LoadFromFile | 從指定檔案中載入OLE對像 |
| LoadFromStream | 從指定流中載入OLE對像 |
| ObjectPropertiesDialog | 顯示OLE對像屬性的屬性表格 |
| Paste | 將Windows剪下板中的內容貼上作為嵌入對像 |
| PasteSpecialDialog | 展示貼上特殊OLE對話方塊 |
| Run | 運行OLE對象的服務應用,但是不啟用或打開OLE對像 |
| SaveAsDocument | 將OLE對像儲存為本地OLE文件格式 |
| SaveToFile | 將OLE對像儲存至指定檔案 |
| SaveToStream | 將OLE對像儲存至指定流 |
| UpdateObject | 重新整理OLE對像 |
| UpadateVerbs | 重新整理OLE對象可以相應的動作列表 |
# 6. TDdeClientConv元件
使用TDdeClientConv元件,使用TDdeClientItem對像運行DDE(動態數據交換)客戶端的應用
# 6.1. 屬性
- TDdeClientConv元件主要屬性
| 屬性 | 功能說明 |
|---|---|
| Conv | 定義目前DDE對話的控制代碼 |
| DataMode | DDE對話的部分是否自動執行 |
| DdeFmt | 表示用於提交或請求數據項的剪貼簿格式。 |
| WaitStat | 指示伺服器是否正在為禁止非同步DDE事務的DDE宏提供服務。 |
| ConnectMode | 確定在打開窗體時是否自動建立到DDE伺服器的鏈接。 |
| DdeService | 指定要鏈接到DDE客戶端的DDE伺服器應用程式。 |
| DdeTopic | 指定DDE對話的主題 |
| FormatChars | 確定是否從DDE伺服器應用程式傳輸的文字數據中過濾掉某些字元。 |
| ServiceApplication | 指定DDE伺服器應用程式的主可執行檔名(如果需要可帶路徑),不帶.EXE副檔名。 |
# 6.2. 事件
- TDdeClientConv元件主要事件列表
| 事件 | 何時觸發 |
|---|---|
| OnClose | 當DDE對話終止時,將觸發該事件 |
| OnOpen | 當在建立到伺服器的DDE鏈接后,觸發該事件 |
# 6.3. 方法
- TDdeClientConv元件主要方法列表
| 方法 | 功能描述 |
|---|---|
| CloseLink | 終止正在進行的DDE對話 |
| ExecuteMacro | 將宏命令字串發送到DDE伺服器應用程式 |
| ExecuteMacroLines | 將一些宏命令的列表發送到DDE伺服器應用程式 |
| OpenLink | 啟動新的DDE對話 |
| PasteLink | 打開與目前Clipboard對象的DDE對話 |
| PokeData | 將數據發送到DDE伺服器應用程式 |
| PokeDataLines | 將多行數據發送到DDE伺服器應用程式 |
| RequestData | 從DDE伺服器請求數據 |
| SetLink | 指定DDE對話的服務和主題,並嘗試在ConnectMode為ddeAutomatic時打開鏈接 |
| StartAdvise | 為與目前DDE對話關聯的所有TDdeClientItem啟動建議循環 |
# 7. TDdeClientItem元件
將TDdeClientItem與TDdeClientConv一起使用可作為DDE客戶端。DDE客戶端項指定DDE伺服器支援的單個項。單個TDdeClientConv對象可以與多個客戶端項相關聯。如果DDE客戶端會話已與DDE伺服器建立鏈接,則伺服器將自動持續更新所有客戶端專案,直到會話終止。
# 7.1. 屬性
- TDdeClientItem元件主要屬性
| 屬性 | 功能說明 |
|---|---|
| DdeConv | 指定要與DDE客戶端項關聯的DDE客戶端對話 |
| DdeItem | 指定DDE對話的專案 |
| Lines | 包含要在DDE對話中交換的文字數據 |
| Text | 包含要在DDE對話中交換的文字數據 |
# 7.2. 事件
- TDdeClientItem元件主要事件列表
| 事件 | 何時觸發 |
|---|---|
| OnChange | 當在DDE伺服器更新Lines屬性后,將觸發該事件 |
# 8. TDdeServerConv元件
使用TDdeServerConv與DDE客戶端應用程式建立DDE主題。DDE主題下的各個專案由TDdeServerItem對像表示。通過設定ServerConv屬性,這些項可鏈接到DDE伺服器對話。
使用TDdeServerConv元件是可選的。如果沒有TDdeServerConv對象,客戶端仍然可以進入DDE對話並直接從TDdeServerItem對像接收更新。但是,需要DDE伺服器對話來處 理DDE客戶端可能發送的任何宏。
DDE伺服器對話的Name屬性提供DDE客戶端用於建立DDE伺服器對話鏈接的主題。與DDE伺服器對話無關的DDE伺服器項使用窗體的Caption屬性作為主題名稱。在單個窗體中建立多個DDE主題時,或者在運行時窗體的標題可能不唯一或不變時,請使用TDdeServerConv對象。
# 8.1. 事件
- TDdeServerConv元件事件列表
| 事件 | 何時觸發 |
|---|---|
| OnClose | 在DDE客戶端終止DDE對話時觸發該事件 |
| OnExecuteMarco | 當DDE客戶端將宏發送到DDE伺服器對話時觸發該事件 |
| OnOpen | 在建立到客戶端的DDE鏈接后觸發該事件 |
# 8.2. 方法
- TDdeServerConv元件主要方法列表
| 方法 | 功能描述 |
|---|---|
| ExecuteMarco | 響應DDE客戶端發送的宏命令 |
# 9. TDdeServerItem 元件
使用TDdeServerItem,或者使用TDdeServerConv對象,以使應用程式能夠用作DDE伺服器。DDE客戶端通過引用Name屬性鏈接到單個DDE伺服器項。一旦建立了到DDE客戶端的鏈接,DDE伺服器項就可以將客戶端更新為項數據中的更改,或者接收DDE客戶端戳到該項的數據。
# 9.1. 屬性
- TDdeServerItem元件主要屬性
| 屬性 | 功能說明 |
|---|---|
| Fmt | 表示DDE客戶端項用於將數據傳遞到DDE客戶端的剪貼簿格式 |
| Lines | 包含要在DDE對話中交換的數據 |
| ServerConv | 指定要與DDE伺服器項關聯的DDE伺服器對話 |
| Text | 包含要在DDE對話中交換的文字數據。 |
# 9.2. 事件
- TDdeServerItem元件事件列表
| 事件 | 何時觸發 |
|---|---|
| OnChange | 在將行更改發送到DDE客戶端之前更改Lines屬性時,觸發該事件 |
| OnPokeData | 在DDE客戶端更改Lines屬性的值后,觸發該事件 |
# 9.3. 方法
- TDdeServerItem元件主要方法列表
| 方法 | 功能描述 |
|---|---|
| Change | 產生OnChange事件 |
| CopyToClipboard | 將Text或Lines屬性中指定的數據與DDE鏈接資訊一起復制到Windows剪貼簿 |
| PokeData | 處理DDE客戶端已傳入DDE伺服器項的數據 |
# 10. TBluetooth 元件
TBluetooth元件用於發起藍芽連線,並可與其他藍芽通訊設備進行數據互動。可參考藍芽控制LED燈以及藍芽讀取溫濕度。
# 10.1. 方法(Methods)
- TBluetooth元件主要方法
| 方法 | 功能說明 |
|---|---|
| Init | 初始化藍芽控制元件 |
| DiscoverDevices | 發現藍芽設備 |
| PairedDevices | 已配置藍芽設備 |
| Services | 獲取藍芽服務 |
| Pair | 配對藍芽設備 |
| UnPair | 取消藍芽配對 |
| CreateServerSocket | 建立服務通道 |
| CloseServerSocket | 關閉服務通道 |
| FreeClientSocket | 釋放服務通道 |
| SendData | 發送藍芽資訊 |
| ReadData | 接收藍芽資訊 |
| ManagerConnected | 獲取藍芽管理器狀態 |
# 10.2. 事件(Events)
- TBluetooth 元件主要事件
| 事件 | 何時觸發 |
|---|---|
| OnReceiveData | 當接收到資訊時觸發 |
# 10.2.1. OnReceiveData
接收到藍芽通訊數據后反饋。
//資訊反饋
Procedure Bluetooth1OnReceiverData(Sender: TObject;ServiceName,ServiceUUID,ReceiveData:string);
Begin
Showmessage(ReceiveData)
End;
2
3
4
5