Software Development vir Control Panels kamers vir Windows Tablet – Vorm

Home Automation eHouse .
Skep die belangrikste vorm (uitleg van die tablet skerm . Geplaas op die belangrikste vorm 24 velde TPanel panele vir alle vorme van digitale uitgange RM .
Dit sal die knoppies om te draai uit RoomManager (of elektriese) .
Daarbenewens , die kleur sal afhang van die toestand van die lees .
Om hierdie rede het ons gebruik die standaard knoppies of soortgelyke tipe TButton , want hulle het nie die moontlikheid om die kleur te verander .
Ons noem hulle ” outputX ” waar X die nommer is van die afvoer .
Ek hoef nie te ontplooi word , want dit sal dit outomaties doen , hierdie aansoek . Vir elke knoppie , die uitset moet toegeskryf word aan die dieselfde gebeurtenis (onClick) – output1Click .
Geplaas op die hoofvorm 24 velde TPanel tipe panele vir alle programme uit te voer RM .
Dit sal die knoppies vir die skakel van die huidige RoomManager (dws , op / af elektriese toestelle van die groep met 'n verandering in die meting van insette van die drempels wat gebruik word vir die regulering van sodanige . temperatuur) .
Ons noem hulle ” programX ” waar X die nommer is van die knoppie .
Soortgelyk , geen behoefte om in te sit , want dit sal dit outomaties doen , hierdie aansoek .
Vir elke knoppie , die program moet toegeskryf word aan die dieselfde gebeurtenis (onClick) – program1Click .
Op die belangrikste vorm van teks etikette is 16 tipes TLabel te vertoon al die resultate van die metings van RoomManager (genommer Label1 Label16) .
Net so as in die bogenoemde gevalle hoef nie te sit .
Kyk na die finale vorm vir die  vorm kamer beheer paneel te skep
Inisialisasie van die vorm:

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
prosedure TForm1 . FormCreate (Sender: TObject) ;
var alignx , buttonindex , ry , kolom , k , i: integer ;
begin
GetComputerName ; / / Kry die naam van die rekenaar of 'n paneel – lees die
pad: = getcurrentdir () ; / / Kry die huidige plaaslike pad aansoek directory – lees die gids waarin die program
pad: = stringreplace (pad , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Kry die pad van die aansoek eHouse
remotepath: = pad ; / / Die dieselfde pad vir remoteaccess vir inicialization – aan die begin van die pad vir die dieselfde afgeleë toegang gekarteer
loadnames_rm ; / / Laai kontroleerder name ehouse1
init_heat_temperature_names ; / / Init heatmanager name
readethernetdevs ; / / Laai controllers Ethernet eHouse name
i: = 1 ;
terwyl ek < ; = Paramcount / / command line argument te verrig – verwerk die command line
begin
indien pos ( ‘ / X: ‘ , onderkas (ParamStr (i))) = 1, dan is / / paneel breedte – breedte van die paneel
Form1 . Breedte: = chk_int (stringreplace (ParamStr (i) , ‘ / X: ‘ , ‘ ‘ , [Rfignorecase])) ;
indien pos ( ‘ / S: ‘ , onderkas (ParamStr (i))) = 1, dan is / / paneel hoogte – hoogte van die paneel
Form1 . hoogte: = chk_int (stringreplace (ParamStr (i) , ‘ / S: ‘ , ‘ ‘ , [Rfignorecase])) ;
indien pos ( ‘ / R: ‘ , onderkas (ParamStr (i))) = 1 / / apparaat naam (RoomManager) – RoomManger naam
deviceindex: = RMDeviceIndexByName ((stringreplace (ParamStr (i) , ‘ / R: ‘ , ‘ ‘ , [Rfignorecase]))) ;
indien pos ( ‘ / A: ‘ , onderkas (ParamStr (i))) = 1 / / toestel adres (RoomManager) – RoomManager adres
deviceindex: = (get_index_rm (stringreplace (ParamStr (i) , ‘ / A: ‘ , ‘ ‘ , [Rfignorecase]))) ;
indien pos ( ‘ / P: ‘ , onderkas (ParamStr (i))) = 1, dan is / / afgeleë toegang pad – afgeleë toegang pad
remotepath: = ((stringreplace (ParamStr (i) , ‘ / P: ‘ , ‘ ‘ , [Rfignorecase]))) ;
inc (i) ;
einde ;
indien Form1 . width < ; 100 dan Form1 . breedte: = 800 ; / / Indien verkeerde parameters vir die grootte stel default – verstek
indien Form1 . hoogte < ; 100 dan Form1 . hoogte: = 600 ;
devicestoupdatestatus: = IntToStr (rm [deviceindex] . Adrha) + ‘ – ‘ + IntToStr (rm [deviceindex] . adrl) ;
/ / Limit soek vir die huidige status RoomManager / filter uit ander toestelle
/ / Kyk vir enkel apparaat paneel vir beperking BENUTTING
/ / Gaan slegs die status van die geselekteerde RoomManager keer minder CPU en bediener eHouse
outputbuttonnames (deviceindex) ; / / Inisialiseer knoppies en etikette name – stewels , knoppies en teks etikette
Form1 . Onderskrif: = ‘ eHouse Control Panel: ‘ + Rm [deviceindex] . devname ; / / Stel opskrif ('caption') van die belangrikste vorme van RoomManager Naam – header toon die naam van die vorm RoomManager
timer1 . Interval: = 3000 ; / / Stel sikliese taak interval in millisekondes
timer1 . Aangeskakel: = true ; / / Begin outomatiese take (status update
K: = 1 ;
buttonindex: = 0 ; / / Huidige knoppie (sigbare) indeks – die huidige aantal van die (skynbare)
ry: = 0 ; / / Huidige knoppie in ry – aantal van die huidige sleutel in die huidige lyn
/ / Column: = 0 ;
alignx: = (Form1 . clientWidth – (Rye) * (buttonwidth + Xspace)) div 2 ; / / Center knoppies op paneel – sentrering blokke knoppies
i: = 0 tot Form1 . ComponentCount – 1 / / Output "knoppie outomatiese setup – outomaties instel op die stop knoppie
begin / / vir elke voorwerp op Form1 – vir al die elemente van die Form1
if (Form1 . Komponente [i] is TPanel) / / as die voorwerp is TPanel (ons "knoppie) – indien die voorwerp tipe TPanel (knoppie)
begin
indien comparetext ((Form1 . komponente [i] as TPanel) . naam , ‘ uitset ‘ + IntToStr (k)) = 0 dan / / indien die naam BESTAAN (uitset)
begin
ry: = buttonindex mod (rye) ; / / Bereken rye en kolomme indekse – bereken die koördinate van die kolom en ry
kolom: = buttonindex div (rye) ;
indien lengte (OutputNames [k – 1])> ; 0 dan / / toon slegs output knoppies met die naam – dui slegs die knoppies met die naam
begin
(Form1 . Komponente [i] as TPanel) . Kaartjies: = alignx + ry * (buttonwidth + Xspace) ; / / Bereken x as possition – bereken sy posisie in die X-as
(Form1 . Komponente [i] as TPanel) . Top: = yoffsetouts + kolom * (buttonheight + yspace) ; / / Bereken die Y-as possition – bereken sy posisie in die Y-as
(Form1 . Komponente [i] as TPanel) . breedte: = buttonwidth ; / / Stel Breedte Buttons – Breedte van die knoppies
(Form1 . Komponente [i] as TPanel) . hoogte: = buttonheight ; / / Stel Buttons Lengte – Die bedrag van die knoppies
(Form1 . komponente [i] as TPanel) . Onderskrif: = Outputnames [k – 1] ; / / Stel Button Onderskrif – stel die knoppie teks
(Form1 . komponente [i] as TPanel) . Bevelinner: = bvRaised ;
(Form1 . komponente [i] as TPanel) . BevelOuter: = bvRaised ;
(Form1 . komponente [i] as TPanel) . font . Grootte: = lettergrootte ; / / Stel Font Size Button – stel om die lettergrootte vir die knoppie
inc (buttonindex) ; / / Volgende knoppie sigbaar – sien die volgende
einde
anders
begin
(Form1 . komponente [i] as TPanel) . sigbaar: = false ; / / Geen naam = toon nie knoppie – verwyder sleutels sonder 'n naam
einde ;
inc (k) ; / / Volgende knoppie – NEXT knoppie
einde ;
einde ;
einde ;
/ / / / / / / / / / / / Dieselfde knoppies vir die program – Dieselfde geld vir die knoppies om programme te loods
buttonindex: = 0 ;
K: = 1 ;
i: = 0 tot Form1 . ComponentCount – 1 tot
begin
if (Form1 . Komponente [i] is TPanel), dan
begin
indien comparetext ((Form1 . komponente [i] as TPanel) . naam , ‘ program ‘ + IntToStr (k)) = 0 dan
begin

ry: = buttonindex mod (rye) ;
kolom: = buttonindex div (rye) ;
indien lengte (ProgramNames [k – 1])> ; 0 dan
begin
(Form1 . Komponente [i] as TPanel) . Kaartjies: = alignx + ry * (buttonwidth + Xspace) ;
(Form1 . Komponente [i] as TPanel) . Top: = yoffsetprograms + kolom * (buttonheight + yspace) ;
(Form1 . Komponente [i] as TPanel) . breedte: = buttonwidth ;
(Form1 . Komponente [i] as TPanel) . hoogte: = buttonheight ;
(Form1 . komponente [i] as TPanel) . Onderskrif: = Programnames [k – 1] ; / / Stel knoppie opskrif knoppies vir die program – stel die naam van die program knoppies
(Form1 . komponente [i] as TPanel) . Bevelinner: = bvRaised ;
(Form1 . komponente [i] as TPanel) . BevelOuter: = bvRaised ;
(Form1 . komponente [i] as TPanel) . font . Grootte: = lettergrootte ;
inc (buttonindex) ;
einde
anders
begin
(Form1 . komponente [i] as TPanel) . sigbaar: = false ;
einde ;

inc (k) ;
einde ;
einde ;
einde ;

K: = 1 ;
buttonindex: = 0 ;
/ / Alignx: = (Form1 . clientWidth – (Labelrows * (labelwidth + labelresultsize + Xspace))) div 2 ;
/ / / / / / / Analogicaly vir etikette – Soortgelyk , die etiket
i: = 0 tot Form1 . ComponentCount – 1 tot
begin
if (Form1 . Komponente [i] is TLabel), dan
begin
indien comparetext ((Form1 . komponente [i] as TLabel) . naam , ‘ etiket ‘ + IntToStr (k)) = 0 dan
begin

ry: = buttonindex mod (labelrows) ;
kolom: = buttonindex div (labelrows) ;
indien lengte (LabelNames [k – 1])> ; 0 dan / / as die lengte van die etiket teks> ; ; 0 – indien die beskrywing
begin
(Form1 . Komponente [i] as TLabel) . Kaartjies: = alignx + ry * (labelwidth + labelresultsize + Xspace) ; / / Bereken X plek
(Form1 . Komponente [i] as TLabel) . top: = yoffsetlabel + kolom * (labelheight + yspace) ; / / Bereken die Y-plek
(Form1 . Komponente [i] as TLabel) . breedte: = labelwidth ;
(Form1 . Komponente [i] as TLabel) . hoogte: = labelheight ;
(Form1 . komponente [i] as TLabel) . Onderskrif: = LabelNames [k – 1] ; / / / Ken etiket onderskrifte – headers geskikte byskrifte
(Form1 . komponente [i] as TLabel) . font . kleur: = clwhite ; / / Stel standaard kleur vir etiket – stel die standaard kleur vir etikette
indien pos ( ‘ [ – % ] ‘ , LabelNames [k – 1])> ; 0 dan (Form1 . komponente [i] as TLabel) . font . kleur: = clyellow ; / / Stel kleur vir ligte meting – vir die meting van kleur beligting
indien pos ( ‘ [ % ] ‘ , LabelNames [k – 1])> ; 0 dan (Form1 . komponente [i] as TLabel) . font . kleur: = Claque ; / / Stel kleur meting vir% – kleur vir die waarde van die belang
indien pos ( ‘ [C] ‘ , LabelNames [k – 1])> ; 0 dan (Form1 . komponente [i] as TLabel) . font . kleur: = clwhite ; / / Stel kleur vir temperatuur – vir kleurtemperatuur waardes
(Form1 . komponente [i] as TLabel) . font . Grootte: = labelfontsize ; / / Set font grootte van die etiket – stel die font grootte vir die teks van 'n etiket
inc (buttonindex) ; / / Volgende sigbare etiket – etiket verskyn langs
einde
anders
begin
(Form1 . komponente [i] as TLabel) . sigbaar: = false ; / / Verberg teks etikette sonder – verberg etikette sonder textu
einde ;
inc (k) ; / / Volgende etiket – volgende etiket
einde ;
einde ;
einde ;
update_status ; / / Update paneel vir die huidige toestel status van logs – updates die status van die bestuurder van die log lêers van die bediener eHouse
einde ;
Die eindresultaat na die motor – ingestel en die knoppie plasing deur die program en verwyder ongekende elemente (indien jy nie wil hê dat hulle op die paneel te hê as gevolg van beperkings op die regte van toegang of gebruik van die uitset) .
 Die finale effek van die outomatiese verspreiding van elemente op die vorm
Lees meer: Home Automation – Controllers eHouse
Home Automation eHouse Home Automation vervaardiger