Windows టాబ్లెట్ కోసం కంట్రోల్ ప్యానెల్లు గదులకు సాఫ్ట్వేర్ డవలప్మెంట్ – ఆకృతి

ఇంటి ఆటోమేషన్ eHouse .
ప్రధాన ఫారం (టాబ్లెట్ స్క్రీన్ లేఅవుట్ సృష్టించు . RM డిజిటల్ ప్రతిఫలాన్ని అన్ని రకాల ప్రధాన ఫారం 24 ఖాళీలను TPanel పలక పైన ఉంచిన .
ఈ RoomManager (లేదా విద్యుత్) ఔట్ చెయ్యడానికి బటన్లు ఏర్పరుచుకుంటాయి .
అదనంగా , రంగు చదివి రాష్ట్ర ఆధారపడి ఉంటుంది .
ఈ కారణంగా మేము ప్రామాణిక బటన్లు లేదా ఇలాంటి రకం TButton ఉపయోగిస్తారు , వారు రంగు మార్చడానికి అవకాశం లేనందున .
మేము వాటిని కాల్ ” outputX ” X అవుట్పుట్ యొక్క సంఖ్య .
నేను అమలు లేదు , అది స్వయంచాలకంగా చేస్తుంది ఎందుకంటే , ఈ అనువర్తనం . ప్రతి బటన్ కోసం , అవుట్పుట్ ఒకే ఈవెంట్ను (onClick) కేటాయించిన తప్పక – output1Click .
RM అమలు కార్యక్రమాలు ప్రధాన ఫారం 24 ఖాళీలను TPanel రకం పలక పైన ఉంచిన .
ఈ ప్రస్తుత RoomManager (అంటే మారడానికి బటన్లు ఏర్పరుచుకుంటాయి , మార్గాలు కొలిచే ఇన్పుట్లను లో మార్పు బృందం యొక్క విద్యుత్ పరికరాల ఆన్ / ఆఫ్ అటువంటి ప్రక్రియలు ఉపయోగిస్తారు . ఉష్ణోగ్రత) .
మేము వాటిని కాల్ ” programX ” X బటన్ సంఖ్య .
అదేవిధంగా , విస్తరించడానికి అవసరం , అది స్వయంచాలకంగా చేస్తుంది ఎందుకంటే , ఈ అనువర్తనం .
ప్రతి బటన్ కోసం , కార్యక్రమం ఒకే ఈవెంట్ను (onClick) కేటాయించిన ఉండాలి – program1Click .
టెక్స్ట్ యొక్క లేబుల్స్ ప్రధాన రూపం న TLabel (Label16 కు LABEL 1 సంఖ్య) RoomManager యొక్క కొలతలను అన్ని ఫలితాలను ప్రదర్శించడానికి 16 రకాలు .
అదేవిధంగా పై సందర్భాలలో విస్తరించడానికి లేదు .
తుది రూపం చూడండి  గది నియంత్రణ ప్యానెల్ సృష్టించడానికి ఏర్పాటు
రూపం యొక్క ప్రారంభ:

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
ప్రక్రియ TForm1 . FormCreate (పంపినవారు: TObject) ;
var alignx , buttonindex , వరుస , కాలమ్ , k , నేను: పూర్ణాంక ;
ప్రారంభం
GetComputerName ; / / కంప్యూటర్ లేదా పలక యొక్క పేరు పొందండి – చదువుతుంది
మార్గం: = getcurrentdir () ; / / ప్రస్తుత స్థానిక మార్గం అప్లికేషన్ డైరెక్టరీ పొందండి – డైరెక్టరీ చదువుతుంది కార్యక్రమం
మార్గం: = stringreplace (మార్గం , ‘ \ బిన్ ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / అప్లికేషన్ eHouse యొక్క మార్గం పొందండి
remotepath: = మార్గం ; Inicialization కోసం remoteaccess కోసం / / అదే మార్గం – మార్గం ప్రారంభంలో అదే రిమోట్ యాక్సెస్ కోసం మ్యాప్
loadnames_rm ; / / లోడ్ నియంత్రిక పేర్లు ehouse1
init_heat_temperature_names ; / / Init heatmanager పేర్లు
readethernetdevs ; / / లోడ్ కంట్రోలర్లు ఈథర్నెట్ eHouse పేర్లు
నేను: = 1 ;
అయితే i < ; = / కు Paramcount / కమాండ్ లైన్ వాదన ప్రదర్శన – కమాండ్ లైన్ ప్రాసెస్
ప్రారంభం
ఒకవేళ పోస్ ( ‘ / X: ‘ , చిన్న (ParamStr (i))) = 1 తర్వాత / / ప్యానెల్ వెడల్పు – పలక యొక్క వెడల్పు
form1 . వెడల్పు: = chk_int (stringreplace (ParamStr (i) , ‘ / X: ‘ , ‘ ‘ , [Rfignorecase])) ;
ఒకవేళ పోస్ ( ‘ / S: ‘ , (ParamStr (i)) చిన్న) = 1 తర్వాత / / ప్యానెల్ ఎత్తు – పలక యొక్క ఎత్తు
form1 . ఎత్తు: = chk_int (stringreplace (ParamStr (i) , ‘ / S: ‘ , ‘ ‘ , [Rfignorecase])) ;
ఒకవేళ పోస్ ( ‘ / R: ‘ , (ParamStr (i)) చిన్న) = 1 తర్వాత / / పరికరం పేరు (RoomManager) – RoomManger పేరు
deviceindex: = RMDeviceIndexByName ((stringreplace (ParamStr (i) , ‘ / R: ‘ , ‘ ‘ , [Rfignorecase]))) ;
ఒకవేళ పోస్ ( ‘ / A: ‘ , చిన్న (ParamStr (i))) = 1 తర్వాత / / సాధనం చిరునామా (RoomManager) – RoomManager చిరునామా
deviceindex: = (get_index_rm (stringreplace (ParamStr (i) , ‘ / A: ‘ , ‘ ‘ , [Rfignorecase]))) ;
ఒకవేళ పోస్ ( ‘ / P: ‘ , చిన్న (ParamStr (i))) = 1 తర్వాత / / రిమోట్ యాక్సెస్ మార్గం – రిమోట్ ప్రాప్యత మార్గం
remotepath: = ((stringreplace (ParamStr (i) , ‘ / P: ‘ , ‘ ‘ , [Rfignorecase]))) ;
INC (i) ;
చివర ;
form1 ఉంటే . వెడల్పు < ; 100 తర్వాత form1 . width = 800 ; / / పరిమాణానికి తప్పు పారామితులు డిఫాల్ట్ సెట్స్ ఉంటే – అప్రమేయం
form1 ఉంటే . ఎత్తు < ; 100 తర్వాత form1 . ఎత్తు: = 600 ;
devicestoupdatestatus: = IntToStr (RM [deviceindex] . Adrha) + ‘ – ‘ + IntToStr (RM [deviceindex] . adrl) ;
ప్రస్తుత స్థితి RoomManager శోధించడం / / పరిమితి / ఇతర పరికరాలు ఫిల్టర్
/ / పరిమితి UTILISATION కోసం ఒకే పరికరం pannel కోసం తనిఖీ
/ / మాత్రమే ఎంపిక RoomManager రెట్లు తక్కువ CPU యొక్క స్థితి మరియు సర్వర్ eHouse తనిఖీ
outputbuttonnames (deviceindex) ; / / బటన్లు మరియు లేబుల్స్ పేర్లు ప్రారంభించును – బూట్లు , బటన్లు మరియు టెక్స్ట్ లేబుల్స్
form1 . శీర్షిక: = ‘ eHouse కంట్రోల్ ప్యానెల్: ‘ + RM [deviceindex] . devname ; RoomManager పేరు యొక్క ప్రధాన రకాల / / సెట్ శీర్షిక – శీర్షిక రూపం RoomManager యొక్క పేరు చూపిస్తుంది
timer1 . విరామం: = 3000 ; మిల్లిసెకన్లలో / / సెట్ చక్రీయ పని విరామం
timer1 . ప్రారంభించబడింది: = true ; / / (డేట్ ఆటోమేటిక్ పనులు ప్రారంభం
k = 1 ;
buttonindex: = 0 ; / / ప్రస్తుత బటన్ (కనిపిస్తుంది) సూచిక – ప్రస్తుత సంఖ్య (స్పష్టమైన)
వరుస: = 0 ; వరుసగా / / ప్రస్తుత బటన్ – ప్రస్తుత లైన్ లో ప్రస్తుత కీ సంఖ్య
/ / కాలమ్: = 0 ;
alignx: = (form1 . clientWidth – (వరుసలు) * (buttonwidth + Xspace)) DIV 2 ; / / సెంటర్ పానెల్ మీద బటన్లు – మధ్యలో బ్లాక్స్ బటన్లు
నేను: = 0 కు form1 . ComponentCount – 1 / / అవుట్పుట్ బటన్ ఆటోమేటిక్ సెటప్ – స్వయంచాలకంగా ఎగ్జిట్ బటన్ ఆకృతీకరించుటకు
form1 ప్రతి వస్తువు కోసం / / ప్రారంభం – Form1 యొక్క అన్ని అంశాలకు
(form1 ఉంటే . భాగాలు [i]) TPanel ఉంది అప్పుడు / / వస్తువు TPanel ఉంటే (మా బటన్) – ఒకవేళ ఆబ్జెక్ట్ రకం TPanel (బటన్)
ప్రారంభం
ఒకవేళ comparetext ((form1 . భాగాలు [i] TPanel వంటి) . పేరు , ‘ అవుట్పుట్ ‘ + IntToStr (k)) = 0 అప్పుడు / / (ఫలితం) పేరు ఉంటాయి ఉంటే
ప్రారంభం
వరుస: = buttonindex mod (వరుసలు) ; / / వరుసలు మరియు కాలమ్లను సూచికలు లెక్కించు – కాలమ్ వరుస యొక్క అక్షాంశాలు లెక్కిస్తుంది
కాలమ్: = buttonindex DIV (వరుసలు) ;
పొడవు (OutputNames [k ఉంటే – 1])> ; 0 అప్పుడు / / మాత్రమే పేరుతో ouput బటన్లు చూపిస్తుంది – మాత్రమే పేరుతో బటన్లు చూపిస్తుంది
ప్రారంభం
(Form1 . భాగాలు [i] TPanel వంటి) . ఎడమ: = alignx + వరుస * (buttonwidth + Xspace) ; / / లెక్కించేందుకు X అక్షం possition – X అక్షం దాని స్థానం లెక్కిస్తుంది
(Form1 . భాగాలు [i] TPanel వంటి) . top: = yoffsetouts + కాలమ్ * (buttonheight + yspace) ; / / Y అక్షం possition లెక్కించు – Y అక్షం దాని స్థానం లెక్కిస్తుంది
(Form1 . భాగాలు [i] TPanel వంటి) . width = buttonwidth ; / / సెట్ వెడల్పు బటన్లు – బటన్ల వెడల్పు
(Form1 . భాగాలు [i] TPanel వంటి) . ఎత్తు: = buttonheight ; / / సెట్ బటన్లు ఎత్తు – బటన్లు మొత్తం
(Form1 . భాగాలు [i] TPanel వంటి) . శీర్షిక: = Outputnames [k – 1] ; / / సెట్ బటన్ శీర్షిక – బటన్ టెక్స్ట్ సెట్స్
(Form1 . భాగాలు [i] TPanel వంటి) . Bevelinner: = bvRaised ;
(Form1 . భాగాలు [i] TPanel వంటి) . BevelOuter: = bvRaised ;
(Form1 . భాగాలు [i] TPanel వంటి) . font . సైజు: = ఫాంట్సైజు ; / / సెట్ ఫాంట్ సైజు బటన్ – బటన్ కోసం ఫాంట్ పరిమాణం సెట్స్
INC (buttonindex) ; / / తదుపరి బటన్ కనిపిస్తుంది – తదుపరి చూడండి
చివర
ఇంకా
ప్రారంభం
(Form1 . భాగాలు [i] TPanel వంటి) . కనిపించే: = తప్పుడు ; / / No పేరు = బటన్ చూపవద్దు – ఒక పేరు లేకుండా కీలు తొలగించే
చివర ;
INC (k) ; / / తదుపరి బటన్ – తదుపరి బటన్
చివర ;
చివర ;
చివర ;
కార్యక్రమం కోసం / / / / / / / / / / / / అదే బటన్లు – అదేవిధంగా బటన్ల కోసం కార్యక్రమాలు ప్రారంభించటానికి
buttonindex: = 0 ;
k = 1 ;
నేను: = 0 కు form1 . ComponentCount – 1
ప్రారంభం
(form1 ఉంటే . భాగాలు [i] TPanel ఉంది) తర్వాత
ప్రారంభం
ఒకవేళ comparetext ((form1 . భాగాలు [i] TPanel వంటి) . పేరు , ‘ కార్యక్రమం ‘ = 0 అప్పుడు + IntToStr (k))
ప్రారంభం

వరుస: = buttonindex mod (వరుసలు) ;
కాలమ్: = buttonindex DIV (వరుసలు) ;
పొడవు (ProgramNames [k ఉంటే – 1])> ; అప్పుడు 0
ప్రారంభం
(Form1 . భాగాలు [i] TPanel వంటి) . ఎడమ: = alignx + వరుస * (buttonwidth + Xspace) ;
(Form1 . భాగాలు [i] TPanel వంటి) . top: = yoffsetprograms + కాలమ్ * (buttonheight + yspace) ;
(Form1 . భాగాలు [i] TPanel వంటి) . width = buttonwidth ;
(Form1 . భాగాలు [i] TPanel వంటి) . ఎత్తు: = buttonheight ;
(Form1 . భాగాలు [i] TPanel వంటి) . శీర్షిక: = Programnames [k – 1] ; కార్యక్రమం కోసం / / సెట్ బటన్ శీర్షిక బటన్ – కార్యక్రమం బటన్ల పేరు సెట్స్
(Form1 . భాగాలు [i] TPanel వంటి) . Bevelinner: = bvRaised ;
(Form1 . భాగాలు [i] TPanel వంటి) . BevelOuter: = bvRaised ;
(Form1 . భాగాలు [i] TPanel వంటి) . font . సైజు: = ఫాంట్సైజు ;
INC (buttonindex) ;
చివర
ఇంకా
ప్రారంభం
(Form1 . భాగాలు [i] TPanel వంటి) . కనిపించే: = తప్పుడు ;
చివర ;

INC (k) ;
చివర ;
చివర ;
చివర ;

k = 1 ;
buttonindex: = 0 ;
/ / Alignx: = (form1 . clientWidth – (Labelrows * (labelwidth + + labelresultsize Xspace))) DIV 2 ;
/ / / / / / / Analogicaly Labels కోసం – అదేవిధంగా , లేబుల్
నేను: = 0 కు form1 . ComponentCount – 1
ప్రారంభం
(form1 ఉంటే . భాగాలు [i] TLabel తర్వాత) ఉంది
ప్రారంభం
ఒకవేళ comparetext ((form1 . భాగాలు TLabel వంటి [i]) . పేరు , ‘ లేబుల్ ‘ = 0 అప్పుడు + IntToStr (k))
ప్రారంభం

వరుస: = buttonindex mod (labelrows) ;
కాలమ్: = buttonindex DIV (labelrows) ;
పొడవు (LabelNames [k ఉంటే – 1])> ; 0 అప్పుడు / / ఉంటే లేబుల్ టెక్స్ట్ యొక్క పొడవు> ; ; 0 – వివరణ ఉంది
ప్రారంభం
(Form1 . భాగాలు TLabel వంటి [i]) . ఎడమ: = alignx + వరుస * (labelwidth + + labelresultsize Xspace) ; / / లెక్కించేందుకు X నగర
(Form1 . భాగాలు TLabel వంటి [i]) . top: = yoffsetlabel + కాలమ్ * (labelheight + yspace) ; / / Y నగర లెక్కించు
(Form1 . భాగాలు TLabel వంటి [i]) . width = labelwidth ;
(Form1 . భాగాలు TLabel వంటి [i]) . ఎత్తు: = labelheight ;
(Form1 . భాగాలు TLabel వంటి [i]) . శీర్షిక: = LabelNames [k – 1] ; / / / లేబుల్ శీర్షికలను కేటాయించు – శీర్షికలు తగిన లేబుల్స్
(Form1 . భాగాలు TLabel వంటి [i]) . font . రంగు: = clwhite ; లేబుల్ కోసం / / సిద్ధ రంగు – లేబుళ్లు సిద్ధంగా రంగు సెట్స్
ఒకవేళ పోస్ ( ‘ [ – % ] ‘ , LabelNames [k – 1])> ; అప్పుడు 0 (form1 . భాగాలు TLabel వంటి [i]) . font . రంగు: = clyellow ; కాంతి కొలత కోసం / / సెట్ రంగు – రంగు కాంతి యొక్క కొలత కోసం
ఒకవేళ పోస్ ( ‘ [ % ] ‘ , LabelNames [k – 1])> ; అప్పుడు 0 (form1 . భాగాలు TLabel వంటి [i]) . font . రంగు: = Claque ; శాతం / / సెట్ రంగు కొలత – ఆసక్తి విలువ కోసం రంగు
ఒకవేళ పోస్ ( ‘ [C] ‘ , LabelNames [k – 1])> ; అప్పుడు 0 (form1 . భాగాలు TLabel వంటి [i]) . font . రంగు: = clwhite ; ఉష్ణోగ్రత నిర్వహణ కోసం / / సెట్ రంగు – రంగు ఉష్ణోగ్రత విలువల కోసం
(Form1 . భాగాలు TLabel వంటి [i]) . font . సైజు: = labelfontsize ; లేబుల్ కోసం / / సెట్ font size – text label కోసం ఫాంట్ పరిమాణం సెట్స్
INC (buttonindex) ; / / తదుపరి కనిపించే లేబుల్ – లేబుల్ తదుపరి కనిపిస్తుంది
చివర
ఇంకా
ప్రారంభం
(Form1 . భాగాలు TLabel వంటి [i]) . కనిపించే: = తప్పుడు ; / / లేకుండా టెక్స్ట్ లేబుళ్ళను దాచిపెట్టు – textu లేకుండా లేబుళ్ళను దాచిపెట్టు
చివర ;
INC (k) ; / / తదుపరి లేబుల్ – తదుపరి లేబుల్
చివర ;
చివర ;
చివర ;
update_status ; / / నవీకరణ లాగ్లను నుండి ప్రస్తుత పరికరం స్థితి కోసం ప్యానెల్ – సర్వర్ eHouse నుండి లాగ్ ఫైళ్లను యొక్క డ్రైవర్ యొక్క నవీకరణలను స్థితి
చివర ;
ఆటో తర్వాత తుది ఫలితంగా – కన్ఫిగర్ బటన్ ప్లేస్ ప్రోగ్రామ్ (మీరు వాటిని ఎందుకంటే యాక్సెస్ హక్కులను ఆంక్షలు పానెల్ మీద లేదా అవుట్పుట్ యొక్క ఉపయోగించడానికి అనుకుంటే) అన్టోల్డ్ అంశాలను తొలగించు .
 ఫారం మీద అంశాల ఆటోమేటిక్ పంపిణీ చివరి ప్రభావం
మరింత చదువు: ఇంటి ఆటోమేషన్ – నియంత్రికల eHouse
ఇంటి ఆటోమేషన్ eHouse ఇంటి ఆటోమేషన్ తయారీదారు