Razvoj programske opreme za kontrolne plošče, sobe za Windows Tablet – Obrazec

Avtomatizacija doma eHouse .
Ustvarite glavni obrazec (postavitev tabličnega zaslona . Nahaja se na glavni obrazec 24 polj TPanel paneli za vse vrste digitalnih izhodov RM .
Ta bodo na gumbe, da se izkažejo RoomManager (ali električne) .
Poleg tega , Barva je odvisna od stanja branje .
Zaradi tega smo uporabili standardne gumbe ali podobne vrste TButton , ker nimajo možnosti, da spremenite barvo .
Pravimo jim ” outputX ” kjer je X število rezultatov .
Ne rabim za napotitev , ker bo to avtomatsko , ta vloga . Za vsak gumb , Izhod mora biti dodeljena na isti dogodek (OnClick) – output1Click .
Nahaja se na glavni obrazec 24 polj plošče tipa TPanel za vse programe za vodenje RM .
Ta bodo gumbe za preklapljanje trenutno RoomManager (tj. , vklop / izklop električnih naprav skupine s spremembo merilnih vhodov pragov uporablja za urejanje, kot . temperatura) .
Pravimo jim ” programX ” kjer je X število gumb .
Podobno , ni potrebe po uporabi , ker bo to avtomatsko , ta vloga .
Za vsak gumb , Program je treba dodeliti ob istem dogodku (OnClick) – program1Click .
Na glavni obliki tekstovnih oznak, 16 vrst TLabel, da se prikažejo vse rezultate meritev RoomManager (oštevilčene Label1 za Label16) .
Podobno kot v navedenih primerih ni treba uvesti .
Pogled na končno obliko za  tvorijo ustvariti ploščo kontrolni sobi
Inicializacija obliki:

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
Postopek TForm1 . FormCreate (Sender: TObject) ;
var alignx , buttonindex , vrstica , stolpec , k , i: integer ;
začetek
GetComputerName ; / / Dobi ime računalnika ali ploščo – določa
Pot: = getcurrentdir () ; / / Get trenutni lokalni imenik pot aplikacije – prebere imenik, v katerem se je program
Pot: = stringreplace (pot , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Get pot eHouse uporabe
remotepath: = pot ; / / Isto pot za remoteaccess za inicialization – Na začetku poti razporejena za isto oddaljenega dostopa
loadnames_rm ; / / Nalaganje imena krmilnik ehouse1
init_heat_temperature_names ; / / Init HeatManager imena
readethernetdevs ; / / Nalaganje krmilniki Ethernet eHouse imena
i: = 1 ;
medtem ko je i < ; = Paramcount na / / opravljati argument ukazne vrstice – obdela ukazno vrstico
začetek
če pos ( ‘ / X: ‘ , male črke (ParamStr (i))) = 1, potem / / plošča širina – širina plošče
Form1 . Širina: = chk_int (stringreplace (ParamStr (i) , ‘ / X: ‘ , ‘ ‘ , [Rfignorecase])) ;
če pos ( ‘ / S: ‘ , male črke (ParamStr (i))) = 1, potem / / plošča višina – Višina plošče
Form1 . višina: = chk_int (stringreplace (ParamStr (i) , ‘ / S: ‘ , ‘ ‘ , [Rfignorecase])) ;
če pos ( ‘ / R: ‘ , male črke (ParamStr (i))) = 1, potem / / ime naprave (RoomManager) – RoomManger ime
deviceindex: = RMDeviceIndexByName ((stringreplace (ParamStr (i) , ‘ / R: ‘ , ‘ ‘ , [Rfignorecase]))) ;
če pos ( ‘ /: ‘ , male črke (ParamStr (i))) = 1, potem / / naslov naprave (RoomManager) – RoomManager naslov
deviceindex: = (get_index_rm (stringreplace (ParamStr (i) , ‘ /: ‘ , ‘ ‘ , [Rfignorecase]))) ;
če pos ( ‘ / P: ‘ , male črke (ParamStr (i))) = 1, potem / / oddaljeni dostop pot – oddaljeni dostop pot
remotepath: = ((stringreplace (ParamStr (i) , ‘ / P: ‘ , ‘ ‘ , [Rfignorecase]))) ;
MPC (i) ;
konec ;
če Form1 . širina < ; 100, nato Form1 . širina: = 800 ; / / Če napačni parametri za velikost določa privzeto – privzeto
če Form1 . Višina < ; 100, nato Form1 . višina: = 600 ;
devicestoupdatestatus: = IntToStr (rm [deviceindex] . Adrha) + ‘ – ‘ + IntToStr (rm [deviceindex] . adrl) ;
/ / Omejitev iskanja za tekoče RoomManager stanja / izločijo druge naprave
/ / Preverite za eno napravo Pannel za omejevanje UPORABA
/ / Preverite, samo stanje izbranega RoomManager krat manj CPU strežnika in eHouse
outputbuttonnames (deviceindex) ; / / Inicializacija gumbov in etikete imena – čevlji , Gumbi in besedilo oznak
Form1 . napis: = ‘ eHouse Control Panel: ‘ + Rm [deviceindex] . devname ; / / Set napisa glavnih oblik Ime RoomManager – Glava prikazuje ime obrazca RoomManager
Timer1 . Interval: = 3000 ; / / Set ciklično naloga interval v milisekundah
Timer1 . Omogočeno: = true ; / / Start samodejnih nalog (sprememba statusa
k: = 1 ;
buttonindex: = 0 ; / / Trenutna gumb (vidno) Indeks – Trenutno število (navidezno)
vrsta: = 0 ; / / Trenutna gumb v vrstici – številka trenutnega ključa v tej vrstici
/ / Kolona: = 0 ;
alignx: = (Form1 . clientWidth – (Rows) * (buttonwidth + Xspace)) div 2 ; / / Center gumbi na plošči – centriranje gumbi bloki
za i: = 0 do Form1 . ComponentCount – 1 / / izhod Gumb za samodejno nastavitev – samodejno konfiguracijo gumb Exit
začeti / / za vsak predmet na Form1 – za vse elemente Form1
if (Form1 . Komponente [i] je TPanel), potem / / če je predmet TPanel (naša gumb) – Če je tip objekta TPanel (gumb)
začetek
če comparetext ((Form1 . deli [i], kakor je TPanel) . Ime , ‘ Izhod ‘ + IntToStr (k)) = 0 potem / / če jo sestavlja ime (izhod)
začetek
vrsta: = buttonindex mod (vrstic) ; / / Izračunamo vrstice in stolpce indekse – izračuna koordinate stolpca in vrstice
stolpec: = buttonindex div (vrstic) ;
če dolžina (OutputNames [k – 1])> ; 0 potem / / Samo kaže izhoda gumbi z imenom – kaže le gumb z imenom
začetek
(Form1 . Komponente [i], kakor je TPanel) . Levo: = alignx + vrstica * (buttonwidth + Xspace) ; / / Izračun X os possition – izračuna svoj položaj na osi X
(Form1 . Komponente [i], kakor je TPanel) . top: = yoffsetouts + stolpec * (buttonheight + yspace) ; / / Izračunamo possition osi Y – izračuna svoj položaj na osi Y
(Form1 . Komponente [i], kakor je TPanel) . širina: = buttonwidth ; / / Set Širina Gumbi – Širina gumbov
(Form1 . Komponente [i], kakor je TPanel) . višina: = buttonheight ; / / Set Gumbi Višina – Znesek gumbov
(Form1 . deli [i], kakor je TPanel) . napis: = Outputnames [k – 1] ; / / Set Button Caption – določa gumba besedilo
(Form1 . deli [i], kakor je TPanel) . Bevelinner: = bvRaised ;
(Form1 . deli [i], kakor je TPanel) . BevelOuter: = bvRaised ;
(Form1 . deli [i], kakor je TPanel) . pisave . Velikost: = pisavo ; / / Set Velikost pisave Button – nastavi velikost pisave za tipke
MPC (buttonindex) ; / / Gumb Naprej vidni – glejte naslednjo
konec
drugega
začetek
(Form1 . deli [i], kakor je TPanel) . Vidni: = false ; / / No name = ne kažejo gumb – odstranite ključe brez imena
konec ;
MPC (k) ; / / Gumb Naprej – Naslednji gumb
konec ;
konec ;
konec ;
/ / / / / / / / / / / / Enake gumbi za program, – Podobno velja za gumbe za zagon programov
buttonindex: = 0 ;
k: = 1 ;
za i: = 0 do Form1 . ComponentCount – 1 v
začetek
if (Form1 . Komponente [i] je TPanel) potem
začetek
če comparetext ((Form1 . deli [i], kakor je TPanel) . Ime , ‘ Program ‘ + IntToStr (k)) = 0, potem
začetek

vrsta: = buttonindex mod (vrstic) ;
stolpec: = buttonindex div (vrstic) ;
če dolžina (ProgramNames [k – 1])> ; 0, potem
začetek
(Form1 . Komponente [i], kakor je TPanel) . Levo: = alignx + vrstica * (buttonwidth + Xspace) ;
(Form1 . Komponente [i], kakor je TPanel) . top: = yoffsetprograms + stolpec * (buttonheight + yspace) ;
(Form1 . Komponente [i], kakor je TPanel) . širina: = buttonwidth ;
(Form1 . Komponente [i], kakor je TPanel) . višina: = buttonheight ;
(Form1 . deli [i], kakor je TPanel) . napis: = Programnames [k – 1] ; / / SET napisi gumbi za program, – nastavi ime programa gumbov
(Form1 . deli [i], kakor je TPanel) . Bevelinner: = bvRaised ;
(Form1 . deli [i], kakor je TPanel) . BevelOuter: = bvRaised ;
(Form1 . deli [i], kakor je TPanel) . pisave . Velikost: = pisavo ;
MPC (buttonindex) ;
konec
drugega
začetek
(Form1 . deli [i], kakor je TPanel) . Vidni: = false ;
konec ;

MPC (k) ;
konec ;
konec ;
konec ;

k: = 1 ;
buttonindex: = 0 ;
/ / Alignx: = (Form1 . clientWidth – (Labelrows * (labelwidth + + labelresultsize Xspace))) div 2 ;
/ / / / / / / Analogicaly za nalepke – Podobno , Oznaka
za i: = 0 do Form1 . ComponentCount – 1 v
začetek
if (Form1 . Komponente [i] je TLabel), nato pa
začetek
če comparetext ((Form1 . deli [i], kakor je TLabel) . Ime , ‘ Oznaka ‘ + IntToStr (k)) = 0, potem
začetek

vrsta: = buttonindex mod (labelrows) ;
stolpec: = buttonindex div (labelrows) ;
če dolžina (LabelNames [k – 1])> ; 0 potem / / če je dolžina besedila nalepke> ; ; 0 – Če je opis
začetek
(Form1 . Komponente [i], kakor je TLabel) . Levo: = alignx + vrstica * (labelwidth + + labelresultsize Xspace) ; / / Izračun X mesto
(Form1 . Komponente [i], kakor je TLabel) . top: = yoffsetlabel + stolpec * (labelheight + yspace) ; / / Izračunamo lokacijo Y
(Form1 . Komponente [i], kakor je TLabel) . širina: = labelwidth ;
(Form1 . Komponente [i], kakor je TLabel) . višina: = labelheight ;
(Form1 . deli [i], kakor je TLabel) . napis: = LabelNames [k – 1] ; / / / Assign okolje napise – glave ustrezne nalepke
(Form1 . deli [i], kakor je TLabel) . pisave . Barva: = clwhite ; / / Nastavimo privzeto barvo za okolje – nastavi privzeto barvo za nalepke
če pos ( ‘ [ – % ] ‘ , LabelNames [k – 1])> ; 0, potem (Form1 . deli [i], kakor je TLabel) . pisave . Barva: = clyellow ; / / Set barva za merjenje svetlobe – za merjenje osvetlitve barve
če pos ( ‘ [ % ] ‘ , LabelNames [k – 1])> ; 0, potem (Form1 . deli [i], kakor je TLabel) . pisave . Barva: = Claque ; / / Nastavi barvo za merjenje odstotka – Barva za vrednost obresti
če pos ( ‘ [C] ‘ , LabelNames [k – 1])> ; 0, potem (Form1 . deli [i], kakor je TLabel) . pisave . Barva: = clwhite ; / / Nastavi barvo za upravljanje temperature – za vrednote barvne temperature
(Form1 . deli [i], kakor je TLabel) . pisave . Velikost: = labelfontsize ; / / Nastavi velikost črk za oznako – določa velikost pisave za besedilo oznake
MPC (buttonindex) ; / / Naslednji vidna oznaka – Oznaka je naslednja
konec
drugega
začetek
(Form1 . deli [i], kakor je TLabel) . Vidni: = false ; / / Skrij besedilom nalepke brez – skrij nalepke brez textu
konec ;
MPC (k) ; / / Naslednji znak – Naslednji okolje
konec ;
konec ;
konec ;
update_status ; / / Update plošča za sedanje stanje naprave iz hlodov – Posodobitve statusa voznika dnevniških datotek iz strežnika eHouse
konec ;
Končni rezultat po avto – nastavljen in gumb za umestitev v program in odstranite neizmerno elemente (če ne želite, da imajo na plošči zaradi omejitev pravice do dostopa ali uporabe proizvoda) .
 Končni učinek avtomatsko porazdelitev elementov na obrazcu
Preberite več: Avtomatizacija doma – Kontrolorji eHouse
Avtomatizacija doma eHouse Avtomatizacija doma Proizvajalec