Razvoj softvera za kontrolne ploče soba za Windows Tablet – Oblik

Početna Automatizacija eHouse .
Napravite glavni oblik (izgled tableta zaslonu . Smješten na glavnom obrascu 24 polja TPanel ploče za sve vrste digitalnih izlaza RM .
To će stvoriti gumbe ispasti RoomManager (ili električne) .
Dodatno , Boja će ovisiti o stanju pročitati .
Iz tog razloga smo koristili standardne gumbe ili sličnog tipa TButton , jer oni nemaju mogućnost za promjenu boje .
Mi ih zovemo ” outputX ” gdje X je broj izlaza .
Ne trebam biti raspoređeno , jer će to učiniti automatski , ovaj program . Za svaki gumb , izlaz mora biti dodijeljen isti događaj (onclick) – output1Click .
Smješten na glavnom obrascu 24 polja TPanel tipa panela za sve programe za pokretanje RM .
To će stvoriti gumbe za prebacivanje trenutni RoomManager (tj. , uključivanje / isključivanje električnih uređaja u skupini s promjenom u mjernim ulazima pragova koristi za reguliranje kao . temperatura) .
Mi ih zovemo ” programX ” gdje X je broj od gumba .
Slično , nema potrebe za implementaciju , jer će to učiniti automatski , ovaj program .
Za svaki gumb , Program bi trebao biti dodijeljen isti događaj (onclick) – program1Click .
Na glavnom obliku tekstualne oznake su 16 vrste TLabel za prikaz svih rezultata mjerenja RoomManager (brojevima Label1 da Label16) .
Slično kao u navedenim slučajevima ne treba rasporediti .
Pogledajte konačni oblik za  formirati stvoriti ploču boravak kontrole
Inicijalizacija obliku:

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
Postupak TForm1 . FormCreate (Sender: TObject) ;
var alignx , buttonindex , red , kolona , k , I: cijeli ;
početi
GetComputerName ; / / Get naziv računala ili ploču – čita
Put: = getcurrentdir () ; / / Get trenutni lokalni direktorij aplikacije put – čita imenik u koji program
Put: = stringreplace (staza , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Get put aplikacija eHouse
remotepath: = put ; / / Isti put za remoteaccess za inicialization – na početku staze mapirati za istu daljinski pristup
loadnames_rm ; / / Load kontroler imena ehouse1
init_heat_temperature_names ; / / Init HeatManager imena
readethernetdevs ; / / Load kontroleri Ethernet eHouse imena
i: = 1 ;
dok ja < ; = Paramcount na / / obavljati argument naredbenog retka – obrađuje naredbenog retka
početi
ako je moguce ( ‘ / X: ‘ , mala slova (ParamStr (i))) = 1 tada / / ploča širina – širina panela
form1 . Širina: = chk_int (stringreplace (ParamStr (i) , ‘ / X: ‘ , ‘ ‘ , [Rfignorecase])) ;
ako je moguce ( ‘ / S: ‘ , mala slova (ParamStr (i))) = 1 tada / / ploča visina – visina ploče
form1 . visina: = chk_int (stringreplace (ParamStr (i) , ‘ / S: ‘ , ‘ ‘ , [Rfignorecase])) ;
ako je moguce ( ‘ / R: ‘ , mala slova (ParamStr (i))) = 1 tada / / naziv uređaja (RoomManager) – RoomManger ime
deviceindex: = RMDeviceIndexByName ((stringreplace (ParamStr (i) , ‘ / R: ‘ , ‘ ‘ , [Rfignorecase]))) ;
ako je moguce ( ‘ /: ‘ , mala slova (ParamStr (i))) = 1 tada / / adresa uređaja (RoomManager) – RoomManager adresa
deviceindex: = (get_index_rm (stringreplace (ParamStr (i) , ‘ /: ‘ , ‘ ‘ , [Rfignorecase]))) ;
ako je moguce ( ‘ / P: ‘ , mala slova (ParamStr (i))) = 1 tada / / daljinski pristupni put – daljinski pristupni put
remotepath: = ((stringreplace (ParamStr (i) , ‘ / P: ‘ , ‘ ‘ , [Rfignorecase]))) ;
inc (i) ;
kraj ;
ako form1 . Širina < ; 100 onda form1 . Širina: = 800 ; / / Ako krivo parametri za veličinu postavlja zadanu – zadane
ako form1 . visina < ; 100 onda form1 . visina: = 600 ;
devicestoupdatestatus: = IntToStr (rm [deviceindex] . Adrha) + ‘ – ‘ + IntToStr (rm [deviceindex] . adrl) ;
/ / Limit potrazi za trenutni status RoomManager / filtrirati druge uređaje
/ / Provjerite jednog uređaja vijećem za ograničenje KORIŠTENJE
/ / Provjera samo status odabranog RoomManager puta manje CPU i poslužitelja eHouse
outputbuttonnames (deviceindex) ; / / Inicijaliziranje tipke i naljepnice imena – čizme , tipke i tekst naljepnice
form1 . naslov: = ‘ eHouse Kontrolna ploča: ‘ + Rm [deviceindex] . devname ; / / Set naslov od glavnih oblika RoomManager Ime – zaglavlja prikazuje naziv obrasca RoomManager
timer1 . Interval: = 3000 ; / / Set ciklički zadatak interval u milisekundama
timer1 . Omogućeno: = true ; / / Start automatske zadatke (aktualno stanje
k: = 1 ;
buttonindex: = 0 ; / / Trenutni tipka (vidljivi) indeks – trenutni broj (prividno)
red: = 0 ; / / Trenutni gumb u nizu – broj tekućeg ključ u trenutnoj liniji
/ / Stupac: = 0 ;
alignx: = (form1 . clientWidth – (Redovi) * (buttonwidth + Xspace)) div 2 ; / / Centar gumba na ploči – centriranje blokira tipke
za i: = 0 do form1 . ComponentCount – 1 / / izlaz tipku automatsko postavljanje – automatski konfigurirati tipku Exit
počinju / / za svaki objekt na form1 – za sve elemente Form1
ako (form1 . Komponente [i] je TPanel) onda / / ako je objekt TPanel (naš tipka) – ako TPanel tip objekta (tipka)
početi
ako comparetext ((form1 . dijelovi [i] kao TPanel) . ime , ‘ izlaz ‘ + IntToStr (k)) = 0 tada / / ako ime SASTOJI (izlaz)
početi
red: = buttonindex mod (redaka) ; / / Izračunajte redaka i stupaca indekse – izračunava koordinate stupcu i retku
stupac: = buttonindex div (redaka) ;
ako duljina (OutputNames [k – 1])> ; 0 tada / / Samo pokazuje izlaz tipke sa imenom – prikazuje samo tipke sa imenom
početi
(Form1 . Komponente [i] kao TPanel) . lijevo: = alignx + red * (buttonwidth + Xspace) ; / / Izračunajte os X possition – izračunava svoju poziciju u odnosu na X-os
(Form1 . Komponente [i] kao TPanel) . vrh: = yoffsetouts + kolona * (buttonheight + yspace) ; / / Izračunajte possition Y osi – izračunava svoju poziciju u Y osi
(Form1 . Komponente [i] kao TPanel) . Širina: = buttonwidth ; / / Set Širina gumbi – Širina gumba
(Form1 . Komponente [i] kao TPanel) . visina: = buttonheight ; / / Set Gumbi Visina – Iznos gumba
(Form1 . dijelovi [i] kao TPanel) . naslov: = Outputnames [k – 1] ; / / Set Button Naslov – postavlja tekst gumba
(Form1 . dijelovi [i] kao TPanel) . Bevelinner: = bvRaised ;
(Form1 . dijelovi [i] kao TPanel) . BevelOuter: = bvRaised ;
(Form1 . dijelovi [i] kao TPanel) . krstionica . Veličina: = Fontsize ; / / Set Veličina fonta Button – postavlja veličinu fonta za gumb
inc (buttonindex) ; / / Sljedeća gumb vidljiv – vidi sljedeći
kraj
drugo
početi
(Form1 . dijelovi [i] kao TPanel) . vidljivi: = false ; / / No name = ne pokazuju gumb – ukloniti tipke bez imena
kraj ;
inc (k) ; / / Sljedeća tipka – Sljedeći gumb
kraj ;
kraj ;
kraj ;
/ / / / / / / / / / / / Iste tipke za programu – Slično za tipke za pokretanje programa
buttonindex: = 0 ;
k: = 1 ;
za i: = 0 do form1 . ComponentCount – 1 do
početi
ako (form1 . Komponente [i] je TPanel) zatim
početi
ako comparetext ((form1 . dijelovi [i] kao TPanel) . ime , ‘ program ‘ + IntToStr (k)) = 0, tada
početi

red: = buttonindex mod (redaka) ;
stupac: = buttonindex div (redaka) ;
ako duljina (ProgramNames [k – 1])> ; 0 tada
početi
(Form1 . Komponente [i] kao TPanel) . lijevo: = alignx + red * (buttonwidth + Xspace) ;
(Form1 . Komponente [i] kao TPanel) . vrh: = yoffsetprograms + kolona * (buttonheight + yspace) ;
(Form1 . Komponente [i] kao TPanel) . Širina: = buttonwidth ;
(Form1 . Komponente [i] kao TPanel) . visina: = buttonheight ;
(Form1 . dijelovi [i] kao TPanel) . naslov: = Programnames [k – 1] ; / / Set gumb opisom tipke za programu – postavlja naziv programskih tipki
(Form1 . dijelovi [i] kao TPanel) . Bevelinner: = bvRaised ;
(Form1 . dijelovi [i] kao TPanel) . BevelOuter: = bvRaised ;
(Form1 . dijelovi [i] kao TPanel) . krstionica . Veličina: = Fontsize ;
inc (buttonindex) ;
kraj
drugo
početi
(Form1 . dijelovi [i] kao TPanel) . vidljivi: = false ;
kraj ;

inc (k) ;
kraj ;
kraj ;
kraj ;

k: = 1 ;
buttonindex: = 0 ;
/ / Alignx: = (form1 . clientWidth – (Labelrows * (labelwidth + labelresultsize + Xspace))) div 2 ;
/ / / / / / / Analogicaly za Etikete – Slično , oznaka
za i: = 0 do form1 . ComponentCount – 1 do
početi
ako (form1 . Komponente [i] je TLabel), a zatim
početi
ako comparetext ((form1 . dijelovi [i] kao TLabel) . ime , ‘ oznaka ‘ + IntToStr (k)) = 0, tada
početi

red: = buttonindex mod (labelrows) ;
stupac: = buttonindex div (labelrows) ;
ako duljina (LabelNames [k – 1])> ; 0 tada / / ako je duljina teksta naljepnice> ; ; 0 – ako je opis
početi
(Form1 . Komponente [i] kao TLabel) . lijevo: = alignx + red * (labelwidth + + labelresultsize Xspace) ; / / Izračunajte X lokacija
(Form1 . Komponente [i] kao TLabel) . vrh: = yoffsetlabel + kolona * (labelheight + yspace) ; / / Izračunajte Y lokaciju
(Form1 . Komponente [i] kao TLabel) . Širina: = labelwidth ;
(Form1 . Komponente [i] kao TLabel) . visina: = labelheight ;
(Form1 . dijelovi [i] kao TLabel) . naslov: = LabelNames [k – 1] ; / / / Dodjela oznake naslove – zaglavlja prikladne oznake
(Form1 . dijelovi [i] kao TLabel) . krstionica . Boja: = clwhite ; / / Set default boja za oznake – postavlja zadanu boju za naljepnice
ako je moguce ( ‘ [ – % ] ‘ , LabelNames [k – 1])> ; 0 tada (form1 . dijelovi [i] kao TLabel) . krstionica . Boja: = clyellow ; / / Set boja za lake mjerenja – za mjerenje boje rasvjete
ako je moguce ( ‘ [ % ] ‘ , LabelNames [k – 1])> ; 0 tada (form1 . dijelovi [i] kao TLabel) . krstionica . Boja: = potplaćeni aplauder ; / / Set boja za mjerenje posto – Boja za vrijednost interesa
ako je moguce ( ‘ [C] ‘ , LabelNames [k – 1])> ; 0 tada (form1 . dijelovi [i] kao TLabel) . krstionica . Boja: = clwhite ; / / Set boja za upravljanje temperature – za boju vrijednosti temperature
(Form1 . dijelovi [i] kao TLabel) . krstionica . Veličina: = labelfontsize ; / / Set veličinu fonta za oznaku – postavlja veličinu fonta za tekst oznake
inc (buttonindex) ; / / Sljedeća vidljiva oznaka – Oznaka se pojavljuje uz
kraj
drugo
početi
(Form1 . dijelovi [i] kao TLabel) . vidljivi: = false ; / / Sakrij tekst natpisa bez – sakriti oznake bez textu
kraj ;
inc (k) ; / / Sljedeća oznaka – Sljedeći oznaka
kraj ;
kraj ;
kraj ;
update_status ; / / Update ploča za tekuće uređaja statusa iz dnevnika – ažuriranja statusa vozača log datotekama iz poslužitelj eHouse
kraj ;
Krajnji rezultat nakon auto – konfigurirati i tipka plasman od strane programa i ukloniti neizrecive elemente (ako ne želite da ih imaju na ploči zbog ograničenja prava na pristup ili korištenje izlaz) .
 Konačni učinak automatsku raspodjelu elemenata na obrascu
Pročitajte više: Početna Automatizacija – Regulatori eHouse
Početna Automatizacija eHouse Početna Automatizacija Proizvođač