Software Development for Control Panels szoba Windows Tablet – Forma

Háztartási automatizációs eHouse .
Hozza létre a fő formája (elrendezés a tabletta képernyő . Helyezve a fő Form 24 mező TPanel panelek minden típusú digitális kimenet RM .
Ezek alkotják a gombokat, hogy kiderül RoomManager (vagy elektromos) .
Ezenkívül , a szín állásától függ a olvasott ki .
Éppen ezért a szabványos gombokkal vagy hasonló típusú TButton , mivel nem rendelkeznek a lehetősége változtatni a színét .
Hívjuk őket ” outputX ” ahol X jelentése a számú kimeneti .
Nem kell bevetni , mert ezt automatikusan , Az alkalmazás . Minden egyes gomb , a kimeneti kell rendelni ugyanazon esemény (onClick) – output1Click .
Helyezve a fő Form 24 mező TPanel típusú panelek minden program futtatásához RM .
Ezek alkotják a gombokat kapcsolási jelenlegi RoomManager (azaz a , be / ki elektromos készülékeket a csoport egy változást a mérő bemenetei a küszöbértékek szabályozásában használt ilyen . hőmérséklet) .
Hívjuk őket ” programX ” ahol X jelentése a száma a gomb .
Hasonlóképpen , nem kell telepíteni , mert ezt automatikusan , Az alkalmazás .
Minden egyes gomb , a programot hozzá kell rendelni az ugyanazon esemény (onClick) – program1Click .
A fő szöveg formájában címkék 16 féle TLabel hogy megjelenítse az összes mérési eredményei RoomManager (számozott Label1 a Label16) .
Hasonlóan, mint a fenti esetekben nem kell telepíteni .
Tekintse meg a végleges formáját a  formában létrehozni room központ
Inicializálása a formában:

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
eljárás TForm1 . FormCreate (Sender: TObject) ;
var alignx , buttonindex , sor , oszlop , k , i: integer ;
kezdődik
GetComputerName ; / / Most meg a nevét a számítógép vagy a panel – beolvassa a
path: = getcurrentdir () ; / / Az aktuális helyi útvonal alkalmazás könyvtárában – beolvassa a könyvtárat, ahová a program
path: = stringreplace (path , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Get path kérelmezés eHouse
remotepath: = path ; / / Ugyanez útját RemoteAccess for inicialization – elején az út leképezve a az ugyanilyen távoli hozzáférési
loadnames_rm ; / / Load vezérlő nevek ehouse1
init_heat_temperature_names ; / / Init HeatManager nevek
readethernetdevs ; / / Load ethernet vezérlő eHouse nevek
i: = 1 ;
míg a i < ; = Paramcount a / / végre parancssori argumentum – feldolgozza a parancssor
kezdődik
ha a pos ( ‘ / X: ‘ , kisbetűs (ParamStr (i))) = 1, akkor / / panel szélessége – szélessége a panel
Form1 . Szélesség: = chk_int (stringreplace (ParamStr (i) , ‘ / X: ‘ , ‘ ‘ , [Rfignorecase])) ;
ha a pos ( ‘ / S: ‘ , kisbetűs (ParamStr (i))) = 1, akkor / / panel magasság – magassága panel
Form1 . magasság: = chk_int (stringreplace (ParamStr (i) , ‘ / S: ‘ , ‘ ‘ , [Rfignorecase])) ;
ha a pos ( ‘ / R: ‘ , kisbetűs (ParamStr (i))) = 1, akkor / / eszköz neve (RoomManager) – RoomManger neve
deviceindex: = RMDeviceIndexByName ((stringreplace (ParamStr (i) , ‘ / R: ‘ , ‘ ‘ , [Rfignorecase]))) ;
ha a pos ( ‘ / A: ‘ , kisbetűs (ParamStr (i))) = 1, akkor / / device cím (RoomManager) – RoomManager cím
deviceindex: = (get_index_rm (stringreplace (ParamStr (i) , ‘ / A: ‘ , ‘ ‘ , [Rfignorecase]))) ;
ha a pos ( ‘ / P: ‘ , kisbetűs (ParamStr (i))) = 1, akkor / / remote elérési út – távoli elérési út
remotepath: = ((stringreplace (ParamStr (i) , ‘ / P: ‘ , ‘ ‘ , [Rfignorecase]))) ;
inc (i) ;
vég ;
ha a Form1 . szélesség < ; 100 majd Form1 . szélesség: = 800 ; / / Ha hiba paramétereit beállítja az alapértelmezett méret – defaults
ha a Form1 . magasság < ; 100 majd Form1 . magasság: = 600 ;
devicestoupdatestatus: = IntToStr (rm [deviceindex] . Adrha) + ‘ – ‘ + IntToStr (rm [deviceindex] . adrl) ;
/ / Limit keres aktuális státuszának RoomManager / kiszűrni egyéb eszközök
/ / Ellenőrizze, hogy egyetlen eszközben pannel a korlátozás FELHASZNÁLÁSA
/ / Ellenőrizzük csak az állapotát a kiválasztott RoomManager szor kevesebb CPU és a szerver eHouse
outputbuttonnames (deviceindex) ; / / Inicializálása gombok és címkék nevek – csizma , gombok és szövegcímkék
Form1 . caption: = ‘ eHouse Control Panel: ‘ + Rm [deviceindex] . eszköznév ; / / Set feliratot a fő formái RoomManager neve – header nevét mutatja az űrlap RoomManager
Timer1 . Interval: = 3000 ; / / Set ciklikus feladat időköz ezredmásodpercben
Timer1 . Enabled: = true ; / / Start automatikus feladatok (az állapot frissítése
k: = 1 ;
buttonindex: = 0 ; / / Current gomb (látható) index – aktuális számának a (látszólagos)
sor: = 0 ; / / Current gomb sorban – számát az aktuális kulcs az aktuális sort
/ / Oszlop: = 0 ;
alignx: = (Form1 . clientWidth – (Sorok) * (buttonwidth + Xspace)) div 2 ; / / Center gombok panel – központosító blokkok gombok
for i: = 0 Form1 . ComponentCount – 1 / / Output gomb automatikus beállítás – automatikusan konfigurálja a Kilépés gombot
begin / / minden tárgyat Form1 – minden eleme a Form1
if (Form1 . Components [i] TPanel) then / / ha az objektum TPanel (a gomb) – ha az objektum típusát TPanel (gomb)
kezdődik
ha comparetext ((Form1 . összetevők [i] A TPanel) . név , ‘ teljesítmény ‘ + IntToStr (k)) = 0 then / / ha a neve ÁLL (output)
kezdődik
sor: = buttonindex mod (sorok) ; / / Számítsuk sorok és oszlopok indexek – kiszámítja a koordinátákat az oszlop és sor
oszlop: = buttonindex div (sorok) ;
ha hossz (OutputNames [k – 1])> ; 0, akkor / / csak azt mutatja, kimeneti gombok nevét – csak azt mutatja, gombok nevét
kezdődik
(Form1 . Components [i] A TPanel) . balra: = alignx + sor * (buttonwidth + Xspace) ; / / Calculate X tengely pozícióját a – kiszámítja álláspontját az X tengelyen
(Form1 . Components [i] A TPanel) . top: = yoffsetouts + oszlop * (buttonheight + yspace) ; / / Számítsuk ki a Y tengely pozícióját a – kiszámítja álláspontját az Y tengelyen
(Form1 . Components [i] A TPanel) . szélesség: = buttonwidth ; / / Készülék szélessége Buttons – Szélessége gombok
(Form1 . Components [i] A TPanel) . magasság: = buttonheight ; / / Set gombok magassága – Az összeg a gombok
(Form1 . összetevők [i] A TPanel) . caption: = Outputnames [k – 1] ; / / Set gomb Caption – beállítja a gomb szövegének
(Form1 . összetevők [i] A TPanel) . Bevelinner: = bvRaised ;
(Form1 . összetevők [i] A TPanel) . BevelOuter: = bvRaised ;
(Form1 . összetevők [i] A TPanel) . betűtípus . Méret: = Betűméret ; / / Set Betűméret Gomb – állítja be a betűméretet a gomb
inc (buttonindex) ; / / Next gomb látható – lásd a következő
vég
más
kezdődik
(Form1 . összetevők [i] A TPanel) . látható: = false ; / / No name = nem jelenne gomb – eltávolítás kulcsok név nélkül
vég ;
inc (k) ; / / Next gombot – következő gomb
vég ;
vég ;
vég ;
/ / / / / / / / / / / / Ugyanez a gomb a program – Hasonlóképpen, a gombokat, hogy indítson programokat
buttonindex: = 0 ;
k: = 1 ;
for i: = 0 Form1 . ComponentCount – 1-től
kezdődik
if (Form1 . Components [i] TPanel), akkor
kezdődik
ha comparetext ((Form1 . összetevők [i] A TPanel) . név , ‘ program ‘ + IntToStr (k)) = 0, akkor
kezdődik

sor: = buttonindex mod (sorok) ;
oszlop: = buttonindex div (sorok) ;
ha hossz (ProgramNames [k – 1])> ; 0, akkor
kezdődik
(Form1 . Components [i] A TPanel) . balra: = alignx + sor * (buttonwidth + Xspace) ;
(Form1 . Components [i] A TPanel) . top: = yoffsetprograms + oszlop * (buttonheight + yspace) ;
(Form1 . Components [i] A TPanel) . szélesség: = buttonwidth ;
(Form1 . Components [i] A TPanel) . magasság: = buttonheight ;
(Form1 . összetevők [i] A TPanel) . caption: = Programnames [k – 1] ; / / Set gomb feliratát gombjai a program – meghatározza a program neve gombok
(Form1 . összetevők [i] A TPanel) . Bevelinner: = bvRaised ;
(Form1 . összetevők [i] A TPanel) . BevelOuter: = bvRaised ;
(Form1 . összetevők [i] A TPanel) . betűtípus . Méret: = Betűméret ;
inc (buttonindex) ;
vég
más
kezdődik
(Form1 . összetevők [i] A TPanel) . látható: = false ;
vég ;

inc (k) ;
vég ;
vég ;
vég ;

k: = 1 ;
buttonindex: = 0 ;
/ / Alignx: = (Form1 . clientWidth – (Labelrows * (labelwidth + labelresultsize + Xspace))) div 2 ;
/ / / / / / / Analogicaly a címkék – Hasonlóképpen , A címke
for i: = 0 Form1 . ComponentCount – 1-től
kezdődik
if (Form1 . Components [i] TLabel), akkor
kezdődik
ha comparetext ((Form1 . összetevők [i] A TLabel) . név , ‘ címke ‘ + IntToStr (k)) = 0, akkor
kezdődik

sor: = buttonindex mod (labelrows) ;
oszlop: = buttonindex div (labelrows) ;
ha hossz (LabelNames [k – 1])> ; 0, akkor / / ha hossza címke text> ; ; 0 – ha a leírás
kezdődik
(Form1 . Components [i] A TLabel) . balra: = alignx + sor * (labelwidth + labelresultsize + Xspace) ; / / Calculate X location
(Form1 . Components [i] A TLabel) . top: = yoffsetlabel + oszlop * (labelheight + yspace) ; / / Számítsuk ki a Y location
(Form1 . Components [i] A TLabel) . szélesség: = labelwidth ;
(Form1 . Components [i] A TLabel) . magasság: = labelheight ;
(Form1 . összetevők [i] A TLabel) . caption: = LabelNames [k – 1] ; / / / Hozzárendelés címke feliratok – fejlécek megfelelő címkék
(Form1 . összetevők [i] A TLabel) . betűtípus . szín: = clwhite ; / / Set alapértelmezett színe címke – beállítja az alapértelmezett színe címkék
ha a pos ( ‘ [ – % ] ‘ , LabelNames [k – 1])> ; 0, akkor (Form1 . összetevők [i] A TLabel) . betűtípus . szín: = clyellow ; / / Set színe fény mérése – mérésének szín megvilágítás
ha a pos ( ‘ [ % ] ‘ , LabelNames [k – 1])> ; 0, akkor (Form1 . összetevők [i] A TLabel) . betűtípus . szín: = felbérelt közönség ; / / Set színes mérés százalék – színe értéke kamat
ha a pos ( ‘ [C] ‘ , LabelNames [k – 1])> ; 0, akkor (Form1 . összetevők [i] A TLabel) . betűtípus . szín: = clwhite ; / / Set színe testmelegítő – színes hőmérsékleti értékek
(Form1 . összetevők [i] A TLabel) . betűtípus . Méret: = labelfontsize ; / / Set betűméretet címke – állítja be a betűméretet a szöveg címke
inc (buttonindex) ; / / Next látható címkén – címke mellett megjelenik
vég
más
kezdődik
(Form1 . összetevők [i] A TLabel) . látható: = false ; / / Elrejtése szövegcímkék nélkül – elrejtése nélküli címkéket textu
vég ;
inc (k) ; / / Next címke – következő címke
vég ;
vég ;
vég ;
update_status ; / / Frissítés panel az aktuális eszköz állapotát rönk – frissíti az állapotát a vezető a log fájlokat a szerver eHouse
vég ;
A végeredmény, ha az automatikus – konfigurálható és gomb elhelyezése a program, és távolítsa el elmondhatatlan elemek (ha nem szeretné, hogy a panel korlátozások miatt a hozzáférési jogát, vagy használja a kimenet) .
 A végső hatás az automatikus elosztása elemeknek a Form
Bővebben: Háztartási automatizációs – Controllers eHouse
Háztartási automatizációs eHouse Háztartási automatizációs Gyártó