Software Development voor Inbraakcentrales kamers voor Windows Tablet – Vorm

Home Automation eHouse .
Maak de belangrijkste vorm (lay-out van de tablet-scherm . Geplaatst op de belangrijkste formulier 24 velden TPanel panelen voor alle soorten digitale uitgangen RM .
Deze vormen de knoppen blijken RoomManager (of elektrisch) .
Bovendien , de kleur zal afhangen van de toestand van het uitgelezen .
Om deze reden hebben we de standaard knoppen of een soortgelijk type TButton , omdat zij niet de mogelijkheid om de kleur .
We noemen ze ” outputX ” waarbij X het aantal uitvoerbits .
I niet moeten worden ingezet , want het zal automatisch doen , deze toepassing . Voor elke knop , de uitgang moet worden toegewezen aan dezelfde gebeurtenis (onClick) – output1Click .
Geplaatst op de belangrijkste formulier 24 velden TPanel soort panelen voor alle programma's te draaien RM .
Deze vormen de knoppen voor het schakelen van de huidige RoomManager (dwz , on / off elektrische apparaten van de groep met een verandering in de meetingangen van de drempels voor het regelen van dergelijke . temperatuur) .
We noemen ze ” programX ” waarbij X het nummer van de toets .
Evenzo , hoeft te implementeren , want het zal automatisch doen , deze toepassing .
Voor elke knop , het programma moet worden toegewezen aan dezelfde gebeurtenis (onClick) – program1Click .
Op de belangrijkste vorm van tekst labels zijn 16 soorten TLabel om alle resultaten van de metingen van RoomManager weer te geven (genummerd Label1 te Label16) .
Evenals in bovenstaande gevallen hoeft implementeren .
Bekijk de uiteindelijke vorm voor de  vormen om ruimte bedieningspaneel te creƫren
Initialisatie van de vorm:

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
procedure TForm1 . FormCreate (Sender: TObject) ;
var alignx , buttonindex , rij , kolom , k , i: integer ;
beginnen
GetComputerName ; / / Haal de naam van de computer of paneel – leest de
pad: = getcurrentdir () ; / / Haal de huidige lokale pad toepassingsmappartitie – leest de directory waarin het programma
pad: = stringreplace (pad , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Haal pad van de toepassing eHouse
remotepath: = pad ; / / Hetzelfde pad voor RemoteAccess voor inicialization – aan het begin van het pad toegewezen voor dezelfde RAS
loadnames_rm ; / / Load controller namen ehouse1
init_heat_temperature_names ; / / Init HeatManager namen
readethernetdevs ; / / Load controllers ethernet eHouse namen
i: = 1 ;
terwijl ik < ; = Paramcount naar / / uit te voeren opdrachtregelargument – verwerkt de opdrachtregel
beginnen
indien pos ( ‘ / X: ‘ , kleine letters (ParamStr (i))) = 1 dan / / paneelbreedte – breedte van het paneel
Form1 . Breedte: = chk_int (stringreplace (ParamStr (i) , ‘ / X: ‘ , ‘ ‘ , [Rfignorecase])) ;
indien pos ( ‘ / S: ‘ , kleine letters (ParamStr (i))) = 1 dan / / paneelhoogte – hoogte van het paneel
Form1 . hoogte: = chk_int (stringreplace (ParamStr (i) , ‘ / S: ‘ , ‘ ‘ , [Rfignorecase])) ;
indien pos ( ‘ / R: ‘ , kleine letters (ParamStr (i))) = 1 dan / / naam van het apparaat (RoomManager) – RoomManger naam
deviceindex: = RMDeviceIndexByName ((stringreplace (ParamStr (i) , ‘ / R: ‘ , ‘ ‘ , [Rfignorecase]))) ;
indien pos ( ‘ / A: ‘ , kleine letters (ParamStr (i))) = 1 dan / / adres van het apparaat (RoomManager) – RoomManager adres
deviceindex: = (get_index_rm (stringreplace (ParamStr (i) , ‘ / A: ‘ , ‘ ‘ , [Rfignorecase]))) ;
indien pos ( ‘ / P: ‘ , kleine letters (ParamStr (i))) = 1 dan / / remote access path – toegang op afstand pad
remotepath: = ((stringreplace (ParamStr (i) , ‘ / P: ‘ , ‘ ‘ , [Rfignorecase]))) ;
inc (i) ;
einde ;
indien Form1 . breedte < ; 100 dan Form1 . breedte: = 800 ; / / Als de verkeerde parameters voor size zet standaard – defaults
indien Form1 . hoogte < ; 100 dan Form1 . hoogte: = 600 ;
devicestoupdatestatus: = IntToStr (rm [deviceindex] . Adrha) + ‘ – ‘ + IntToStr (rm [deviceindex] . adrl) ;
/ / Limit op zoek naar de huidige status RoomManager / wegfilteren andere apparaten
/ / Controleer of er een apparaat pannel tot beperking GEBRUIK
/ / Controleer alleen de status van de geselecteerde RoomManager keer minder CPU en server eHouse
outputbuttonnames (deviceindex) ; / / Initialiseer knoppen en labels namen – laarzen , knoppen en tekstlabels
Form1 . bijschrift: = ‘ eHouse Control Panel: ‘ + Rm [deviceindex] . devname ; / / Set bijschrift van de belangrijkste vormen van RoomManager Naam – header toont de naam van het formulier RoomManager
Timer1 . Interval: = 3000 ; / / Set cyclische taak interval in milliseconden
Timer1 . Ingeschakeld: = true ; / / Start de automatische taken (status update
k: = 1 ;
buttonindex: = 0 ; / / Huidige knop (zichtbaar) index – het huidige nummer van de (schijnbare)
rij: = 0 ; / / Knop Huidige in rij – nummer van de huidige sleutel in de huidige regel
/ / Column: = 0 ;
alignx: = (Form1 . clientWidth – (Rijen) * (buttonwidth + Xspace)) div 2 ; / / Centrum-knoppen op paneel – centreren blokken knoppen
voor i: = 0 tot Form1 . ComponentCount – 1 / / Output-knop automatische instelling – automatisch configureren op de knop Afsluiten
begin / / voor elk object op Form1 – voor alle elementen van de Form1
if (Form1 . Componenten [i] is TPanel) dan / / als het object is TPanel (onze knop) – als het object-type TPanel (knop)
beginnen
indien comparetext ((Form1 . componenten [i] als TPanel) . naam , ‘ uitgang ‘ + IntToStr (k)) = 0 dan / / als de naam BESTAAT (output)
beginnen
rij: = buttonindex mod (rijen) ; / / Bereken rijen en kolommen indexen – berekent de coƶrdinaten van de kolom en rij
kolom: = buttonindex div (rijen) ;
als lengte (OutputNames [k – 1])> ; 0, dan / / Alleen toont uitgang knoppen met de naam – toont alleen knoppen met de naam
beginnen
(Form1 . Componenten [i] als TPanel) . links: = alignx + rij * (buttonwidth + Xspace) ; / / Bereken X-as possition – berekent zijn positie in de X-as
(Form1 . Componenten [i] als TPanel) . top: = yoffsetouts + kolom * (buttonheight + yspace) ; / / Bereken de Y-as possition – berekent zijn positie in de Y-as
(Form1 . Componenten [i] als TPanel) . breedte: = buttonwidth ; / / Breedte van knoppen – Breedte van de knoppen
(Form1 . Componenten [i] als TPanel) . hoogte: = buttonheight ; / / Set knoppen Lengte – Het aantal knoppen
(Form1 . componenten [i] als TPanel) . bijschrift: = Outputnames [k – 1] ; / / Set knop Caption – zet de knop tekst
(Form1 . componenten [i] als TPanel) . Bevelinner: = bvRaised ;
(Form1 . componenten [i] als TPanel) . BevelOuter: = bvRaised ;
(Form1 . componenten [i] als TPanel) . doopvont . Grootte: = lettergrootte ; / / Set Tekengrootte Button – stelt de lettergrootte voor de knop
inc (buttonindex) ; / / Volgende knop zichtbaar – zie de volgende
einde
anders
beginnen
(Form1 . componenten [i] als TPanel) . zichtbaar: = false ; / / Geen naam = vertonen geen knop – verwijder de sleutels zonder naam
einde ;
inc (k) ; / / Knop Volgende – volgende knop
einde ;
einde ;
einde ;
/ / / / / / / / / / / / Deze toetsen voor programma – Hetzelfde geldt voor de knoppen om programma's te starten
buttonindex: = 0 ;
k: = 1 ;
voor i: = 0 tot Form1 . ComponentCount – 1 tot
beginnen
if (Form1 . Componenten [i] is TPanel), dan
beginnen
indien comparetext ((Form1 . componenten [i] als TPanel) . naam , ‘ programma ‘ + IntToStr (k)) = 0 dan
beginnen

rij: = buttonindex mod (rijen) ;
kolom: = buttonindex div (rijen) ;
als lengte (ProgramNames [k – 1])> ; 0 dan
beginnen
(Form1 . Componenten [i] als TPanel) . links: = alignx + rij * (buttonwidth + Xspace) ;
(Form1 . Componenten [i] als TPanel) . top: = yoffsetprograms + kolom * (buttonheight + yspace) ;
(Form1 . Componenten [i] als TPanel) . breedte: = buttonwidth ;
(Form1 . Componenten [i] als TPanel) . hoogte: = buttonheight ;
(Form1 . componenten [i] als TPanel) . bijschrift: = Programnames [k – 1] ; / / Set opschrift van de knop toetsen voor programma – wordt de naam van het programma buttons
(Form1 . componenten [i] als TPanel) . Bevelinner: = bvRaised ;
(Form1 . componenten [i] als TPanel) . BevelOuter: = bvRaised ;
(Form1 . componenten [i] als TPanel) . doopvont . Grootte: = lettergrootte ;
inc (buttonindex) ;
einde
anders
beginnen
(Form1 . componenten [i] als TPanel) . zichtbaar: = false ;
einde ;

inc (k) ;
einde ;
einde ;
einde ;

k: = 1 ;
buttonindex: = 0 ;
/ / Alignx: = (Form1 . clientWidth – (Labelrows * (labelwidth + labelresultsize + Xspace))) div 2 ;
/ / / / / / / Analogicaly voor Etiketten – Evenzo , het etiket
voor i: = 0 tot Form1 . ComponentCount – 1 tot
beginnen
if (Form1 . Componenten [i] is TLabel), dan
beginnen
indien comparetext ((Form1 . componenten [i] als TLabel) . naam , ‘ label ‘ + IntToStr (k)) = 0 dan
beginnen

rij: = buttonindex mod (labelrows) ;
kolom: = buttonindex div (labelrows) ;
als lengte (LabelNames [k – 1])> ; 0, dan / / als de lengte van de label tekst> ; ; 0 – Als de beschrijving
beginnen
(Form1 . Componenten [i] als TLabel) . links: = alignx + rij * (labelwidth + labelresultsize + Xspace) ; / / Bereken X locatie
(Form1 . Componenten [i] als TLabel) . top: = yoffsetlabel + kolom * (labelheight + yspace) ; / / Bereken de Y-locatie
(Form1 . Componenten [i] als TLabel) . breedte: = labelwidth ;
(Form1 . Componenten [i] als TLabel) . hoogte: = labelheight ;
(Form1 . componenten [i] als TLabel) . bijschrift: = LabelNames [k – 1] ; / / / Wijs label bijschriften – headers geschikte etiketten
(Form1 . componenten [i] als TLabel) . doopvont . kleur: = clwhite ; / / Set standaard kleur voor label – stelt de standaardkleur voor etiketten
indien pos ( ‘ [ – % ] ‘ , LabelNames [k – 1])> ; 0 dan (Form1 . componenten [i] als TLabel) . doopvont . kleur: = clyellow ; / / Set kleur voor lichtmeting – voor het meten van kleurenverlichting
indien pos ( ‘ [ % ] ‘ , LabelNames [k – 1])> ; 0 dan (Form1 . componenten [i] als TLabel) . doopvont . kleur: = Claque ; / / Set kleurmeting voor percentage – kleur voor de waarde van interest
indien pos ( ‘ [C] ‘ , LabelNames [k – 1])> ; 0 dan (Form1 . componenten [i] als TLabel) . doopvont . kleur: = clwhite ; / / Set kleur voor temperatuurbeheer – voor kleur temperatuurwaarden
(Form1 . componenten [i] als TLabel) . doopvont . Grootte: = labelfontsize ; / / Set lettergrootte voor het label – stelt de lettergrootte voor de tekst label
inc (buttonindex) ; / / Volgende zichtbaar label – label weergegeven naast
einde
anders
beginnen
(Form1 . componenten [i] als TLabel) . zichtbaar: = false ; / / Verberg tekst etiketten zonder – verberg etiketten zonder textu
einde ;
inc (k) ; / / Volgende label – volgende label
einde ;
einde ;
einde ;
update_status ; / / Update paneel voor de huidige status van het apparaat uit boomstammen – updates van de status van de bestuurder van de logbestanden van de server eHouse
einde ;
Het eindresultaat na het automatisch – geconfigureerd en geplaatste knoppen door het programma en verwijder onnoemelijke elementen (als je niet wilt dat ze op het paneel hebben als gevolg van de beperkingen op het recht van toegang of van de output te gebruiken) .
 Het uiteindelijke effect van de automatische verdeling van elementen op het formulier
Lees meer: Home Automation – Controllers eHouse
Home Automation eHouse Home Automation Fabrikant