Software Kontrol Panel gelak garapena Windows Tablet – Formularioa

Home Automation eHouse .
Sortu forma nagusia (tablet pantaila diseinua . Formularioa nagusia 24 eremu TPanel panelak, irteera digital RM mota guztietako kokatuta .
Hauek botoiak osatuko dute buelta RoomManager (edo elektrikoak) .
Horrez gain , kolorea irakurri out of egoera araberakoa izango da .
Hori dela eta, estandarra-botoiak edo antzeko mota TButton erabiltzen dugu , kolore aldatzeko aukera izan ez dutelako .
Horiek deitzen diogu ” outputX ” non X irteera kopurua da .
Ez dut behar zabaldutako , egin baitu automatikoki , Aplikazio hau . Botoi bakoitzak , irteera gertaera bera (OnClick) behar da esleitutako – output1Click .
Kokatutako formularioa nagusia TPanel 24 eremu mota panelak programa guztiak RM exekutatu .
Hauek botoiak osatuko RoomManager uneko (hau da, aldatzeko , / taldearen gailu elektrikoen off on, atalase inputak neurtzea aldaketa bat izan da, hala nola arautzen erabiltzen . tenperatura) .
Horiek deitzen diogu ” programX ” non X botoia kopurua da .
Era berean , beharrik gabe hedatzen , egin baitu automatikoki , Aplikazio hau .
Botoi bakoitzak , programa behar esleitutako gertaera bera (OnClick) – program1Click .
Testu etiketak forma nagusiak dira 16-mota TLabel RoomManager neurketen emaitzak erakutsi (numbered Label1 Label16) .
Era berean, aurreko kasuetan ez behar zabaldu .
Ikusi azken inprimakia  osatzeko gela kontrol panel bat sortu
Inprimaki hasieratzean:

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
prozedura TForm1 . FormCreate (Sender: TObject) ;
var alignx , buttonindex , errenkada , zutabe , k , i: osokoa ;
hasiko
GetComputerName ; / / Talde ordenagailua edo panel izena – irakurtzen
bidea: = getcurrentdir () ; / / Talde uneko tokiko bidea aplikazio direktorioa – direktorioa irakurtzen duen programa
bidea: = stringreplace (bidea , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Talde aplikazio eHouse bidea
remotepath: = bidea ; / / Inicialization for remoteaccess bidea bera – bidearen hasieran urruneko sarbidea mapatzen
loadnames_rm ; / / Load controller izenak ehouse1
init_heat_temperature_names ; / / Init heatmanager izenak
readethernetdevs ; / / Load kontrolagailu ethernet eHouse izenak
i: = 1 ;
i, berriz, < ; = / Paramcount / komando-lerroko argumentu bat burutzeko – komando-lerroa prozesatzen
hasiko
pos badu ( ‘ / X: ‘ , minuskula (ParamStr (i))) = 1 gero / / panel zabalera – panelaren zabalera
form1 . Zabalera: = chk_int (stringreplace (ParamStr (i) , ‘ / X: ‘ , ‘ ‘ , [Rfignorecase])) ;
pos badu ( ‘ / S: ‘ , minuskula (ParamStr (i))) = 1 gero / / panel altuera – panelaren altuera
form1 . altuera: = chk_int (stringreplace (ParamStr (i) , ‘ / S: ‘ , ‘ ‘ , [Rfignorecase])) ;
pos badu ( ‘ / R: ‘ , minuskula (ParamStr (i))) = 1 / / gailu izena (RoomManager) – RoomManger izena
deviceindex: = RMDeviceIndexByName ((stringreplace (ParamStr (i) , ‘ / R: ‘ , ‘ ‘ , [Rfignorecase]))) ;
pos badu ( ‘ / A: ‘ , minuskula (ParamStr (i))) = 1 / / gailua helbidea (RoomManager) – RoomManager helbidea
deviceindex: = (get_index_rm (stringreplace (ParamStr (i) , ‘ / A: ‘ , ‘ ‘ , [Rfignorecase]))) ;
pos badu ( ‘ / P: ‘ , minuskula (ParamStr (i))) = 1 gero / / urrutitik sartzeko bidea – urrutitik sartzeko bidea
remotepath: = ((stringreplace (ParamStr (i) , ‘ / P: ‘ , ‘ ‘ , [Rfignorecase]))) ;
inc (i) ;
amaieran ;
form1 bada . zabalera < ; 100 ondoren form1 . zabalera: 800 = ; / / Parametro okerreko tamaina lehenetsia ezartzen bada – defaults
form1 bada . altuera < ; 100 ondoren form1 . altuera: 600 ;
devicestoupdatestatus: = IntToStr (rm [deviceindex] . Adrha) + ‘ – ‘ + IntToStr (rm [deviceindex] . adrl) ;
/ / Mugatu uneko egoera RoomManager bilatzen / iragazteko beste gailu
/ / Egiaztatu gailua single pannel mugarik UTILISATION
/ / Begiratu bakarrik RoomManager hautatutako aldiz CPU gutxiago egoera eta server eHouse
outputbuttonnames (deviceindex) ; / / Hasieratu botoiak eta etiketak izenak – botak , botoiak eta testu-etiketa
form1 . caption: = ‘ eHouse Kontrol panela: ‘ + Rm [deviceindex] . devname ; / / Set epigrafe RoomManager Izena forma nagusiak – "goiburua inprimaki RoomManager izena erakusten du
timer1 . Tartea: 3000 = ; / / Set ziklikoa zeregin tartea milisegundotan
timer1 . Aktibatua: = true ; / / Hasiera automatikoa zereginak (status update
k = 1 ;
buttonindex: = 0 ; / / Oraingo botoia (ikusgai) indizea – egungo kopurua (itxurazko)
errenkadan: 0 = ; / / Botoia errenkadan – uneko gakoa kopurua uneko lerroa
/ / Column: = 0 ;
alignx: = (form1 . clientWidth – (Errenkadak) * (buttonwidth + Xspace)) div 2 ; / / Center panel on botoiak – zentrotzat bloke botoiak
i: = 0 form1 . ComponentCount – 1 / / Irteera botoia konfigurazioa automatikoa – automatikoki konfiguratzeko Irten botoia
hasiko da / / objektu bakoitza form1 – Form1-elementu guztiak
(form1 . Osagaiak [i] TPanel), / / ​​objektua da TPanel (gure botoia) – Objektu mota TPanel (botoia)
hasiko
comparetext ((form1 . osagaiak [i] TPanel gisa) . izena , ‘ irteera ‘ + IntToStr (k)) = 0 ondoren / / name osatuko dute bada (irteera)
hasiko
errenkadan: = buttonindex mod (errenkadak) ; / / Kalkulatu errenkaden eta zutabeen indizeen – zutabe eta errenkada koordenatuak kalkulatzen
zutabea: = buttonindex div (errenkadak) ;
luzera (OutputNames [k – 1])> ; 0 ondoren / / bakarrik ouput botoiak erakusten ditu izena – izena botoiak soilik erakusten
hasiko
(Form1 . Osagaiak [i] TPanel gisa) . Ezkerraldean: = alignx + errenkadan * (buttonwidth + Xspace) ; / / Kalkulatu X ardatza possition – X ardatzaren posizioa kalkulatzen du
(Form1 . Osagaiak [i] TPanel gisa) . top: = yoffsetouts + zutabe * (buttonheight + yspace) ; / / Kalkulatu Y ardatza possition – bere posizioa kalkulatzen Y ardatzaren
(Form1 . Osagaiak [i] TPanel gisa) . zabalera: = buttonwidth ; / / Set zabalera Buttons – Botoi zabalera
(Form1 . Osagaiak [i] TPanel gisa) . altuera: = buttonheight ; / / Set Buttons altuera – Botoi zenbatekoa
(Form1 . osagaiak [i] TPanel gisa) . caption: = Outputnames [k – 1] ; / / Set Button Caption – Menuaren testuaren ezartzen du
(Form1 . osagaiak [i] TPanel gisa) . Bevelinner: = bvRaised ;
(Form1 . osagaiak [i] TPanel gisa) . BevelOuter: = bvRaised ;
(Form1 . osagaiak [i] TPanel gisa) . letra-tipo . Tamaina: = fontsize ; / / Set Font Size Button – botoia letra tamaina ezartzen du
inc (buttonindex) ; / / Hurrengoa botoia ikusgai – ikus hurrengo
amaieran
bestela
hasiko
(Form1 . osagaiak [i] TPanel gisa) . ikusgai: = false ; / / Name = No botoia ez erakusteko – kendu gakoak izen bat gabe
amaieran ;
inc (k) ; / / Hurrengoa botoia – hurrengo botoia
amaieran ;
amaieran ;
amaieran ;
/ / / / / / / / / / / / Botoiak programa Gauza bera gertatzen da – Era berean botoiak programak abiarazteko
buttonindex: = 0 ;
k = 1 ;
i: = 0 form1 . ComponentCount – 1
hasiko
(form1 . Osagaiak [i] TPanel)
hasiko
comparetext ((form1 . osagaiak [i] TPanel gisa) . izena , ‘ programa ‘ + IntToStr (k)) = 0 ondoren
hasiko

errenkadan: = buttonindex mod (errenkadak) ;
zutabea: = buttonindex div (errenkadak) ;
luzera (ProgramNames [k – 1])> ; 0 ondoren
hasiko
(Form1 . Osagaiak [i] TPanel gisa) . Ezkerraldean: = alignx + errenkadan * (buttonwidth + Xspace) ;
(Form1 . Osagaiak [i] TPanel gisa) . top: = yoffsetprograms + zutabe * (buttonheight + yspace) ;
(Form1 . Osagaiak [i] TPanel gisa) . zabalera: = buttonwidth ;
(Form1 . Osagaiak [i] TPanel gisa) . altuera: = buttonheight ;
(Form1 . osagaiak [i] TPanel gisa) . caption: = Programnames [k – 1] ; / / Set botoia caption programa botoiak – programa botoiak izena ezartzen du
(Form1 . osagaiak [i] TPanel gisa) . Bevelinner: = bvRaised ;
(Form1 . osagaiak [i] TPanel gisa) . BevelOuter: = bvRaised ;
(Form1 . osagaiak [i] TPanel gisa) . letra-tipo . Tamaina: = fontsize ;
inc (buttonindex) ;
amaieran
bestela
hasiko
(Form1 . osagaiak [i] TPanel gisa) . ikusgai: = false ;
amaieran ;

inc (k) ;
amaieran ;
amaieran ;
amaieran ;

k = 1 ;
buttonindex: = 0 ;
/ / Alignx: = (form1 . clientWidth – (Labelrows * (labelwidth + labelresultsize + Xspace))) div 2 ;
/ / / / / / / Analogicaly Labels for – Era berean , etiketa
i: = 0 form1 . ComponentCount – 1
hasiko
(form1 . Osagaiak [i] TLabel) ondoren
hasiko
comparetext ((form1 . osagaiak [i] TLabel gisa) . izena , ‘ etiketa ‘ + IntToStr (k)) = 0 ondoren
hasiko

errenkadan: = buttonindex mod (labelrows) ;
zutabea: = buttonindex div (labelrows) ;
luzera (LabelNames [k – 1])> ; 0 Etiketako testua luzera ondoren / /> ; ; 0 – deskribapena bada
hasiko
(Form1 . Osagaiak [i] TLabel gisa) . Ezkerraldean: = alignx + errenkadan * (labelwidth + labelresultsize + Xspace) ; / / Kalkulatu X kokapena
(Form1 . Osagaiak [i] TLabel gisa) . top: = yoffsetlabel + zutabe * (labelheight + yspace) ; / / Kalkulatu Y kokapena
(Form1 . Osagaiak [i] TLabel gisa) . zabalera: = labelwidth ;
(Form1 . Osagaiak [i] TLabel gisa) . altuera: = labelheight ;
(Form1 . osagaiak [i] TLabel gisa) . caption: = LabelNames [k – 1] ; / / / Esleitu etiketa epigrafeak – goiburu egokia labels
(Form1 . osagaiak [i] TLabel gisa) . letra-tipo . kolorea: = clwhite ; / / Set default etiketa kolorea – Kolore lehenetsia ezartzen du labels
pos badu ( ‘ [ – % ] ‘ , LabelNames [k – 1])> ; 0 ondoren (form1 . osagaiak [i] TLabel gisa) . letra-tipo . kolorea: = clyellow ; / / Set neurketa argi kolorea – Kolore argiztapena neurtzeko
pos badu ( ‘ [ % ] ‘ , LabelNames [k – 1])> ; 0 ondoren (form1 . osagaiak [i] TLabel gisa) . letra-tipo . kolorea: = Claque ; / / Set kolore ehuneko neurketa – interes balioa kolore
pos badu ( ‘ [C] ‘ , LabelNames [k – 1])> ; 0 ondoren (form1 . osagaiak [i] TLabel gisa) . letra-tipo . kolorea: = clwhite ; / / Set tenperatura kudeatzeko kolorea – kolore tenperatura balioak
(Form1 . osagaiak [i] TLabel gisa) . letra-tipo . Tamaina: = labelfontsize ; / Etiketa / Ezarri letra-tipo tamaina – letra-tamaina ezartzen testu-etiketa
inc (buttonindex) ; / / Hurrengo etiketa ikusgai – etiketa agertuko da hurrengo
amaieran
bestela
hasiko
(Form1 . osagaiak [i] TLabel gisa) . ikusgai: = false ; / / Ezkutatu testu etiketak gabe – ezkutatzeko labels textu gabe
amaieran ;
inc (k) ; / / Hurrengo etiketa – Hurrengo etiketa
amaieran ;
amaieran ;
amaieran ;
update_status ; / / Eguneratu gailuaren uneko egoera panel erregistroak – eguneratzeak egoera server eHouse fitxategiak log gidariari
amaieran ;
Auto ondoren azken emaitza – konfiguratu eta botoia-placement programa eta untold elementuak kendu (panelean sarbide eskubideak murrizketak direla eta edo irteera erabili nahi ez baduzu) .
 Automatikoa banaketa elementu eragina formularioa
Gehiago irakurri: Home Automation – Kontrolagailu eHouse
Home Automation eHouse Hasiera Automatika Fabrikantea