Programu ya Maendeleo kwa ajili ya Udhibiti vyumba paneli kwa ajili ya Windows Ubao – Fomu

Home Automation eHouse .
Unda fomu kuu (layout ya screen kibao . Kuwekwa kwenye Fomu kuu paneli TPanel 24 mashamba kwa kila aina ya matokeo ya digital RM .
Hawa wataunda vifungo kugeuka kutoka RoomManager (au umeme) .
Aidha , Michezo itategemea hali ya kusoma nje .
Kwa sababu hii sisi kutumika vifungo kiwango au TButton sawa aina , kwa sababu hawana uwezekano wa mabadiliko ya rangi .
Sisi kuwaita ” outputX ” ambapo X ni idadi ya pato .
Sihitaji kupelekwa , sababu kufanya hivyo moja kwa moja , hii ya maombi . Kwa kila kifungo , pato lazima kwa ajili ya tukio moja (onClick) – output1Click .
Kuwekwa kwenye Fomu kuu 24 mashamba TPanel aina paneli kwa ajili ya mipango yote ya kuendesha RM .
Hawa wataunda kifungo kwa byte RoomManager sasa (yaani , juu ya / off vifaa vya umeme ya kundi na mabadiliko katika pembejeo kupima wa vizingiti kutumika kwa ajili ya kusimamia vile . joto) .
Sisi kuwaita ” programX ” ambapo X ni idadi ya kifungo .
Vile vile , hakuna haja ya kupeleka , sababu kufanya hivyo moja kwa moja , hii ya maombi .
Kwa kila kifungo , mpango lazima kwa ajili ya tukio moja (onClick) – program1Click .
Kwenye fomu kuu ya maandiko Nakala ni 16 aina TLabel kuonyesha matokeo yote ya vipimo ya RoomManager (kuhesabiwa Label1 kwa Label16) .
Vile vile kama katika kesi hapo juu hawana haja ya kupeleka .
View fomu ya mwisho kwa  kuunda na kujenga chumba kudhibiti jopo
Initialization ya fomu:

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
utaratibu TForm1 . FormCreate (Sender: TObject) ;
var alignx , buttonindex , mstari , safu , k , i: integer ;
kuanza
GetComputerName ; / / Pata jina ya kompyuta au jopo – anayesoma
Njia: = getcurrentdir () ; / / Pata sasa mitaa njia ya maombi saraka – anasoma katika saraka ya programu ambayo
Njia: = stringreplace (njia , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Pata njia ya eHouse maombi
remotepath: = njia ; / / Njia hiyo hiyo kwa remoteaccess kwa inicialization – katika mwanzo wa njia mapped kwa ajili ya kupata sawa kijijini
loadnames_rm ; / / Load mtawala majina ehouse1
init_heat_temperature_names ; / / Init HeatManager majina
readethernetdevs ; / / Load controllers ethernet eHouse majina
i: 1 = ;
wakati i < ; = Paramcount kwa / / kufanya amri line hoja – michakato ya mstari amri
kuanza
kama pos ( ‘ / X: ‘ , Herufi za chini (ParamStr (i))) = 1 kisha / / jopo upana – upana wa jopo
form1 . Width: = chk_int stringreplace ((ParamStr (i) , ‘ / X: ‘ , ‘ ‘ , [Rfignorecase])) ;
kama pos ( ‘ / S: ‘ , Herufi za chini (ParamStr (i))) = 1 kisha / / jopo urefu – urefu wa jopo
form1 . urefu: = chk_int stringreplace ((ParamStr (i) , ‘ / S: ‘ , ‘ ‘ , [Rfignorecase])) ;
kama pos ( ‘ / R: ‘ , Herufi za chini (ParamStr (i))) = 1 kisha / / kifaa jina (RoomManager) – RoomManger jina
deviceindex: = RMDeviceIndexByName ((stringreplace ParamStr ((i) , ‘ / R: ‘ , ‘ ‘ , [Rfignorecase]))) ;
kama pos ( ‘ /: ‘ , Herufi za chini (ParamStr (i))) = 1 kisha / / kifaa anuani (RoomManager) – RoomManager anuani
deviceindex: = (get_index_rm (stringreplace (ParamStr (i) , ‘ /: ‘ , ‘ ‘ , [Rfignorecase]))) ;
kama pos ( ‘ / P: ‘ , Herufi za chini (ParamStr (i))) = 1 kisha / / kijijini kupata njia – kijijini kupata njia
remotepath: = ((stringreplace ParamStr ((i) , ‘ / P: ‘ , ‘ ‘ , [Rfignorecase]))) ;
inc (i) ;
mwisho ;
ikiwa form1 . upana < ; 100 kisha form1 . width: = 800 ; / / Kama makosa vigezo kwa ukubwa seti default – defaults
ikiwa form1 . urefu < ; 100 kisha form1 . urefu: = 600 ;
devicestoupdatestatus: = IntToStr (rm [deviceindex] . Adrha) + ‘ – ‘ + IntToStr (rm [deviceindex] . adrl) ;
/ / Punguza kwa ajili ya kutafuta RoomManager sasa hadhi / chujio nje ya vifaa vingine
/ / Angalia kwa moja kifaa pannel kwa Matumizi ya kiwango cha juu
/ / Angalia tu hali ya kuchaguliwa CPU RoomManager mara chini na eHouse server
outputbuttonnames (deviceindex) ; / / Initialize vifungo na majina maandiko – buti , vifungo na maandiko Nakala
form1 . maelezo: = ‘ eHouse Udhibiti Jopo: ‘ + Rm [deviceindex] . devname ; / / Set maelezo ya aina kuu ya kata RoomManager – header inaonyesha jina la RoomManager fomu
timer1 . Interval: = 3000 ; / / Set cyclic kazi Interval katika milliseconds
timer1 . Kuwezeshwa: = kweli ; / / Anza kazi moja kwa moja (kwa sasa update
k: = 1 ;
buttonindex: = 0 ; / / Hali ya kifungo (inayoonekana) index – idadi ya sasa ya (dhahiri)
mstari: = 0 ; / / Hali kifungo katika mstari – idadi ya sasa ya muhimu katika mstari wa sasa
/ / Column: = 0 ;
alignx: = (form1 . clientWidth – (Rows) * (buttonwidth + Xspace)) div 2 ; / / Center kifungo juu ya jopo – centering vitalu vifungo
kwa i: = 0 kwa form1 . ComponentCount – 1 / / Output kifungo moja kwa moja kuanzisha – moja kwa moja configure kifungo Exit
kuanza / / kwa kila kitu juu ya form1 – kwa yote ni mambo ya Form1
kama (form1 . Vipengele [i] ni TPanel) basi / / kama kitu ni TPanel (kifungo yetu) – kama aina kitu TPanel (button)
kuanza
ikiwa comparetext ((form1 . vipengele [i] kama TPanel) . jina , ‘ pato ‘ + IntToStr (k)) = 0 kisha / / kama jina na wajumbe (matokeo)
kuanza
mstari: = buttonindex Mod (safu) ; / / Kokotoa safu na bahati nguzo – mahesabu ya kuratibu ya safu na safu
safu: = buttonindex div (safu) ;
kama urefu (OutputNames [k – 1])> ; 0 kisha / / tu inaonyesha vifungo ouput kwa jina – tu inaonyesha vifungo na jina
kuanza
(Form1 . Vipengele [i] kama TPanel) . kushoto: = alignx + mstari * (buttonwidth + Xspace) ; / / Mahesabu ya X mhimili possition – mahesabu ya nafasi yake katika mhimili X
(Form1 . Vipengele [i] kama TPanel) . juu: = yoffsetouts + safu * (buttonheight yspace +) ; / / Kokotoa mhimili Y possition – mahesabu ya nafasi yake katika mhimili Y
(Form1 . Vipengele [i] kama TPanel) . width: = buttonwidth ; / / Set Width Buttons – Upana wa vifungo
(Form1 . Vipengele [i] kama TPanel) . urefu: = buttonheight ; / / Set Buttons Urefu – kiasi ya kifungo
(Form1 . vipengele [i] kama TPanel) . maelezo: = Outputnames [k – 1] ; / / Set Button Caption – seti Nakala kifungo
(Form1 . vipengele [i] kama TPanel) . Bevelinner: = bvRaised ;
(Form1 . vipengele [i] kama TPanel) . BevelOuter: = bvRaised ;
(Form1 . vipengele [i] kama TPanel) . font . Size: = fontsize ; / / Set Font Size Button – seti kawaida font kwa kifungo
inc (buttonindex) ; / / Ifwatayo kifungo inayoonekana – kuona ijayo
mwisho
mwingine
kuanza
(Form1 . vipengele [i] kama TPanel) . inayoonekana: = uongo ; / / = Hakuna jina hawaonyeshi kifungo – kuondoa funguo bila jina
mwisho ;
inc (k) ; / / Ifwatayo kifungo – ijayo kifungo
mwisho ;
mwisho ;
mwisho ;
/ / / / / / / / / / / / Vifungo sawa kwa ajili ya mpango – Vile vile kwa vifungo kuzindua programu
buttonindex: = 0 ;
k: = 1 ;
kwa i: = 0 kwa form1 . ComponentCount – 1 kwa
kuanza
kama (form1 . Vipengele [i] ni TPanel) kisha
kuanza
ikiwa comparetext ((form1 . vipengele [i] kama TPanel) . jina , ‘ mpango ‘ + IntToStr (k)) = 0 kisha
kuanza

mstari: = buttonindex Mod (safu) ;
safu: = buttonindex div (safu) ;
kama urefu (ProgramNames [k – 1])> ; 0 kisha
kuanza
(Form1 . Vipengele [i] kama TPanel) . kushoto: = alignx + mstari * (buttonwidth + Xspace) ;
(Form1 . Vipengele [i] kama TPanel) . juu: = yoffsetprograms + safu * (buttonheight yspace +) ;
(Form1 . Vipengele [i] kama TPanel) . width: = buttonwidth ;
(Form1 . Vipengele [i] kama TPanel) . urefu: = buttonheight ;
(Form1 . vipengele [i] kama TPanel) . maelezo: = Programnames [k – 1] ; / / Set kifungo maelezo vifungo kwa ajili ya mpango – anaweka jina la vifungo mpango
(Form1 . vipengele [i] kama TPanel) . Bevelinner: = bvRaised ;
(Form1 . vipengele [i] kama TPanel) . BevelOuter: = bvRaised ;
(Form1 . vipengele [i] kama TPanel) . font . Size: = fontsize ;
inc (buttonindex) ;
mwisho
mwingine
kuanza
(Form1 . vipengele [i] kama TPanel) . inayoonekana: = uongo ;
mwisho ;

inc (k) ;
mwisho ;
mwisho ;
mwisho ;

k: = 1 ;
buttonindex: = 0 ;
/ / Alignx: = (form1 . clientWidth – (Labelrows * (labelwidth + + labelresultsize Xspace))) div 2 ;
/ / / / / / / Analogicaly kwa Labels – Vile vile , studio
kwa i: = 0 kwa form1 . ComponentCount – 1 kwa
kuanza
kama (form1 . Vipengele [i] ni TLabel) kisha
kuanza
ikiwa comparetext ((form1 . vipengele [i] kama TLabel) . jina , ‘ studio ‘ + IntToStr (k)) = 0 kisha
kuanza

mstari: = buttonindex Mod (labelrows) ;
safu: = buttonindex div (labelrows) ;
kama urefu (LabelNames [k – 1])> ; 0 kisha / / kama urefu wa asilia studio> ; ; 0 – kama maelezo ni
kuanza
(Form1 . Vipengele [i] kama TLabel) . kushoto: = alignx + mstari * (labelwidth + + labelresultsize Xspace) ; / / Mahesabu ya X mahali
(Form1 . Vipengele [i] kama TLabel) . juu: = yoffsetlabel + safu * (labelheight + yspace) ; / / Kokotoa mahali Y
(Form1 . Vipengele [i] kama TLabel) . width: = labelwidth ;
(Form1 . Vipengele [i] kama TLabel) . urefu: = labelheight ;
(Form1 . vipengele [i] kama TLabel) . maelezo: = LabelNames [k – 1] ; / / / Pangia captions studio – headers zinazofaa maandiko
(Form1 . vipengele [i] kama TLabel) . font . Michezo: = clwhite ; / / Set default rangi kwa ajili ya studio – seti default Michezo kwa maandiko
kama pos ( ‘ [ – % ] ‘ , LabelNames [k – 1])> ; 0 kisha (form1 . vipengele [i] kama TLabel) . font . Michezo: = clyellow ; / / Set rangi kwa ajili ya kipimo mwanga – kwa kipimo cha taa ya rangi
kama pos ( ‘ [ % ] ‘ , LabelNames [k – 1])> ; 0 kisha (form1 . vipengele [i] kama TLabel) . font . Michezo: = Claque ; / / Set rangi kipimo kwa asilimia – Michezo kwa ajili ya thamani ya riba
kama pos ( ‘ [C] ‘ , LabelNames [k – 1])> ; 0 kisha (form1 . vipengele [i] kama TLabel) . font . Michezo: = clwhite ; / / Set rangi kwa ajili ya usimamizi joto – kwa ajili ya Michezo ya joto maadili
(Form1 . vipengele [i] kama TLabel) . font . Size: = labelfontsize ; / / Set fonti kwa studio – seti kawaida font kwa studio Nakala
inc (buttonindex) ; / / Ifwatayo inayoonekana studio – studio inaonekana ijayo
mwisho
mwingine
kuanza
(Form1 . vipengele [i] kama TLabel) . inayoonekana: = uongo ; / / Ficha maandiko asilia bila – kujificha maandiko bila textu
mwisho ;
inc (k) ; / / Ifwatayo studio – ijayo studio
mwisho ;
mwisho ;
mwisho ;
update_status ; / / Mwisho jopo kwa hali ya sasa ya kifaa katika magogo – updates ya hadhi ya dereva wa files logi kutoka eHouse server
mwisho ;
Matokeo ya mwisho baada auto – kimeundwa na Kuwekwa kifungo na mpango na kuondoa vipengele untold (kama hutaki wao kuwa juu ya jopo kwa sababu ya vikwazo juu ya haki ya kupata au kutumia pato) .
 athari ya mwisho ya usambazaji wa moja kwa moja ya vipengele kwenye Fomu
Soma zaidi: Home Automation – Controllers eHouse
Home Automation eHouse Home Automation Mtengenezaji