Zhvillim Software për dhoma panele kontrolli për Windows Tabelë – Formë

Automatizimi në shtëpi eHouse .
Krijo formularin kryesor (paraqitjen e ekranit tabletë . Vendoset në Formularin kryesore Kolegjet TPanel 24 fushat për të gjitha llojet e rezultateve dixhitale RM .
Këto do të formojnë butona për të kthehet nga RoomManager (ose elektrike) .
Veç kësaj , ngjyra do të varet nga gjendja e lexuar .
Për këtë arsye kemi përdorur butonat standard ose TButton ngjashme tipit , sepse ata nuk kanë mundësi për të ndryshuar ngjyrën e .
Ne i quajmë ato ” outputX ” ku X është numri i prodhimit .
Unë nuk kam nevojë për të vendosur , sepse ajo do të bëjë atë automatikisht , kjo kërkesë . Për çdo buton , Prodhimi duhet të caktohet në të njëjtën ngjarje (onClick) – output1Click .
Vendoset në Formularin kryesore 24 fusha panele lloj TPanel për të gjitha programet për të kandiduar RM .
Këto do të formojnë butonat switching për RoomManager aktuale (dmth. , on / off pajisjeve elektrike të grupit me një ndryshim në inputet matëse të përdorur për rregullimin e pragjeve të tilla . Temperatura) .
Ne i quajmë ato ” programX ” ku X është numri i butoni .
Në mënyrë të ngjashme , nuk ka nevojë për të vendosur , sepse ajo do të bëjë atë automatikisht , kjo kërkesë .
Për çdo buton , Programi duhet të caktohet në të njëjtën ngjarje (onClick) – program1Click .
Në formën kryesore të etiketat tekst janë 16 lloje TLabel për të shfaqur të gjitha rezultatet e matjeve të RoomManager (numëruara Label1 të Label16) .
Ngjashëm si në rastet e mësipërme nuk kanë nevojë për të vendosur .
Shiko formularin përfundimtar për  formuar për të krijuar Paneli Kontrollit dhomë
Initialization i formën:

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
Procedura TForm1 . FormCreate (Sender: TObject) ;
var alignx , buttonindex , rresht , kolonë , k , i: integer ;
filloj
GetComputerName ; / / Get emrin e kompjuterit apo panel – lexon
rruga: = getcurrentdir () ; / / Get aktuale lokale aplikimit directory rrugën – lexon direktorinë në të cilën programi
rruga: = stringreplace (rruga , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Get rrugën e aplikimit eHouse
remotepath: = rruga ; / / Rruga njëjtë për remoteaccess për inicialization – në fillim të rrugës hartë për qasje të njëjtën distancë
loadnames_rm ; Emrat / / Load kontrollues ehouse1
init_heat_temperature_names ; / / Init HeatManager emrat
readethernetdevs ; / / Load kontrolluesit eHouse emrat Ethernet
i: = 1 ;
ndërsa i < ; = Paramcount për / / kryerjen linjë argumenti komandës – proceset command line
filloj
në qoftë se pos ( ‘ / X: ‘ , vogla (ParamStr (I))) = 1 pastaj / / paneli gjerësi – Gjerësia e panelit
Form1 . Gjerësia: = chk_int (stringreplace (ParamStr (I) , ‘ / X: ‘ , ‘ ‘ , [Rfignorecase])) ;
në qoftë se pos ( ‘ / S: ‘ , vogla (ParamStr (I))) = 1 pastaj / / paneli lartësi – Lartësia e panelit
Form1 . lartësia: = chk_int (stringreplace (ParamStr (I) , ‘ / S: ‘ , ‘ ‘ , [Rfignorecase])) ;
në qoftë se pos ( ‘ / R: ‘ , vogla (ParamStr (I))) = 1 atëherë Emri / / pajisje (RoomManager) – Emri RoomManger
deviceindex: = RMDeviceIndexByName ((stringreplace (ParamStr (I) , ‘ / R: ‘ , ‘ ‘ , [Rfignorecase]))) ;
në qoftë se pos ( ‘ / A: ‘ , vogla (ParamStr (I))) = 1 atëherë adresa / / pajisje (RoomManager) – Adresa RoomManager
deviceindex: = (get_index_rm (stringreplace (ParamStr (I) , ‘ / A: ‘ , ‘ ‘ , [Rfignorecase]))) ;
në qoftë se pos ( ‘ / P: ‘ , vogla (ParamStr (I))) = 1 pastaj rruga / / largët aksesi – rruga largët qasje
remotepath: = ((stringreplace (ParamStr (I) , ‘ / P: ‘ , ‘ ‘ , [Rfignorecase]))) ;
inc (i) ;
fund ;
nëse Form1 . Gjerësia < ; 100 pastaj Form1 . width: = 800 ; / / Nëse parametrat e gabuar për madhësinë e prezgjedhur përcakton – defaults
nëse Form1 . Lartësia < ; 100 pastaj Form1 . height: 600 = ;
devicestoupdatestatus: = IntToStr (rm [deviceindex] . Adrha) + ‘ – ‘ + IntToStr (rm [deviceindex] . adrl) ;
/ / Limit kërkim për RoomManager Statusi aktual / filtruar nga pajisje të tjera
/ / Kontrollo për Pannel pajisje të vetme për PËRDORIMIT kufizim
/ / Kontrollo vetëm statusin e CPU përzgjedhur RoomManager herë më pak dhe eHouse server
outputbuttonnames (deviceindex) ; / / Nisja butonat dhe etiketat emrat – çizme , Butonat dhe etiketat tekst
Form1 . Caption: = ‘ Paneli Kontrollit eHouse: ‘ + Rm [deviceindex] . devname ; / / Set caption nga format kryesore të RoomManager Emri – header tregon emrin e RoomManager formë
timer1 . Intervali: 3000 = ; / / Set detyrë ciklike Intervali në milisekonda
timer1 . Aktivizuar: = e vërtetë ; / / Filloni detyrave automatike (update status
k: 1 = ;
buttonindex: = 0 ; / / Aktuale (e dukshme) butonin Indeksi – Numri aktual i (e dukshme)
rresht: = 0 ; Button / / aktuale në rresht – Numri i kyç aktual në linjë aktuale
/ / Column: = 0 ;
alignx: = (Form1 . clientWidth – (Rreshtat) * (buttonwidth + Xspace)) div 2 ; / / Qendra butonat në panelin e – qendërzim bllokon buttons
sepse unë: = 0 të Form1 . ComponentCount – 1 / / Output Setup butonin automatike – automatikisht konfigurimin butonin Exit
fillojnë / / për çdo objekt në Form1 – për të gjitha elementet e Form1
në qoftë se (Form1 . Përbërësit [i] është TPanel) pastaj / / në qoftë se objekti është TPanel (button tonë) – qoftë lloji i objektit TPanel (butonin)
filloj
nëse comparetext ((Form1 . komponentët [i] si TPanel) . emër , ‘ prodhim ‘ + IntToStr (k)) = 0, atëherë / / nese emri përbëhet (output)
filloj
rresht: = buttonindex mod (rreshtave) ; / / Llogarit rreshtave dhe kolonave indekseve – llogarit koordinatat e kolonë dhe rresht
kolona: = buttonindex div (rreshtave) ;
në qoftë se (gjatësia OutputNames [k – 1])> ; 0 pastaj / / Vetëm tregon butonat ouput me emrin – vetëm tregon butonat me emrin
filloj
(Form1 . Përbërësit [i] si TPanel) . majtë: = alignx + row * (buttonwidth + Xspace) ; / / Llogaritni Mapa ku gjendemi X aks – llogarit pozitën e saj në boshtin X
(Form1 . Përbërësit [i] si TPanel) . top: = yoffsetouts + kolona * (buttonheight + yspace) ; / / Llogarit pozitë aks Y – llogarit pozitën e saj në boshtin Y
(Form1 . Përbërësit [i] si TPanel) . width: = buttonwidth ; / / Buttons Set Gjerësia – Gjerësia e butonave
(Form1 . Përbërësit [i] si TPanel) . height: = buttonheight ; / / Buttons Set Lartësia – Shuma e butonave
(Form1 . komponentët [i] si TPanel) . Caption: = Outputnames [k – 1] ; / Caption / Set Button – përcakton tekstin button
(Form1 . komponentët [i] si TPanel) . Bevelinner: = bvRaised ;
(Form1 . komponentët [i] si TPanel) . BevelOuter: = bvRaised ;
(Form1 . komponentët [i] si TPanel) . burim . Size: = fontsize ; / / Set Size Font Button – përcakton madhësinë e shkronjave për butonin
inc (buttonindex) ; / / Next button dukshme – shiko tjetër
fund
tjetër
filloj
(Form1 . komponentët [i] si TPanel) . Të Dukshëm: = false ; / / No name = nuk tregojnë butonin – hiqni çelësat pa një emër
fund ;
inc (k) ; / / Butonin Next – button NEXT
fund ;
fund ;
fund ;
/ / / / / / / / / / / / Butonat e njëjta për programin – Në mënyrë të ngjashme për butonat për të nisur programet
buttonindex: = 0 ;
k: 1 = ;
sepse unë: = 0 të Form1 . ComponentCount – 1 deri në
filloj
në qoftë se (Form1 . Përbërësit [i] është TPanel) pastaj
filloj
nëse comparetext ((Form1 . komponentët [i] si TPanel) . emër , ‘ program ‘ + IntToStr (k)) = 0, atëherë
filloj

rresht: = buttonindex mod (rreshtave) ;
kolona: = buttonindex div (rreshtave) ;
në qoftë se (gjatësia ProgramNames [k – 1])> ; 0 pastaj
filloj
(Form1 . Përbërësit [i] si TPanel) . majtë: = alignx + row * (buttonwidth + Xspace) ;
(Form1 . Përbërësit [i] si TPanel) . top: = yoffsetprograms + kolona * (buttonheight + yspace) ;
(Form1 . Përbërësit [i] si TPanel) . width: = buttonwidth ;
(Form1 . Përbërësit [i] si TPanel) . height: = buttonheight ;
(Form1 . komponentët [i] si TPanel) . Caption: = Programnames [k – 1] ; / / Set butonat caption butonin për programin – vendos emrin e butonat e programit
(Form1 . komponentët [i] si TPanel) . Bevelinner: = bvRaised ;
(Form1 . komponentët [i] si TPanel) . BevelOuter: = bvRaised ;
(Form1 . komponentët [i] si TPanel) . burim . Size: = fontsize ;
inc (buttonindex) ;
fund
tjetër
filloj
(Form1 . komponentët [i] si TPanel) . Të Dukshëm: = false ;
fund ;

inc (k) ;
fund ;
fund ;
fund ;

k: 1 = ;
buttonindex: = 0 ;
/ / Alignx: = (Form1 . clientWidth – (Labelrows * (labelwidth + + labelresultsize Xspace))) div 2 ;
/ / / / / / / Analogicaly për etiketat – Në mënyrë të ngjashme , etiketë
sepse unë: = 0 të Form1 . ComponentCount – 1 deri në
filloj
në qoftë se (Form1 . Përbërësit [i] është TLabel), atëherë
filloj
nëse comparetext ((Form1 . komponentët [i] si TLabel) . emër , ‘ etiketë ‘ + IntToStr (k)) = 0, atëherë
filloj

rresht: = buttonindex mod (labelrows) ;
kolona: = buttonindex div (labelrows) ;
në qoftë se (gjatësia LabelNames [k – 1])> ; 0 pastaj / / nëse gjatësia e tekstit etiketës> ; ; 0 – nëse është përshkrimi
filloj
(Form1 . Përbërësit [i] si TLabel) . majtë: = alignx + row * (labelwidth + + labelresultsize Xspace) ; / / Llogaritni X Vendndodhja
(Form1 . Përbërësit [i] si TLabel) . top: = yoffsetlabel + kolona * (labelheight + yspace) ; / / Llogarit vendndodhjen Y
(Form1 . Përbërësit [i] si TLabel) . width: = labelwidth ;
(Form1 . Përbërësit [i] si TLabel) . height: = labelheight ;
(Form1 . komponentët [i] si TLabel) . Caption: = LabelNames [k – 1] ; / / / Cakto captions etiketë – headers përshtatshme etiketat
(Form1 . komponentët [i] si TLabel) . burim . color: = clwhite ; Ngjyra / / Set parazgjedhur për etiketë – vendos ngjyrën e parazgjedhur për etiketat
në qoftë se pos ( ‘ [ – % ] ‘ , LabelNames [k – 1])> ; 0 pastaj (Form1 . komponentët [i] si TLabel) . burim . color: = clyellow ; Ngjyra / / Set për matje të lehta – për matjen e ndriçimit ngjyra
në qoftë se pos ( ‘ [ % ] ‘ , LabelNames [k – 1])> ; 0 pastaj (Form1 . komponentët [i] si TLabel) . burim . color: = duartrokitës të paguar ; Matjes / / Set ngjyra për qind – Ngjyra për vlerën e interesit
në qoftë se pos ( ‘ [C] ‘ , LabelNames [k – 1])> ; 0 pastaj (Form1 . komponentët [i] si TLabel) . burim . color: = clwhite ; / / Set ngjyra për menaxhimin e temperaturës – për vlerat e temperaturës ngjyra
(Form1 . komponentët [i] si TLabel) . burim . Size: = labelfontsize ; / Size / font Set për etiketë – përcakton madhësinë e shkronjave për etiketë tekst
inc (buttonindex) ; / / Label Next dukshme – etiketë duket ardhshëm
fund
tjetër
filloj
(Form1 . komponentët [i] si TLabel) . Të Dukshëm: = false ; / / Hide etiketat tekst, pa – fshi etiketat pa textu
fund ;
inc (k) ; / / Label Next – etiketë e ardhshme
fund ;
fund ;
fund ;
update_status ; / / Update panel për statusin e pajisjes aktuale nga shkrimet – Përditësimet statusi i shoferit të dosjeve log nga eHouse server
fund ;
Rezultati përfundimtar pas auto – konfiguruar dhe vendosja button nga programi dhe për të hequr elementet e pathëna (në qoftë se ju nuk doni që ata të kenë në trup për shkak të kufizimeve për të drejtat e aksesit ose përdorimin e prodhimit) .
 Efekti përfundimtar i shpërndarjes automatike të elementeve në Formularin
Lexo më shumë: Automatizimi në shtëpi – Kontrollorët eHouse
Automatizimi në shtëpi eHouse Automatizimi në shtëpi Prodhuesi