我想在一個 delphi 應用程式中執行以下行為。(10.3 )
我希望用戶能夠實作自己的“保存在選項中”的程式的邏輯行為。
與 arduino 邏輯/程式非常相似。
例如
,我創建了一個程式來跟蹤大約 10 個熱傳感器的值。但它可以是任何東西。
該程式有一個計時器,并且在計時器事件中會發生以下操作。
- 從傳感器讀取值
- 必要時采取行動
此類中保存了 2 種型別的資訊。
不可更改的資訊,例如 ID 名稱等,以及永久更改 (DATA)。
這是保存來自一個傳感器的所有資訊的基類的示例。
type TXXX = class
private
public
// info that are not changing ever
property ID : Integer ...
property SENSOR_NAME : String ...
// info that are constantly changing
property READ_TIMESTAMP : TDateTime ...
property CURRENT_VALUE : Double ...
property VALUE_SUPREMUM : Double ...
property VALUE_INFIMUM : Double ...
end
當用戶可以定義自己的邏輯時,我需要創建程式的某種選項,即如果滿足條件,程式應該回應。
例如用戶想說:
if CURRENT_VALUE > 5 and VALUE_INFIMUM > 0.5 then begin
"take action 1"
end
等等...
“采取行動 x”,所有的行動都是硬編碼的。例如關閉/打開閥門。
現在這些屬性都超過4個都好像50個左右。
任何人都可以指點我一些方向?
問候
拉茲萬
uj5u.com熱心網友回復:
有兩種方法可以解決您的問題。
第一:您可以使用一些腳本引擎。這就是這個組件的直接目的。您可以使用類似 Pascal Script For Delphi ( https://www.remobjects.com/ps.aspx )、Fast script ( https://www.fast-report.com/en/product/fast-script/ )、 TMS Scripter ( https://www.tmssoftware.com/site/scriptstudiopro.asp ) 等
第二:如果您的操作和條件有限——您可以撰寫自己的決議器和 GUI 來處理所有這些人員。使運算式決議器,宣告運算子(數字或傳感器的允許屬性,或其他運算式),宣告數學運算(加號,地雷...)和邏輯運算(下限,上限,相等,和,不,或)。實作它可能需要一段時間,但您可以構建非常用戶友好的向導來管理它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/433791.html
標籤:德尔福
上一篇:從周數中檢索年份
