Desenvolupament de software per panells de control per a sales de Windows Tablet – Formulari

Domòtica eHouse .
Crear el formulari principal (disseny de la pantalla de la tablet . Col · locat en el formulari principal panells 24 camps TPanel per a tot tipus de sortides digitals RM .
Aquests formaran els botons per apagar RoomManager (o elèctric) .
A més , el color dependrà de l'estat de la lectura .
Per això s'han utilitzat els botons estàndard o TButton tipus similar , perquè no tenen la possibilitat de canviar el color .
Els anomenem ” outputX ” on X és el nombre de sortida .
No necessiten ser desplegats , perquè ho farà automàticament , aquesta sol · licitud . Per a cada botó , la sortida ha de ser assignat al mateix esdeveniment (onClick) – output1Click .
Lloc en el formulari principal 24 camps de panells tipus TPanel per a tots els programes s'executin RM .
Aquests seran els botons per canviar el RoomManager actual (és a dir , ON / OFF dispositius elèctrics del grup amb un canvi en les entrades de mesurament dels llindars usats per a la regulació d'aquests . temperatura) .
Els anomenem ” programX ” on X és el número de la tecla .
De la mateixa manera , no hi ha necessitat de desplegar , perquè ho farà automàticament , aquesta sol · licitud .
Per a cada botó , el programa ha de ser assignat al mateix esdeveniment (onClick) – program1Click .
Al formulari principal de les etiquetes de text són 16 tipus TLabel per mostrar tots els resultats dels mesuraments de RoomManager (numerades Label1 a Label16) .
De la mateixa manera com en els casos anteriors, no cal desplegar .
Veure la forma final de la  formar per crear panell de sala de control
La inicialització de la forma:

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
procediment TForm1 . FormCreate (Sender: TObject) ;
var AlignX , buttonindex , fila , columna , k , i: integer ;
començar
GetComputerName ; / / Obtenir el nom de l'equip o panell – llegeix el
path: GetCurrentDir = () ; / / Obté el directori actual d'aplicació local trajectòria – llegeix el directori on el programa
path: = stringreplace (ruta , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Obté la ruta d'eHouse aplicació
RemotePath: = Ruta ; / / El mateix camí per remoteaccess d'inicialització de – al començament de la via traçada pel mateix accés remot
loadnames_rm ; / / Càrrega noms dels controladors ehouse1
init_heat_temperature_names ; / / Init noms HeatManager
readethernetdevs ; / / Carregar controladors ethernet noms eHouse
i: = 1 ;
mentre i < ; ParamCount = a / / realitzar argument de línia d'ordres – processa la línia d'ordres
començar
si pos ( ‘ / X: ‘ , minúscules (ParamStr (i))) = 1, llavors / / panell ample – amplada del panell
Form1 . Ample: = chk_int (stringreplace (ParamStr (i) , ‘ / X: ‘ , ‘ ‘ , [Rfignorecase])) ;
si pos ( ‘ / S: ‘ , minúscules (ParamStr (i))) = 1 then / / panell d'altura – alçada del panell
Form1 . alçada: = chk_int (stringreplace (ParamStr (i) , ‘ / S: ‘ , ‘ ‘ , [Rfignorecase])) ;
si pos ( ‘ / R: ‘ , minúscules (ParamStr (i))) = 1, llavors el nom / / dispositiu (RoomManager) – RoomManger nom
deviceindex: = RMDeviceIndexByName ((stringreplace (ParamStr (i) , ‘ / R: ‘ , ‘ ‘ , [Rfignorecase]))) ;
si pos ( ‘ / A: ‘ , minúscules (ParamStr (i))) = 1, llavors l'adreça / / dispositiu (RoomManager) – RoomManager direcció
deviceindex: = (get_index_rm (stringreplace (ParamStr (i) , ‘ / A: ‘ , ‘ ‘ , [Rfignorecase]))) ;
si pos ( ‘ / P: ‘ , minúscules (ParamStr (i))) = 1, llavors l'accés / / remot via – camí d'accés remot
RemotePath: = ((stringreplace (ParamStr (i) , ‘ / P: ‘ , ‘ ‘ , [Rfignorecase]))) ;
inc (i) ;
final ;
si Form1 . amplada < ; 100 llavors Form1 . amplada: = 800 ; / / Si els paràmetres incorrectes per la mida per defecte estableix – per defecte
si Form1 . alçària < ; 100 llavors Form1 . alçada: = 600 ;
devicestoupdatestatus: = IntToStr (rm [deviceindex] . ADRHA) + ‘ – ‘ + IntToStr (rm [deviceindex] . ADRL) ;
/ / Límit de la recerca de RoomManager estat / filtrar altres dispositius
/ / Cerca només dispositiu Pannel per la Utilització de limitació
/ / Data solament l'estat de la CPU seleccionada RoomManager vegades menys i eHouse servidor
outputbuttonnames (deviceindex) ; / / Inicialitzar botons i els noms de les etiquetes – botes , botons i etiquetes de text
Form1 . Llegenda: = ‘ eHouse Panell de control: ‘ + Rm [deviceindex] . devname ; / / Establir el títol de les principals formes de Nom RoomManager – encapçalat mostra el nom de la forma RoomManager
timer1 . Interval: = 3000 ; / Cíclic / Set tasca interval en mil · lisegons
timer1 . Habilitat: = true ; / / Start tasques automàtiques (actualització d'estat
k: = 1 ;
buttonindex: = 0 ; / / Botó de corrent (visible) índex de – el nombre actual de la (aparent)
fila: = 0 ; Botó / / actual a la fila – número de la clau actual en la línia actual
/ / Column: = 0 ;
AlignX: = (Form1 . clientWidth – (Files) * (buttonWidth + Xspace)) div 2 ; / / Centrar els botons del tauler – centrat blocs botons
per i: = 0 a Form1 . ComponentCount – 1 / / Output setup botó automàtic – automàticament configurar el botó Sortir
begin / / per a cada objecte en Form1 – per tots els elements de la Form1
if (Form1 . Components [i] és TPanel) llavors / / si l'objecte és TPanel (nostre botó) – si el TPanel tipus d'objecte (botó)
començar
si CompareText ((Form1 . components [i] com TPanel) . nom , ‘ sortida ‘ + IntToStr (k)) = 0 then / / si el nom CONSISTEIX (sortida)
començar
fila: = buttonindex mod (files) ; / / Càlcul de files i columnes d'índexs – calcula les coordenades de la columna i fila
columna: = buttonindex div (files) ;
si la longitud (OutputNames [k – 1])> ; 0 then / / Només mostra els botons ouput amb el nom – només mostra botons amb el nom
començar
(Form1 . Components [i] com TPanel) . esquerra: = AlignX fila + * (+ buttonWidth Xspace) ; / / Calcular l'eix X possition – calcula la seva posició en l'eix X
(Form1 . Components [i] com TPanel) . top: = + yoffsetouts columna * (buttonheight + yspace) ; / / Calcular el possition eix Y – calcula la seva posició en l'eix Y
(Form1 . Components [i] com TPanel) . amplada: = buttonWidth ; / / Set Botons Ample – Ample dels botons
(Form1 . Components [i] com TPanel) . alçada: = buttonheight ; / / Set Botons Alçada – La quantitat de botons
(Form1 . components [i] com TPanel) . Llegenda: = Outputnames [k – 1] ; / Botó / Set Llegenda – estableix el text del botó
(Form1 . components [i] com TPanel) . Bevelinner: = bvRaised ;
(Form1 . components [i] com TPanel) . BevelOuter: = bvRaised ;
(Form1 . components [i] com TPanel) . font . Mida: = mida del text ; / / Set Button Mida de la Font – estableix la mida de font per al botó
inc (buttonindex) ; / / Next botó visible – veure la següent
final
més
començar
(Form1 . components [i] com TPanel) . visibles: = False ; / / No = nom no mostren botó – eliminar les claus sense nom
final ;
inc (k) ; / / Botó Següent – botó següent
final ;
final ;
final ;
/ / / / / / / / / / / / Els mateixos botons per al programa de – De la mateixa manera per als botons per posar en marxa programes
buttonindex: = 0 ;
k: = 1 ;
per i: = 0 a Form1 . ComponentCount – 1 a
començar
if (Form1 . Components [i] és TPanel) llavors
començar
si CompareText ((Form1 . components [i] com TPanel) . nom , ‘ programa ‘ + IntToStr (k)) = 0 llavors
començar

fila: = buttonindex mod (files) ;
columna: = buttonindex div (files) ;
si la longitud (ProgramNames [k – 1])> ; 0 llavors
començar
(Form1 . Components [i] com TPanel) . esquerra: = AlignX fila + * (+ buttonWidth Xspace) ;
(Form1 . Components [i] com TPanel) . top: = + yoffsetprograms columna * (buttonheight + yspace) ;
(Form1 . Components [i] com TPanel) . amplada: = buttonWidth ;
(Form1 . Components [i] com TPanel) . alçada: = buttonheight ;
(Form1 . components [i] com TPanel) . Llegenda: = Programnames [k – 1] ; / / Definir botons Botó de títol per al programa de – estableix el nom dels botons de programa
(Form1 . components [i] com TPanel) . Bevelinner: = bvRaised ;
(Form1 . components [i] com TPanel) . BevelOuter: = bvRaised ;
(Form1 . components [i] com TPanel) . font . Mida: = mida del text ;
inc (buttonindex) ;
final
més
començar
(Form1 . components [i] com TPanel) . visibles: = False ;
final ;

inc (k) ;
final ;
final ;
final ;

k: = 1 ;
buttonindex: = 0 ;
/ / AlignX: = (Form1 . clientWidth – (Labelrows * (labelWidth + + labelresultsize Xspace))) div 2 ;
/ / / / / / / Analogicaly per etiquetes – De la mateixa manera , l'etiqueta
per i: = 0 a Form1 . ComponentCount – 1 a
començar
if (Form1 . Components [i] és TLabel) llavors
començar
si CompareText ((Form1 . components [i] com TLabel) . nom , ‘ etiqueta ‘ + IntToStr (k)) = 0 llavors
començar

fila: = buttonindex mod (labelrows) ;
columna: = buttonindex div (labelrows) ;
si la longitud (LabelNames [k – 1])> ; 0 then / / si la longitud del text label> ; ; 0 – si la descripció és
començar
(Form1 . Components [i] com TLabel) . esquerra: = AlignX fila + * (labelWidth + + labelresultsize Xspace) ; / / Calcular X ubicació
(Form1 . Components [i] com TLabel) . top: = + yoffsetlabel columna * (labelheight + yspace) ; / / Calcular la ubicació I
(Form1 . Components [i] com TLabel) . amplada: = labelWidth ;
(Form1 . Components [i] com TLabel) . alçada: = labelheight ;
(Form1 . components [i] com TLabel) . Llegenda: = LabelNames [k – 1] ; / / / Assignar títols d'etiqueta – encapçalats marcadors adequats
(Form1 . components [i] com TLabel) . font . color: = clWhite ; / / Establir per defecte de color per l'etiqueta – estableix el color predeterminat de les etiquetes
si pos ( ‘ [ – % ] ‘ , LabelNames [k – 1])> ; 0 llavors (Form1 . components [i] com TLabel) . font . color: = clyellow ; / / Establir color per mesura de la llum – per al mesurament del color d'il · luminació
si pos ( ‘ [ % ] ‘ , LabelNames [k – 1])> ; 0 llavors (Form1 . components [i] com TLabel) . font . color: = claque ; / / Establir les mesures de color per al percentatge – color per al valor d'interès
si pos ( ‘ [C] ‘ , LabelNames [k – 1])> ; 0 llavors (Form1 . components [i] com TLabel) . font . color: = clWhite ; / / Establir color per a control de la temperatura – per a valors de temperatura de color
(Form1 . components [i] com TLabel) . font . Mida: = labelfontsize ; / Font / Set mida de l'etiqueta – estableix la mida de font de l'etiqueta de text
inc (buttonindex) ; / / Etiqueta visible Següent – etiqueta apareix juntament
final
més
començar
(Form1 . components [i] com TLabel) . visibles: = False ; / / Amaga etiquetes de text sense – amagar etiquetes sense textures
final ;
inc (k) ; / / Etiqueta Següent – següent etiqueta
final ;
final ;
final ;
update_status ; / / Actualitzar el panell d'estat del dispositiu actual dels registres – actualitza l'estat del controlador dels arxius de registre del servidor eHouse
final ;
El resultat final després d'auto – configurat i col · locació dels botons pel programa i eliminar elements no explicades (si no volem que tinguin en el panell causa de les restriccions als drets d'accés o l'ús de la sortida) .
 L'efecte final de la distribució automàtica dels elements en el formulari
Llegir més: Domòtica – Controladors eHouse
Domòtica eHouse Home Automation Fabricant