Dezvoltare Software pentru Control Panels camere pentru Windows Tablet – Formă

Home Automation eHouse .
Creați formularul principal (structura din ecranul tabletei . Amplasat pe formularul principal de 24 de domenii, panouri TPanel pentru toate tipurile de ieșiri digitale RM .
Acestea vor forma butoanele pentru a dovedi RoomManager (sau electric) .
În plus, , culoarea va depinde de starea de citit .
Din acest motiv, am folosit butoanele standard sau TButton tip similar , deoarece nu au posibilitatea de a schimba culoarea .
Noi le numim ” outputX ” unde X este numărul de ieșire .
Nu am nevoie să fie dislocate , deoarece o va face în mod automat , această aplicație . Pentru fiecare buton , de ieșire trebuie să fie alocate la același eveniment (onClick) – output1Click .
Amplasat pe formularul principal de 24 de domenii, panouri tip TPanel pentru toate programele să ruleze RM .
Acestea vor forma butoane pentru comutarea RoomManager curent (de exemplu , on / off dispozitive electrice de grup cu o schimbare din intrările de măsurare a pragurilor folosite pentru reglementarea astfel de . temperatură) .
Noi le numim ” programX ” unde X este numărul de buton .
Asemănător , nu este nevoie de a implementa , deoarece o va face în mod automat , această aplicație .
Pentru fiecare buton , programul ar trebui să se atribuie același eveniment (onClick) – program1Click .
Pe principala formă de etichete text sunt 16 tipuri TLabel pentru a afișa toate rezultatele măsurătorilor de RoomManager (numerotate de la Label1 Label16) .
La fel ca în cazurile de mai sus nu trebuie să implementeze .
Vezi forma finala pentru  formular pentru a crea panoul de control cameră
Initializarea de forma:

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
Procedura de TForm1 . FormCreate (Expeditor: TObject) ;
var alignx , buttonindex , rând , coloană , K , I: integer ;
începe
GetComputerName ; / / Ia numele computerului sau panoul – citește
Calea: = getcurrentdir () ; / / Ia locală curentă directorul aplicației calea – citește directorul în care programul
Calea: = stringreplace (calea , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Ia calea de eHouse aplicare
remotepath: = calea de ; / / Aceeași cale de remoteaccess pentru inicialization – la începutul calea trasat pentru accesul de la distanță același
loadnames_rm ; Nume / / încărcare controler ehouse1
init_heat_temperature_names ; / / Init HeatManager nume
readethernetdevs ; / / De încărcare controlere ethernet nume eHouse
I: = 1 ;
în timp ce i < ; = Paramcount la / / efectua linie de argumentare de comandă – procesează linia de comandă
începe
în cazul în care pos ( ‘ / X: ‘ , litere mici (ParamStr (i))) = 1, atunci / / Panou lățime – lățimea panoului
Form1 . Lățime: = chk_int (stringreplace (ParamStr (i) , ‘ / X: ‘ , ‘ ‘ , [Rfignorecase])) ;
în cazul în care pos ( ‘ / S: ‘ , litere mici (ParamStr (i))) = 1, atunci / / panoul de înălțime – înălțimea panoului
Form1 . Înălțime: = chk_int (stringreplace (ParamStr (i) , ‘ / S: ‘ , ‘ ‘ , [Rfignorecase])) ;
în cazul în care pos ( ‘ / R: ‘ , litere mici (ParamStr (i))) = 1, atunci numele / / dispozitiv (RoomManager) – RoomManger nume
deviceindex: = RMDeviceIndexByName ((stringreplace (ParamStr (i) , ‘ / R: ‘ , ‘ ‘ , [Rfignorecase]))) ;
în cazul în care pos ( ‘ / A: ‘ , litere mici (ParamStr (i))) = 1, atunci adresa / / dispozitiv (RoomManager) – RoomManager adresa
deviceindex: = (get_index_rm (stringreplace (ParamStr (i) , ‘ / A: ‘ , ‘ ‘ , [Rfignorecase]))) ;
în cazul în care pos ( ‘ / P: ‘ , litere mici (ParamStr (i))) = 1, atunci / / calea de acces la distanță – acces la distanță cale
remotepath: = ((stringreplace (ParamStr (i) , ‘ / P: ‘ , ‘ ‘ , [Rfignorecase]))) ;
inc (i) ;
capăt ;
în cazul în care Form1 . lățimea < ; 100, apoi Form1 . Lățime: 800 = ; / / În cazul în care parametrii de greșite pentru dimensiunea implicită stabilește – implicite
în cazul în care Form1 . Înălțimea < ; 100, apoi Form1 . inaltime: 600 = ;
devicestoupdatestatus: = IntToStr (RM [deviceindex] . Adrha) + ‘ – ‘ + IntToStr (rm [deviceindex] . adrl) ;
/ / Limita căutarea pentru RoomManager starea curentă / filtra alte dispozitive
/ / Verificați pentru un singur dispozitiv pentru panouri UTILIZAREA limitarea
/ / Verifica numai starea procesorului selectat RoomManager de ori mai puțin și eHouse serverul
outputbuttonnames (deviceindex) ; / / Initializeaza butoane și numele etichete – ghete , butoane și etichete de text
Form1 . legendă: = ‘ eHouse Panou de control: ‘ + Rm [deviceindex] . devname ; / / Set caption dintre formele principale de Nume RoomManager – antet arată numele RoomManager formularului
timer1 . Intervalul: = 3000 ; / / Set de activitate ciclică în interval de milisecunde
timer1 . Activat: = true ; / / Start sarcini automate (actualizare a stării
K: = 1 ;
buttonindex: = 0 ; / / Curent butonul (vizibil) indicele de – numărul curent de (aparent)
rând: = 0 ; Buton / / curent în rândul – Numărul de cheie curent în linia curentă
/ / Coloana: = 0 ;
alignx: = (Form1 . clientWidth – (Rânduri) * (buttonwidth + Xspace)) div 2 ; / / Centrul de butoanele de pe panoul – Butoane de centrare blocuri
pentru i: = 0 la Form1 . ComponentCount – 1 / / Output configurarea automată a butonului – configura automat butonul Exit
începe / / pentru fiecare obiect de pe Form1 – pentru toate elementele de Form1
în cazul în care (Form1 . Componente [i] este TPanel) atunci / / dacă obiectul este TPanel (butonul nostru) – dacă tipul de TPanel obiect (buton)
începe
în cazul în care comparetext ((Form1 . componente [i] ca TPanel) . nume , ‘ producție ‘ + IntToStr (k)) = 0, atunci / / dacă numele constau (de ieșire)
începe
rând: = buttonindex mod (rânduri) ; / / Se calculează rânduri și coloane indici – calculează coordonatele coloană și rând
coloana: = buttonindex div (rânduri) ;
dacă lungimea (OutputNames [K – 1])> ; 0 atunci / / prezinta doar butoanele Ouput cu numele – prezinta doar butoanele cu numele
începe
(Form1 . Componente [i] ca TPanel) . stânga: = alignx + rând * (buttonwidth + Xspace) ; / / Calculate pe axa X possition – calculează poziția sa în axa X
(Form1 . Componente [i] ca TPanel) . top: = yoffsetouts + coloana * (buttonheight + yspace) ; / / Se calculează possition axa Y – calculează poziția sa în axa Y
(Form1 . Componente [i] ca TPanel) . Lățime: = buttonwidth ; / / Set Butoane Latime – Latimea dintre butoane
(Form1 . Componente [i] ca TPanel) . Înălțimea: = buttonheight ; / / Set Butoane Inaltime – Suma de butoane
(Form1 . componente [i] ca TPanel) . legendă: = Outputnames [K – 1] ; / / Set Buton Legendă – stabilește textul butonului
(Form1 . componente [i] ca TPanel) . Bevelinner: = bvRaised ;
(Form1 . componente [i] ca TPanel) . BevelOuter: = bvRaised ;
(Form1 . componente [i] ca TPanel) . font . Dimensiune: = fontsize ; / / Set Dimensiune buton font – stabilește dimensiunea fontului pentru butonul
Inc (buttonindex) ; / / Urmatoarea buton vizibil – a se vedea următorul
capăt
altfel
începe
(Form1 . componente [i] ca TPanel) . vizibile: = false ; / / Nu = nume nu apar pe butonul – eliminarea chei fără un nume de
capăt ;
inc (k) ; / / Urmatoarea butonul – următor butonul
capăt ;
capăt ;
capăt ;
/ / / / / / / / / / / / Aceleași butoane pentru programul de – În mod similar pentru butoanele pentru a lansa programe
buttonindex: = 0 ;
K: = 1 ;
pentru i: = 0 la Form1 . ComponentCount – De la 1 la
începe
în cazul în care (Form1 . Componente [i] este TPanel), apoi
începe
în cazul în care comparetext ((Form1 . componente [i] ca TPanel) . nume , ‘ program ‘ + IntToStr (k)) = 0, atunci
începe

rând: = buttonindex mod (rânduri) ;
coloana: = buttonindex div (rânduri) ;
dacă lungimea (ProgramNames [K – 1])> ; 0 atunci
începe
(Form1 . Componente [i] ca TPanel) . stânga: = alignx + rând * (buttonwidth + Xspace) ;
(Form1 . Componente [i] ca TPanel) . top: = yoffsetprograms + coloana * (buttonheight + yspace) ;
(Form1 . Componente [i] ca TPanel) . Lățime: = buttonwidth ;
(Form1 . Componente [i] ca TPanel) . Înălțimea: = buttonheight ;
(Form1 . componente [i] ca TPanel) . legendă: = Programnames [K – 1] ; Butoane / / Set legendă buton pentru programul de – stabilește numele butoanelor de program
(Form1 . componente [i] ca TPanel) . Bevelinner: = bvRaised ;
(Form1 . componente [i] ca TPanel) . BevelOuter: = bvRaised ;
(Form1 . componente [i] ca TPanel) . font . Dimensiune: = fontsize ;
Inc (buttonindex) ;
capăt
altfel
începe
(Form1 . componente [i] ca TPanel) . vizibile: = false ;
capăt ;

inc (k) ;
capăt ;
capăt ;
capăt ;

K: = 1 ;
buttonindex: = 0 ;
/ / Alignx: = (Form1 . clientWidth – (Labelrows * (labelwidth + + labelresultsize Xspace))) div 2 ;
/ / / / / / / Analogicaly pentru etichete – Asemănător , etichetă
pentru i: = 0 la Form1 . ComponentCount – De la 1 la
începe
în cazul în care (Form1 . Componente [i] este TLabel), atunci
începe
în cazul în care comparetext ((Form1 . componente [i] ca TLabel) . nume , ‘ etichetă ‘ + IntToStr (k)) = 0, atunci
începe

rând: = buttonindex mod (labelrows) ;
coloana: = buttonindex div (labelrows) ;
dacă lungimea (LabelNames [K – 1])> ; 0 atunci / / dacă lungimea textului etichetei> ; ; 0 – în cazul în care este descrierea
începe
(Form1 . Componente [i] ca TLabel) . stânga: = alignx + rând * (labelwidth + + labelresultsize Xspace) ; / / Calculate X locație
(Form1 . Componente [i] ca TLabel) . top: = yoffsetlabel + coloana * (labelheight + yspace) ; / / Se calculează locația Y
(Form1 . Componente [i] ca TLabel) . Lățime: = labelwidth ;
(Form1 . Componente [i] ca TLabel) . Înălțimea: = labelheight ;
(Form1 . componente [i] ca TLabel) . legendă: = LabelNames [K – 1] ; / / / Alocare legende etichete – etichete antet adecvate
(Form1 . componente [i] ca TLabel) . font . Culoare: = clwhite ; Culoarea implicită / / Set pentru etichetă – setează culoarea implicită pentru etichete
în cazul în care pos ( ‘ [ – % ] ‘ , LabelNames [K – 1])> ; 0 atunci (Form1 . componente [i] ca TLabel) . font . Culoare: = clyellow ; Culoare / / Set pentru măsurare ușoară – pentru măsurarea dispozitivelor de iluminare de culoare
în cazul în care pos ( ‘ [ % ] ‘ , LabelNames [K – 1])> ; 0 atunci (Form1 . componente [i] ca TLabel) . font . Culoare: = Claque ; De măsurare a culorilor / / Set pentru sut – culoare pentru valoarea dobânzilor
în cazul în care pos ( ‘ [C] ‘ , LabelNames [K – 1])> ; 0 atunci (Form1 . componente [i] ca TLabel) . font . Culoare: = clwhite ; / / Set de culoare pentru gestionarea temperaturii – pentru valori de temperatură de culoare
(Form1 . componente [i] ca TLabel) . font . Dimensiune: = labelfontsize ; / Dimensiunea fontului / Set pentru etichetă – stabilește dimensiunea fontului pentru textul etichetei
Inc (buttonindex) ; / / Urmatoarea vizibil etichetă – etichetă apare lângă
capăt
altfel
începe
(Form1 . componente [i] ca TLabel) . vizibile: = false ; / / Ascundere etichete text, fără a – ascunde etichetele fără textu
capăt ;
inc (k) ; / / Urmatoarea etichetă – următor etichetă
capăt ;
capăt ;
capăt ;
update_status ; / / Update Panou pentru starea dispozitivului curent din busteni – actualizări statutul de conducător auto a fișierelor jurnal de eHouse serverul
capăt ;
Rezultatul final, după Auto – configurat și de plasare butonul de program și elimina elementele de nespus (dacă nu doriți ca acestea să aibă pe panoul din cauza restricțiilor cu privire la drepturile de acces sau de utilizare a producției) .
 Efectul final al distribuției automate de elemente în Forma
Citește mai mult: Home Automation – Controlere eHouse
Home Automation eHouse Home Automation Producator