Datblygu Meddalwedd ar gyfer Paneli Control ystafelloedd ar gyfer Windows Dabled – Ffurflen

Automation Hafan eHouse .
Creu y brif ffurflen (gosodiad y sgrîn tabled . Rhoi ar y Ffurflen prif paneli TPanel 24 o gaeau ar gyfer pob math o allbynnau digidol RM .
Bydd y rhain yn ffurfio y botymau i droi allan RoomManager (neu drydanol) .
Yn ogystal, , Bydd y lliw yn dibynnu ar gyflwr y darllen .
Am y rheswm hwn rydym yn defnyddio'r botymau safonol neu TButton fath tebyg , oherwydd nad ydynt yn cael y posibilrwydd i newid y lliw .
Rydym yn galw yn eu ” outputX ” lle mae X yn y nifer o allbwn .
Nid oes angen i mi gael eu defnyddio , oherwydd y bydd yn ei wneud yn awtomatig , y cais hwn . Ar gyfer pob botwm , mae'n rhaid i'r cynnyrch gael ei neilltuo i un digwyddiad (onClick) – output1Click .
Rhoi ar y Ffurflen prif 24 o gaeau paneli TPanel math ar gyfer yr holl raglenni i redeg RM .
Bydd y rhain yn ffurfio y botymau ar gyfer newid y RoomManager gyfredol (hy , ar / oddi ar ddyfeisiau trydanol y grŵp gyda newid yn y mewnbynnau mesur o'r trothwyon a ddefnyddir ar gyfer rheoleiddio o'r fath . tymheredd) .
Rydym yn galw yn eu ” programX ” lle mae X yn nifer y botwm .
Yn yr un modd , oes angen i ddefnyddio , oherwydd y bydd yn ei wneud yn awtomatig , y cais hwn .
Ar gyfer pob botwm , dylai'r rhaglen gael ei neilltuo i un digwyddiad (onClick) – program1Click .
Ar y ffurflen prif labeli testun yn 16 math TLabel i arddangos yr holl ganlyniadau o fesuriadau o RoomManager (wedi'u rhifo Label1 i Label16) .
Yn yr un modd nid fel yn yr achosion uchod oes angen i ddefnyddio .
Gweld y ffurf derfynol ar gyfer y  ffurflen i greu panel ystafell reoli
Ymgychwyn y ffurflen:

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
weithdrefn TForm1 . FormCreate (Anfonwyd gan: TObject) ;
var alignx , buttonindex , rhes , golofn , k , i: cyfanrif ;
yn dechrau
GetComputerName ; / / Cael enw cyfrifiadur neu banel – yn darllen y
llwybr: = getcurrentdir () ; / / Cael y cyfeiriadur cyfredol llwybrau lleol cais – yn darllen y cyfeiriadur mae'r rhaglen
llwybr: = stringreplace (llwybr , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Cael llwybr eHouse cais
remotepath: = llwybr ; / / Mae'r llwybr un fath ar gyfer remoteaccess gyfer inicialization – ar ddechrau'r llwybr mapio ar gyfer yr un mynediad o bell
loadnames_rm ; Enwau rheolwr / / Llwytho ehouse1
init_heat_temperature_names ; / / Enwau HeatManager Init
readethernetdevs ; / / Llwytho rheolwyr enwau eHouse ethernet
i: = 1 ;
tra i < ; = Paramcount i / / berfformio ymresymiad llinell orchymyn – prosesau y llinell orchymyn
yn dechrau
os pos ( ‘ / X: ‘ , lythrennau bach (ParamStr (i))) = 1 yna / / panel lled – lled y panel
form1 . Lled: = chk_int (stringreplace (ParamStr (i) , ‘ / X: ‘ , ‘ ‘ , [Rfignorecase])) ;
os pos ( ‘ / S: ‘ , lythrennau bach (ParamStr (i))) = 1 yna / / panel uchder – uchder y panel
form1 . uchder: = chk_int (stringreplace (ParamStr (i) , ‘ / S: ‘ , ‘ ‘ , [Rfignorecase])) ;
os pos ( ‘ / R: ‘ , lythrennau bach (ParamStr (i))) = 1, yna enw / / dyfais (RoomManager) – RoomManger enw
deviceindex: = RMDeviceIndexByName ((stringreplace (ParamStr (i) , ‘ / R: ‘ , ‘ ‘ , [Rfignorecase]))) ;
os pos ( ‘ / A: ‘ , lythrennau bach (ParamStr (i))) = 1 yna cyfeiriad / / dyfais (RoomManager) – Cyfeiriad RoomManager
deviceindex: = (get_index_rm (stringreplace (ParamStr (i) , ‘ / A: ‘ , ‘ ‘ , [Rfignorecase]))) ;
os pos ( ‘ / P: ‘ , lythrennau bach (ParamStr (i))) = 1 yna lwybr mynediad / / o bell – llwybr mynediad o bell
remotepath: = ((stringreplace (ParamStr (i) , ‘ / P: ‘ , ‘ ‘ , [Rfignorecase]))) ;
gan gynnwys (i) ;
diwedd ;
os form1 . lled < ; 100, yna form1 . lled: = 800 ; / / Os paramedrau anghywir ar gyfer maint yn gosod diofyn – diffygion
os form1 . uchder < ; 100, yna form1 . uchder: = 600 ;
devicestoupdatestatus: = IntToStr (rm [deviceindex] . Adrha) + ‘ – ‘ + IntToStr (rm [deviceindex] . adrl) ;
/ / Terfyn chwilio am RoomManager statws presennol / hidlo dyfeisiau eraill
/ / Gwirio ar gyfer y ddyfais sengl pannel gyfer DEFNYDD cyfyngiad
/ / Gwirio dim ond statws y CPU RoomManager adegau penodol yn llai ac yn eHouse gweinyddwr
outputbuttonnames (deviceindex) ; / / Ymgychwyn botymau ac enwau labeli – esgidiau , botymau a labeli testun
form1 . Pennawd: = ‘ Panel Rheoli eHouse: ‘ + Rm [deviceindex] . devname ; / / Set capsiwn y prif fathau o Enw RoomManager – pennawd yn dangos enw'r RoomManager ffurflen
timer1 . Egwyl: = 3000 ; / Egwyl cylchol / Set dasg mewn milieiliadau
timer1 . Galluogi: = true ; / / Dechrau tasgau awtomatig (diweddariad statws
k: = 1 ;
buttonindex: = 0 ; / / Cyfredol botwm (gweladwy) mynegai – y nifer presennol o (amlwg)
row: = 0 ; Botwm / / Cyfredol yn y rhes – rif y fysell ar hyn o bryd yn y llinell gyfredol
/ / Colofn: = 0 ;
alignx: = (form1 . clientWidth – (Rhesi) * (buttonwidth + Xspace)) div 2 ; / / Center botymau ar y panel – botymau blociau canoli
am i: = 0 i form1 . ComponentCount – 1 / / Allbwn setup botwm awtomatig – yn awtomatig ffurfweddu y botwm Exit
dechrau / / ar gyfer pob gwrthrych ar form1 – ar gyfer pob elfen o'r Form1
os (form1 . Cydrannau [i] yn TPanel) yna / / os yw'r gwrthrych yn TPanel (ein botwm) – os yw'r gwrthrych TPanel math (botwm)
yn dechrau
os comparetext ((form1 . cydrannau [i] fel TPanel) . enw , ‘ allbwn ‘ + IntToStr (k)) = 0, yna / / os enw CYNNWYS (allbwn)
yn dechrau
row: = buttonindex mod (rhesi) ; / / Cyfrifwch rhesi a cholofnau mynegeion – cyfrifo gyfesurynnau y golofn a rhes
colofn: = buttonindex div (rhesi) ;
os hyd (OutputNames [k – 1])> ; 0 yna / / Dim ond yn dangos botymau allbwn gyda'r enw – ond yn dangos botymau gydag enw'r
yn dechrau
(Form1 . Cydrannau [i] fel TPanel) . chwith: = alignx + rhes * (buttonwidth + Xspace) ; / / Cyfrifwch possition echelin X – yn cyfrifo ei safle yn y echelin X
(Form1 . Cydrannau [i] fel TPanel) . top: = yoffsetouts + colofn * (buttonheight + yspace) ; / / Cyfrifwch y possition echelin Y – yn cyfrifo ei safle yn y echelin Y
(Form1 . Cydrannau [i] fel TPanel) . lled: = buttonwidth ; / / Set Botymau Lled – Lled y botymau
(Form1 . Cydrannau [i] fel TPanel) . uchder: = buttonheight ; / / Set Botymau Uchder – Mae faint o fotymau
(Form1 . cydrannau [i] fel TPanel) . Pennawd: = Outputnames [k – 1] ; / Geiriad Button / Set – yn gosod y testun botwm
(Form1 . cydrannau [i] fel TPanel) . Bevelinner: = bvRaised ;
(Form1 . cydrannau [i] fel TPanel) . BevelOuter: = bvRaised ;
(Form1 . cydrannau [i] fel TPanel) . ffont . Maint: = fontsize ; / / Gosod Button Maint Ffont – gosod y maint ffont ar gyfer y botwm
gynnwys (buttonindex) ; / / Next botwm gweladwy – gweld y nesaf
diwedd
arall
yn dechrau
(Form1 . cydrannau [i] fel TPanel) . weladwy: = ffug ; / / Na = enw yn dangos botwm – dileu allweddi heb enw
diwedd ;
gynnwys (k) ; / / Botwm Nesaf – botwm nesaf
diwedd ;
diwedd ;
diwedd ;
/ / / / / / / / / / / / Mae'r botymau un peth ar gyfer rhaglen – Yn yr un modd ar gyfer y botymau i lansio rhaglenni
buttonindex: = 0 ;
k: = 1 ;
am i: = 0 i form1 . ComponentCount – 1 i
yn dechrau
os (form1 . Cydrannau [i] yn TPanel) yna
yn dechrau
os comparetext ((form1 . cydrannau [i] fel TPanel) . enw , ‘ rhaglen ‘ + IntToStr (k)) = 0, yna
yn dechrau

row: = buttonindex mod (rhesi) ;
colofn: = buttonindex div (rhesi) ;
os hyd (ProgramNames [k – 1])> ; 0 yna
yn dechrau
(Form1 . Cydrannau [i] fel TPanel) . chwith: = alignx + rhes * (buttonwidth + Xspace) ;
(Form1 . Cydrannau [i] fel TPanel) . top: = yoffsetprograms + colofn * (buttonheight + yspace) ;
(Form1 . Cydrannau [i] fel TPanel) . lled: = buttonwidth ;
(Form1 . Cydrannau [i] fel TPanel) . uchder: = buttonheight ;
(Form1 . cydrannau [i] fel TPanel) . Pennawd: = Programnames [k – 1] ; Botymau botwm / / Gosod pennawd ar gyfer rhaglen – yn gosod enw'r botymau rhaglen
(Form1 . cydrannau [i] fel TPanel) . Bevelinner: = bvRaised ;
(Form1 . cydrannau [i] fel TPanel) . BevelOuter: = bvRaised ;
(Form1 . cydrannau [i] fel TPanel) . ffont . Maint: = fontsize ;
gynnwys (buttonindex) ;
diwedd
arall
yn dechrau
(Form1 . cydrannau [i] fel TPanel) . weladwy: = ffug ;
diwedd ;

gynnwys (k) ;
diwedd ;
diwedd ;
diwedd ;

k: = 1 ;
buttonindex: = 0 ;
/ / Alignx: = (form1 . clientWidth – (Labelrows * (labelwidth + labelresultsize + Xspace))) div 2 ;
/ / / / / / / Analogicaly gyfer Labeli – Yn yr un modd , y label
am i: = 0 i form1 . ComponentCount – 1 i
yn dechrau
os (form1 . Cydrannau [i] yn TLabel) yna
yn dechrau
os comparetext ((form1 . cydrannau [i] fel TLabel) . enw , ‘ label ‘ + IntToStr (k)) = 0, yna
yn dechrau

row: = buttonindex mod (labelrows) ;
colofn: = buttonindex div (labelrows) ;
os hyd (LabelNames [k – 1])> ; 0 wedyn / / os hyd y testun label> ; ; 0 – os yw'r disgrifiad yn
yn dechrau
(Form1 . Cydrannau [i] fel TLabel) . chwith: = alignx + rhes * (labelwidth + labelresultsize + Xspace) ; / / Lleoliad X Cyfrifwch
(Form1 . Cydrannau [i] fel TLabel) . top: = yoffsetlabel + colofn * (labelheight + yspace) ; / / Cyfrifwch y lleoliad Y
(Form1 . Cydrannau [i] fel TLabel) . lled: = labelwidth ;
(Form1 . Cydrannau [i] fel TLabel) . uchder: = labelheight ;
(Form1 . cydrannau [i] fel TLabel) . Pennawd: = LabelNames [k – 1] ; / / / Neilltuo capsiynau label – penawdau labeli addas
(Form1 . cydrannau [i] fel TLabel) . ffont . lliw: = clwhite ; Lliw diofyn / / Gosod ar gyfer label – gosod y lliw rhagosodedig ar gyfer labeli
os pos ( ‘ [ – % ] ‘ , LabelNames [k – 1])> ; 0 wedyn (form1 . cydrannau [i] fel TLabel) . ffont . lliw: = clyellow ; Lliw / / Gosod ar gyfer mesur golau – ar gyfer mesur goleuadau lliw
os pos ( ‘ [ % ] ‘ , LabelNames [k – 1])> ; 0 wedyn (form1 . cydrannau [i] fel TLabel) . ffont . lliw: = Claque ; Mesur lliw / / Gosod ar gyfer y cant – lliw ar gyfer y gwerth o ddiddordeb
os pos ( ‘ [C] ‘ , LabelNames [k – 1])> ; 0 wedyn (form1 . cydrannau [i] fel TLabel) . ffont . lliw: = clwhite ; / / Gosod lliw ar gyfer rheoli tymheredd – ar gyfer gwerthoedd tymheredd lliw
(Form1 . cydrannau [i] fel TLabel) . ffont . Maint: = labelfontsize ; / Maint ffont / Set gyfer label – gosod y maint ffont ar gyfer y label testun
gynnwys (buttonindex) ; / / Label Nesaf gweladwy – label yn ymddangos nesaf
diwedd
arall
yn dechrau
(Form1 . cydrannau [i] fel TLabel) . weladwy: = ffug ; / / Cuddio labeli testun heb – cuddio labeli heb textu
diwedd ;
gynnwys (k) ; / / Label Nesaf – label nesaf
diwedd ;
diwedd ;
diwedd ;
update_status ; / / Diweddariad panel ar gyfer statws dyfais cerrynt o foncyffion – diweddariadau statws y gyrrwr o'r ffeiliau log gan y gweinydd eHouse
diwedd ;
Y canlyniad diwedd ar ôl auto – cyflunio a'u lleoliad botwm gan y rhaglen a chael gwared ar elfennau ofnadwy (os nad ydych am iddynt ei gael ar y panel oherwydd y cyfyngiadau ar hawliau mynediad neu ddefnydd o'r allbwn) .
 Effaith terfynol o ddosbarthiad awtomatig o elfennau ar y Ffurflen
Darllen mwy: Automation Hafan – Rheolwyr eHouse
Automation Hafan eHouse Gwneuthurwr Automation Hafan