Ohjelmistokehitys ohjaustaulu huonetta Windows Tablet – Lomake

Home Automation eHouse .
Luo tärkein muoto (ulkoasu tabletin näytön . Sijoitettu päälomakkeen 24 ruutua TPanel paneelit kaikenlaisten digitaalisten lähtöjen RM .
Nämä muodostavat painikkeita osoittautua RoomManager (tai sähkö) .
Lisäksi , väri riippuu tilasta luki .
Tästä syystä käytimme standardin painikkeita tai samantyyppisiä TButton , koska heillä ei ole mahdollisuutta vaihtaa väriä .
Me kutsumme heitä ” outputX ” jossa X on numero tuotoksen .
En tarvitse käyttää , koska se tekee sen automaattisesti , Tämän hakemuksen . Kunkin painikkeen , lähtö on määritetty saman tapahtuman (onclick) – output1Click .
Sijoitettu päälomakkeen 24 ruutua TPanel tyyppi paneelit kaikkien ohjelmien suorittamisen RM .
Nämä muodostavat painikkeita vaihtaa nykyisen RoomManager (ts. , päälle / pois sähkölaitteiden ryhmä muutos mittaustulot kynnysten käytettävien sääntelyviranomainen . lämpötila) .
Me kutsumme heitä ” programX ” jossa X on numero-painike .
Samoin , ei ole tarvetta ottaa käyttöön , koska se tekee sen automaattisesti , Tämän hakemuksen .
Kunkin painikkeen , Ohjelman olisi annettava saman tapahtuman (onclick) – program1Click .
On tärkein muoto teksteineen ovat 16 eri TLabel näyttää kaikki mittaustulokset RoomManager (numeroitu Label1 ja Label16) .
Samoin kuin edellä mainituissa tapauksissa ei tarvitse ottaa käyttöön .
Tarkastele lopullinen muoto  muodostavat luoda huoneeseen ohjauspaneelin
Alustuksen muodossa:

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
menettely TForm1 . FormCreate (Sender: TObject) ;
var alignx , buttonindex , rivi , sarake , k , i: integer ;
alkaa
GetComputerName ; / / Get nimi tietokoneen tai paneelin – lukee
path: = getcurrentdir () ; / / Get nykyinen paikallinen polku sovelluksen hakemistoon – lukee hakemiston, johon ohjelma
path: = stringreplace (polku , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Get polku sovellus eHouse
remotepath: = polku ; / / Sama polku RemoteAccess varten inicialization – alussa polun kartoitettu samaan etäkäyttö
loadnames_rm ; / / Load ohjain nimet ehouse1
init_heat_temperature_names ; / / Init HeatManager nimet
readethernetdevs ; / / Load ohjaimet ethernet eHouse nimiä
i: = 1 ;
kun i < ; = Paramcount ja / / suorittaa komentorivillä – käsittelee komentoriviltä
alkaa
jos mahdollista ( ‘ / X: ‘ , pieniksi (ParamStr (i))) = 1, niin / / paneeli leveys – leveys paneelin
Form1 . Leveys: = chk_int (stringreplace (ParamStr (i) , ‘ / X: ‘ , ‘ ‘ , [Rfignorecase])) ;
jos mahdollista ( ‘ / S: ‘ , pieniksi (ParamStr (i))) = 1, niin / / paneeli korkeus – korkeus paneelin
Form1 . korkeus: = chk_int (stringreplace (ParamStr (i) , ‘ / S: ‘ , ‘ ‘ , [Rfignorecase])) ;
jos mahdollista ( ‘ / R: ‘ , pieniksi (ParamStr (i))) = 1, niin / / laitteen nimen (RoomManager) – RoomManger nimi
deviceindex: = RMDeviceIndexByName ((stringreplace (ParamStr (i) , ‘ / R: ‘ , ‘ ‘ , [Rfignorecase]))) ;
jos mahdollista ( ‘ /: ‘ , pieniksi (ParamStr (i))) = 1, niin / /-laite-osoite (RoomManager) – RoomManager osoite
deviceindex: = (get_index_rm (stringreplace (ParamStr (i) , ‘ /: ‘ , ‘ ‘ , [Rfignorecase]))) ;
jos mahdollista ( ‘ / P: ‘ , pieniksi (ParamStr (i))) = 1, niin / / etäkäyttö polku – etäkäyttö polku
remotepath: = ((stringreplace (ParamStr (i) , ‘ / P: ‘ , ‘ ‘ , [Rfignorecase]))) ;
inc (i) ;
pää ;
jos Form1 . leveys < ; 100 sitten Form1 . leveys: = 800 ; / / Jos väärä parametrit koko asettaa oletus – oletusarvot
jos Form1 . korkeus < ; 100 sitten Form1 . korkeus: = 600 ;
devicestoupdatestatus: = IntToStr (rm [deviceindex] . Adrha) + ‘ – ‘ + IntToStr (rm [deviceindex] . adrl) ;
/ / Limit etsimällä nykyinen tila RoomManager / suodattaa pois muut laitteet
/ / Tarkista yksittäisen laitteen pannel rajoittamiseksi UTILISATION
/ / Tarkista vain tila valitun RoomManager kertaa vähemmän prosessoritehoa ja palvelin eHouse
outputbuttonnames (deviceindex) ; / / Alusta painikkeet ja tarrat nimet – kengät , painikkeet ja teksteineen
Form1 . caption: = ‘ eHouse Ohjauspaneeli: ‘ + Rm [deviceindex] . devname ; / / Aseta kuvatekstin tärkeimmistä muodoista RoomManager nimi – otsikko näyttää nimen muodossa RoomManager
Timer1 . Aikaväli: = 3000 ; / / Set syklinen tehtävän aika millisekunneissa
Timer1 . Enabled: = true ; / / Start automaattinen tehtävät (tilan päivitys
k: = 1 ;
buttonindex: = 0 ; / / Nykyinen painiketta (näkyvissä) indeksi – nykyinen määrä (näennäinen)
krs: = 0 ; / / Nyt painiketta rivillä – numero nykyisen avaimen nykyisen rivin
/ / Pylväs: = 0 ;
alignx: = (Form1 . clientWidth – (Rivit) * (buttonwidth + Xspace)) div 2 ; / / Centerin painikkeilla paneelissa – keskityskappaleiden painikkeet
i: = 0 Form1 . ComponentCount – 1 / / Output painiketta automaattisen asennuksen – automaattisesti konfiguroida Exit-painiketta
alkaa / / jokaisen objektin Form1 – Kaikkien osien Form1
jos (Form1 . Komponentit [i] on TPanel) jälkeen / / jos kohde on TPanel (meidän painike) – jos objektin tyyppi TPanel (painike)
alkaa
jos comparetext ((Form1 . osat [i] kuin TPanel) . nimi , ‘ ulostulo ‘ + IntToStr (k)) = 0 then / / jos nimi koostuvat (lähtö)
alkaa
krs: = buttonindex mod (rivit) ; / / Lasketaan rivejä ja sarakkeita indeksit – laskee koordinaatit sarakkeen ja rivin
sarake: = buttonindex div (rivit) ;
jos pituus (OutputNames [k – 1])> ; 0 sitten / / näyttää vain ouput painikkeet nimi – näyttää vain painikkeet nimi
alkaa
(Form1 . Komponentit [i] kuin TPanel) . vasen: = alignx + rivi * (buttonwidth + Xspace) ; / / Laske X-akselin possition – laskee sijaintinsa X-akselilla
(Form1 . Komponentit [i] kuin TPanel) . top: = yoffsetouts + sarake * (buttonheight + yspace) ; / / Lasketaan Y-akselin possition – laskee sen asemaa Y-akselilla
(Form1 . Komponentit [i] kuin TPanel) . leveys: = buttonwidth ; / / Laitteen leveys painikkeet – Leveys painikkeet
(Form1 . Komponentit [i] kuin TPanel) . korkeus: = buttonheight ; / / Aseta painikkeet korkeus – Määrä painikkeet
(Form1 . osat [i] kuin TPanel) . caption: = Outputnames [k – 1] ; / / Set-painike kuvateksti – asettaa painikkeen tekstin
(Form1 . osat [i] kuin TPanel) . Bevelinner: = bvRaised ;
(Form1 . osat [i] kuin TPanel) . BevelOuter: = bvRaised ;
(Form1 . osat [i] kuin TPanel) . kirjasinlaji . Koko: = fontsize ; / / Kirj.koko Button – asettaa fonttikoon painiketta
inc (buttonindex) ; / / Next-painike näkyy – Katso seuraava
pää
muu
alkaa
(Form1 . osat [i] kuin TPanel) . näkyvissä: = false ; / / Ei nimi = älä näytä painike – Poista avaimet ilman nimeä
pää ;
inc (k) ; / / Next-painiketta – Seuraava painike
pää ;
pää ;
pää ;
/ / / / / / / / / / / / Samoja painikkeita ohjelmaan – Vastaavasti painikkeita käynnistää ohjelmia
buttonindex: = 0 ;
k: = 1 ;
i: = 0 Form1 . ComponentCount – 1
alkaa
jos (Form1 . Komponentit [i] on TPanel), sitten
alkaa
jos comparetext ((Form1 . osat [i] kuin TPanel) . nimi , ‘ ohjelma ‘ + IntToStr (k)) = 0, niin
alkaa

krs: = buttonindex mod (rivit) ;
sarake: = buttonindex div (rivit) ;
jos pituus (ProgramNames [k – 1])> ; 0, niin
alkaa
(Form1 . Komponentit [i] kuin TPanel) . vasen: = alignx + rivi * (buttonwidth + Xspace) ;
(Form1 . Komponentit [i] kuin TPanel) . top: = yoffsetprograms + sarake * (buttonheight + yspace) ;
(Form1 . Komponentit [i] kuin TPanel) . leveys: = buttonwidth ;
(Form1 . Komponentit [i] kuin TPanel) . korkeus: = buttonheight ;
(Form1 . osat [i] kuin TPanel) . caption: = Programnames [k – 1] ; / / Set näppäintä kuvatekstin painikkeet ohjelman – asettaa ohjelman nimi painikkeet
(Form1 . osat [i] kuin TPanel) . Bevelinner: = bvRaised ;
(Form1 . osat [i] kuin TPanel) . BevelOuter: = bvRaised ;
(Form1 . osat [i] kuin TPanel) . kirjasinlaji . Koko: = fontsize ;
inc (buttonindex) ;
pää
muu
alkaa
(Form1 . osat [i] kuin TPanel) . näkyvissä: = false ;
pää ;

inc (k) ;
pää ;
pää ;
pää ;

k: = 1 ;
buttonindex: = 0 ;
/ / Alignx: = (Form1 . clientWidth – (Labelrows * (labelwidth + labelresultsize + Xspace))) div 2 ;
/ / / / / / / Analogicaly ja etiketit – Samoin , etiketti
i: = 0 Form1 . ComponentCount – 1
alkaa
jos (Form1 . Komponentit [i] on TLabel), sitten
alkaa
jos comparetext ((Form1 . osat [i] kuin TLabel) . nimi , ‘ etiketti ‘ + IntToStr (k)) = 0, niin
alkaa

krs: = buttonindex mod (labelrows) ;
sarake: = buttonindex div (labelrows) ;
jos pituus (LabelNames [k – 1])> ; 0 sitten / / jos pituus tarratekstin> ; ; 0 – jos kuvaus on
alkaa
(Form1 . Komponentit [i] kuin TLabel) . vasen: = alignx + rivi * (labelwidth + labelresultsize + Xspace) ; / / Lasketaan X sijainti
(Form1 . Komponentit [i] kuin TLabel) . top: = yoffsetlabel + sarake * (labelheight + yspace) ; / / Lasketaan Y sijainti
(Form1 . Komponentit [i] kuin TLabel) . leveys: = labelwidth ;
(Form1 . Komponentit [i] kuin TLabel) . korkeus: = labelheight ;
(Form1 . osat [i] kuin TLabel) . caption: = LabelNames [k – 1] ; / / / Määritä label kuvatekstit – otsikot sopivia leimoja
(Form1 . osat [i] kuin TLabel) . kirjasinlaji . color: = clwhite ; / / Aseta oletusväri etiketti – asettaa oletusväri tarrat
jos mahdollista ( ‘ [ – % ] ‘ , LabelNames [k – 1])> ; 0 sitten (Form1 . osat [i] kuin TLabel) . kirjasinlaji . color: = clyellow ; / / Aseta väri Valon mittaus – mittausta varten värin valaistus
jos mahdollista ( ‘ [ % ] ‘ , LabelNames [k – 1])> ; 0 sitten (Form1 . osat [i] kuin TLabel) . kirjasinlaji . color: = palkatut taputtajat ; / / Aseta väri mittaus prosenttia – värin arvon korko
jos mahdollista ( ‘ [C] ‘ , LabelNames [k – 1])> ; 0 sitten (Form1 . osat [i] kuin TLabel) . kirjasinlaji . color: = clwhite ; / / Aseta väri lämpötilan hallinta – värilämpötilan arvot
(Form1 . osat [i] kuin TLabel) . kirjasinlaji . Koko: = labelfontsize ; / / Aseta fontin kokoa etiketti – asettaa fonttikoon tekstistä
inc (buttonindex) ; / / Seuraava näkyvä etiketti – tarra vieressä
pää
muu
alkaa
(Form1 . osat [i] kuin TLabel) . näkyvissä: = false ; / / Piilota teksteineen ilman – piilota tarroja ilman textu
pää ;
inc (k) ; / / Seuraava etiketti – seuraavan tarran
pää ;
pää ;
pää ;
update_status ; / / Päivitys paneeli nykyisen laitteen tilan lokit – päivitykset tilan kuljettajan tukin tiedostoja palvelimelta eHouse
pää ;
Lopputuloksena jälkeen auto – määritetty ja nappi sijoitus ohjelman ja poistaa lukemattomia elementtejä (jos et halua niitä olla paneelissa rajoitusten vuoksi tapaamisoikeutta tai käytön tuotosta) .
 Lopullinen vaikutus automaattista jakelua elementtien Form
Lue lisää: Home Automation – Ohjaimet eHouse
Home Automation eHouse Home Automation Valmistaja