Software Development pou Kontwòl chanm group pou Windows Tablet – Fòm

Automation Kay eHouse .
Kreye fòm prensipal la (aranjman tèks yo nan ekran an konprime . Plase li nan Fòm prensipal la 24 jaden panno TPanel pou tout kalite sorti dijital RM .
Sa yo ap fòme bouton sa yo tounen deyò RoomManager (oswa elektrik) .
Anplis de sa , koulè a ​​pral depann de eta a nan li a soti .
Pou rezon sa a nou itilize bouton sa yo estanda oswa ki sanble TButton kalite , paske yo pa gen posiblite pou chanje koulè a .
Nou rele yo ” outputX ” kote X se nimewo a nan pwodiksyon .
Mwen pa bezwen ap deplwaye , paske li pral fè li otomatikman , aplikasyon sa a . Pou chak bouton , dwe pwodiksyon an yo kapab asiyen li nan evènman an menm (xonclick) – output1Click .
Plase li nan Fòm nan prensipal panno 24 jaden kalite TPanel pou tout pwogram nan kouri RM .
Sa yo ap fòme bouton sa yo pou oblije chanje RoomManager aktyèl la (sa vle di , sou / sou aparèy elektrik nan gwoup la ak yon chanjman nan entrain yo mezire nan papòt yo itilize pou kontwole sa yo . tanperati) .
Nou rele yo ” programX ” kote x se kantite bouton an .
Menm jan an , pa bezwen deplwaye , paske li pral fè li otomatikman , aplikasyon sa a .
Pou chak bouton , yo ta dwe pwogram nan yo kapab asiyen li nan evènman an menm (xonclick) – program1Click .
Sou fòm nan prensipal nan etikèt tèks yo se 16 kalite TLabel yo montre tout rezilta yo nan mezi nan RoomManager (resansman Label1 Label16) .
Menm jan an kòm nan ka yo pi wo a pa bezwen deplwaye .
View fòm nan final pou la  fòme yo kreye panno kontwòl chanm
Inisyalizasyon nan fòm nan:

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
pwosedi TForm1 . FormCreate (Sender: TObject) ;
var alignx , buttonindex , ranje , kolòn , k , mwen: nonb antye relatif ;
kòmanse
GetComputerName ; / / Jwenn non an nan òdinatè oswa komite – li nan
chemen: = getcurrentdir () ; / / Jwenn aktyèl anyè a lokal aplikasyon chemen – li anyè a nan ki pwogram lan
chemen: = stringreplace (chemen , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Jwenn chemen pou fè eHouse aplikasyon
remotepath: = chemen ; / / Chemen an menm pou remoteaccess pou inicialization – nan kòmansman an nan chemen an mappé pou gen aksè a menm remote
loadnames_rm ; / / Chaj kontwolè non ehouse1
init_heat_temperature_names ; / / Ini heatmanager non
readethernetdevs ; / / Chaj contrôleur non Ethernet eHouse
mwen: = 1 ;
pandan y ap mwen < ; = Paramcount / / fè agiman liy lòd – trete liy lan bay lòd
kòmanse
si posib ( ‘ / X: ‘ , miniskil (ParamStr (mwen))) = 1 Lè sa a, / / ​​panèl lajè – lajè nan panèl la
form1 . Lajè: = chk_int (stringreplace (ParamStr (mwen) , ‘ / X: ‘ , ‘ ‘ , [Rfignorecase])) ;
si posib ( ‘ / S: ‘ , miniskil (ParamStr (mwen))) = 1 Lè sa a, / / ​​panèl wotè – wotè nan panèl la
form1 . wotè: = chk_int (stringreplace (ParamStr (mwen) , ‘ / S: ‘ , ‘ ‘ , [Rfignorecase])) ;
si posib ( ‘ / R: ‘ , miniskil (ParamStr (mwen))) = 1 Lè sa a, / / ​​aparèy non (RoomManager) – RoomManger non
deviceindex: = RMDeviceIndexByName ((stringreplace (ParamStr (mwen) , ‘ / R: ‘ , ‘ ‘ , [Rfignorecase]))) ;
si posib ( ‘ / A: ‘ , miniskil (ParamStr (mwen))) = 1 Lè sa a, / / ​​aparèy adrès (RoomManager) – Adrès RoomManager
deviceindex: = (get_index_rm (stringreplace (ParamStr (mwen) , ‘ / A: ‘ , ‘ ‘ , [Rfignorecase]))) ;
si posib ( ‘ / P: ‘ , miniskil (ParamStr (mwen))) = 1 Lè sa a, / / ​​aleka aksè chemen – remote aksè chemen
remotepath: = ((stringreplace (ParamStr (mwen) , ‘ / P: ‘ , ‘ ‘ , [Rfignorecase]))) ;
inc (mwen) ;
fen ;
si form1 . lajè < ; 100 Lè sa a, form1 . lajè: = 800 ; / / Si paramèt sa ki mal pou gwosè kouche default – défaut
si form1 . wotè < ; 100 Lè sa a, form1 . wotè: = 600 ;
devicestoupdatestatus: = IntToStr (RM [deviceindex] . Adrha) + ‘ – ‘ + IntToStr (RM [deviceindex] . adrl) ;
/ / Limite pou chèche RoomManager kondisyon aktyèl / met deyò ansyen lwil lòt aparèy
/ / Tcheke pou pano sèl aparèy ki pou itilizasyon limitasyon
/ / Tcheke sèlman estati a nan RoomManager chwazi CPU a fwa mwens ak eHouse sèvè
outputbuttonnames (deviceindex) ; / / Inisyalize bouton ak etikèt non – bòt , bouton ak etikèt tèks
form1 . caption: = ‘ eHouse kontwòl Panel: ‘ + Rm [deviceindex] . devname ; / / Set caption nan fòm prensipal yo nan Non RoomManager – header montre non an nan RoomManager nan fòm
timer1 . Entèval: = 3000 ; / / Set siklik travay entèval nan milisgond
timer1 . Pèmèt: = vre ; / / Kòmanse travay otomatik (update estati
k: = 1 ;
buttonindex: = 0 ; / / Kouran bouton (vizib) endèks – nimewo aktyèl la nan la (aparan)
ranje: = 0 ; / / Kouran bouton nan ranje – nimewo yo ki kle a kounye a nan liy nan aktyèl
/ / Kolòn: = 0 ;
alignx: = (form1 . clientWidth – (Rows) * (buttonwidth + Xspace)) div 2 ; / / Sant bouton sou panèl – Santralizasyon blòk bouton
pou mwen: = 0 a form1 . ComponentCount – 1 / / Sòti bouton otomatik konfigirasyon – otomatikman konfigirasyon bouton an sòti
kòmanse / / pou chak objè sou form1 – pou tout eleman nan Form1 la
si (form1 . Konpozan [mwen] se TPanel) Lè sa a, / / ​​si objè a se TPanel (bouton nou an) – si TPanel nan kalite objè (bouton)
kòmanse
si comparetext ((form1 . konpozan [mwen] kòm TPanel) . non , ‘ pwodiksyon ‘ + IntToStr (k)) = 0 Lè sa a, / / ​​si non konpoze (randman)
kòmanse
ranje: = buttonindex Mod (ranje) ; / / Kalkile ranje ak kolòn endèks – kalkile koòdone pou kolòn a ak ranje
kolòn: = buttonindex div (ranje) ;
si longè (OutputNames [k – 1])> ; 0 Lè sa a, / / ​​Se sèlman montre bouton ouput ak non an – sèlman montre bouton ak non an
kòmanse
(Form1 . Konpozan [mwen] kòm TPanel) . gòch: = alignx + ranje * (buttonwidth + Xspace) ; / / Kalkile X aks possition – kalkile pozisyon li nan aks X la
(Form1 . Konpozan [mwen] kòm TPanel) . tèt: = yoffsetouts + kolòn * (buttonheight + yspace) ; / / Kalkile possition nan aks Y – kalkile pozisyon li nan aks la Y
(Form1 . Konpozan [mwen] kòm TPanel) . lajè: = buttonwidth ; / / Set Bouton Lajè – Lajè nan bouton sa yo
(Form1 . Konpozan [mwen] kòm TPanel) . wotè: = buttonheight ; / / Set Bouton Wotè – Kantite lajan an nan bouton
(Form1 . konpozan [mwen] kòm TPanel) . caption: = Outputnames [k – 1] ; / / Set Button lejand – kouche tèks la bouton
(Form1 . konpozan [mwen] kòm TPanel) . Bevelinner: = bvRaised ;
(Form1 . konpozan [mwen] kòm TPanel) . BevelOuter: = bvRaised ;
(Form1 . konpozan [mwen] kòm TPanel) . font . Size: = fontsiz ; / / Set Button font size – kouche gwosè a font pou bouton an
inc (buttonindex) ; / / PWOCHÈN bouton vizib – al gade nan pwochen an
fen
lòt
kòmanse
(Form1 . konpozan [mwen] kòm TPanel) . vizib: = fo ; / / Non = non pa montre bouton – retire kle san yon non
fen ;
inc (k) ; / / PWOCHÈN bouton – PWOCHÈN bouton
fen ;
fen ;
fen ;
/ / / / / / / / / / / / Bouton yo ke yo menm pou pwogram – Menm jan an pou bouton sa yo lanse pwogram
buttonindex: = 0 ;
k: = 1 ;
pou mwen: = 0 a form1 . ComponentCount – 1 a
kòmanse
si (form1 . Konpozan [mwen] se TPanel) Lè sa a,
kòmanse
si comparetext ((form1 . konpozan [mwen] kòm TPanel) . non , ‘ pwogram ‘ + IntToStr (k)) = 0 Lè sa a,
kòmanse

ranje: = buttonindex Mod (ranje) ;
kolòn: = buttonindex div (ranje) ;
si longè (ProgramNames [k – 1])> ; 0 Lè sa a,
kòmanse
(Form1 . Konpozan [mwen] kòm TPanel) . gòch: = alignx + ranje * (buttonwidth + Xspace) ;
(Form1 . Konpozan [mwen] kòm TPanel) . tèt: = yoffsetprograms + kolòn * (buttonheight + yspace) ;
(Form1 . Konpozan [mwen] kòm TPanel) . lajè: = buttonwidth ;
(Form1 . Konpozan [mwen] kòm TPanel) . wotè: = buttonheight ;
(Form1 . konpozan [mwen] kòm TPanel) . caption: = Programnames [k – 1] ; Bouton / / Set caption bouton pou pwogram – kouche non an nan bouton sa yo pwogram
(Form1 . konpozan [mwen] kòm TPanel) . Bevelinner: = bvRaised ;
(Form1 . konpozan [mwen] kòm TPanel) . BevelOuter: = bvRaised ;
(Form1 . konpozan [mwen] kòm TPanel) . font . Size: = fontsiz ;
inc (buttonindex) ;
fen
lòt
kòmanse
(Form1 . konpozan [mwen] kòm TPanel) . vizib: = fo ;
fen ;

inc (k) ;
fen ;
fen ;
fen ;

k: = 1 ;
buttonindex: = 0 ;
/ / Alignx: = (form1 . clientWidth – (Labelrows * (labelwidth + labelresultsize + Xspace))) div 2 ;
/ / / / / / / Analogicaly pou Labels – Menm jan an , etikèt la
pou mwen: = 0 a form1 . ComponentCount – 1 a
kòmanse
si (form1 . Konpozan [mwen] se TLabel) Lè sa a,
kòmanse
si comparetext ((form1 . konpozan [mwen] kòm TLabel) . non , ‘ mete etikèt sou ‘ + IntToStr (k)) = 0 Lè sa a,
kòmanse

ranje: = buttonindex Mod (labelrows) ;
kolòn: = buttonindex div (labelrows) ;
si longè (LabelNames [k – 1])> ; 0 Lè sa a, / / ​​si longè nan tèks mete etikèt sou> ; ; 0 – si deskripsyon an se
kòmanse
(Form1 . Konpozan [mwen] kòm TLabel) . gòch: = alignx + ranje * (labelwidth + labelresultsize + Xspace) ; / / Kalkile X kote
(Form1 . Konpozan [mwen] kòm TLabel) . tèt: = yoffsetlabel + kolòn * (labelheight + yspace) ; / / Kalkile ki kote Y
(Form1 . Konpozan [mwen] kòm TLabel) . lajè: = labelwidth ;
(Form1 . Konpozan [mwen] kòm TLabel) . wotè: = labelheight ;
(Form1 . konpozan [mwen] kòm TLabel) . caption: = LabelNames [k – 1] ; / / / Bay deskripsyon anba mete etikèt sou – Tèt etikèt ki apwopriye
(Form1 . konpozan [mwen] kòm TLabel) . font . koulè: = clwhite ; / / Set default koulè pou mete etikèt sou – kouche koulè a ​​default pou etikèt
si posib ( ‘ [ – % ] ‘ , LabelNames [k – 1])> ; 0 Lè sa a, (form1 . konpozan [mwen] kòm TLabel) . font . koulè: = clyellow ; / / Set koulè pou mezi limyè – pou mezi a nan ekleraj koulè
si posib ( ‘ [ % ] ‘ , LabelNames [k – 1])> ; 0 Lè sa a, (form1 . konpozan [mwen] kòm TLabel) . font . koulè: = klak ; / / Set koulè mezi pou pousan – koulè pou valè a nan enterè
si posib ( ‘ [C] ‘ , LabelNames [k – 1])> ; 0 Lè sa a, (form1 . konpozan [mwen] kòm TLabel) . font . koulè: = clwhite ; / / Set koulè pou jesyon tanperati – pou valè tanperati koulè
(Form1 . konpozan [mwen] kòm TLabel) . font . Size: = labelfontsize ; / / Set font size pou mete etikèt sou – kouche gwosè a font pou etikèt la tèks
inc (buttonindex) ; / / Next mete etikèt sou vizib – mete etikèt sou parèt pwochen
fen
lòt
kòmanse
(Form1 . konpozan [mwen] kòm TLabel) . vizib: = fo ; / / Hide etikèt tèks san – kache etikèt san textu
fen ;
inc (k) ; / / Next mete etikèt sou – pwochen mete etikèt sou
fen ;
fen ;
fen ;
update_status ; / / Mizajou panèl pou estati aktyèl aparèy soti nan mòso bwa – nouvèl la nan chofè a nan dosye yo boutèy demi lit soti nan eHouse nan sèvè
fen ;
Fen rezilta a apre oto – configuré ak plasman bouton pa pwogram nan epi retire eleman inonbrabl (si ou pa vle yo genyen sou panèl la paske nan restriksyon sou dwa aksè oswa itilize nan pwodiksyon an) .
 Efè final la nan distribisyon an otomatik nan eleman sou Fòm nan
Li plis: Automation Kay – Contrôleur eHouse
Automation Kay eHouse Kay Automation fabrikan