नियंत्रण पैनलों के कमरे के लिए Windows Tablet के लिए सॉफ्टवेयर विकास – प्रपत्र

गृह स्वचालन eHouse .
मुख्य रूप (गोली स्क्रीन के लेआउट बनाएँ . डिजिटल RM outputs के सभी प्रकार के 24 क्षेत्रों के लिए मुख्य TPanel पैनलों प्रपत्र पर रखा .
ये बटन फार्म बाहर बारी RoomManager (या बिजली) .
इसके अलावा , रंग बाहर पढ़ने के राज्य पर निर्भर करेगा .
इस कारण हम मानक बटन या इसी प्रकार TButton , क्योंकि वे करने के लिए रंग बदलने की संभावना नहीं है .
हम उन्हें फोन ” outputX ” जहां एक्स उत्पादन की संख्या है .
मैं करने के लिए तैनात होने की जरूरत नहीं , क्योंकि यह स्वचालित रूप से करना होगा , इस आवेदन . प्रत्येक बटन के लिए , उत्पादन (onClick) एक ही घटना के लिए आवंटित किया जाना चाहिए – output1Click .
सभी कार्यक्रमों के लिए मुख्य फार्म 24 क्षेत्रों TPanel प्रकार पैनलों पर रखा करने के लिए RM चलाने .
ये वर्तमान RoomManager (यानी स्विचन के लिए बटन फार्म जाएगा , / समूह के बिजली के उपकरणों से पर थ्रेसहोल्ड मापने जानकारी में एक परिवर्तन के साथ ऐसे को विनियमित करने के लिए इस्तेमाल किया . तापमान) .
हम उन्हें फोन ” programX ” जहां एक्स बटन की संख्या है .
उसी प्रकार , करने के लिए तैनात करने की आवश्यकता नहीं , क्योंकि यह स्वचालित रूप से करना होगा , इस आवेदन .
प्रत्येक बटन के लिए , कार्यक्रम में एक ही घटना (onClick) को सौंपा जाना चाहिए – program1Click .
पाठ लेबल के मुख्य फार्म पर 16 प्रकार के होते हैं TLabel RoomManager के मापन के सभी परिणामों को प्रदर्शित करने के लिए (Label16 Label1 गिने) .
इसी प्रकार उपरोक्त मामलों में के रूप में करने के लिए तैनात की जरूरत नहीं है .
के लिए अंतिम रूप  कमरे के नियंत्रण कक्ष बनाने के लिए फार्म
फार्म को आरंभ:

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
TForm1 प्रक्रिया . FormCreate (Sender: TObject) ;
var alignx , buttonindex , पंक्ति , स्तंभ , कश्मीर , मैं: पूर्णांक ;
शुरू करना
GetComputerName ; / / कंप्यूटर या पैनल के नाम – पढ़ता
पथ: = (getcurrentdir) ; / / वर्तमान स्थानीय पथ अनुप्रयोग निर्देशिका – निर्देशिका पढ़ता है जिसमें कार्यक्रम
पथ: stringreplace = (पथ , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / आवेदन eHouse के पथ
remotepath: = पथ ; / / Remoteaccess inicialization के लिए के लिए एक ही रास्ता – पथ के शुरुआत में ही दूरदराज के उपयोग के लिए मैप
loadnames_rm ; / / लोड नियंत्रक नामों ehouse1
init_heat_temperature_names ; / / Init heatmanager नाम
readethernetdevs ; / / लोड ईथरनेट eHouse नाम नियंत्रकों
मैं: = 1 ;
जबकि मैं < ; = / Paramcount / कमांड लाइन तर्क प्रदर्शन – कमांड लाइन प्रक्रियाओं
शुरू करना
अगर स्थिति ( ‘ / एक्स: ‘ , लोअरकेस (ParamStr (i))) = 1 चौड़ाई तो पैनल / / – पैनल की चौड़ाई
Form1 . चौड़ाई: = chk_int (stringreplace (ParamStr (i) , ‘ / एक्स: ‘ , ‘ ‘ , [Rfignorecase])) ;
अगर स्थिति ( ‘ / एस: ‘ , लोअरकेस (ParamStr (i))) पैनल = 1 / / तो ऊंचाई – पैनल की ऊंचाई
Form1 . ऊंचाई: = chk_int (stringreplace (ParamStr (i) , ‘ / एस: ‘ , ‘ ‘ , [Rfignorecase])) ;
अगर स्थिति ( ‘ / R: ‘ , लोअरकेस (ParamStr (i))) = तो / / डिवाइस नाम (RoomManager 1) – RoomManger नाम
deviceindex: = RMDeviceIndexByName ((stringreplace (ParamStr (i) , ‘ / R: ‘ , ‘ ‘ , [Rfignorecase]))) ;
अगर स्थिति ( ‘ / A: ‘ , लोअरकेस (ParamStr (i))) = 1 तो डिवाइस / / पता (RoomManager) – RoomManager पते
deviceindex: = (get_index_rm (stringreplace (ParamStr मैं () , ‘ / A: ‘ , ‘ ‘ , [Rfignorecase]))) ;
अगर स्थिति ( ‘ पी /: ‘ , लोअरकेस (ParamStr (i))) = 1 तो / / दूरस्थ पहुंच पथ – दूरस्थ पहुंच पथ
remotepath: = ((stringreplace (ParamStr (i) , ‘ पी /: ‘ , ‘ ‘ , [Rfignorecase]))) ;
इंक (i) ;
अंत ;
Form1 अगर . चौड़ाई < ; 100 तो Form1 . चौड़ाई: 800 = ; / / आकार के लिए गलत मापदंडों डिफ़ॉल्ट सेट करता है यदि – चूक
Form1 अगर . ऊंचाई < ; 100 तो Form1 . ऊँचाई: = 600 ;
devicestoupdatestatus: = IntToStr (rm [deviceindex] . ) Adrha + ‘ – ‘ + IntToStr (rm [deviceindex] . adrl) ;
/ / वर्तमान स्थिति RoomManager के लिए खोज सीमा / अन्य उपकरणों को फ़िल्टर
/ / सीमा उपयोगिता के लिए एक डिवाइस pannel के लिए जाँच करें
/ / केवल चयनित RoomManager बार कम सीपीयू की स्थिति और सर्वर eHouse
outputbuttonnames (deviceindex) ; / / बटन और लेबल के नाम इनिशियलाइज़ – जूते , बटन और पाठ लेबल
Form1 . कैप्शन: = ‘ eHouse नियंत्रण कक्ष: ‘ + Rm [deviceindex] . devname ; / / सेट RoomManager नाम के मुख्य रूपों के शीर्षक – हैडर प्रपत्र RoomManager के नाम से पता चलता है
timer1 . अंतराल: 3000 = ; / / मिलीसेकेंड में सेट की चक्रीय कार्य अंतराल
timer1 . सक्रिय: = सच ; / / स्वत: कार्य शुरू (स्थिति अद्यतन
कश्मीर: = 1 ;
buttonindex: 0 = ; / / वर्तमान बटन सूचकांक (दृश्यमान) – की मौजूदा संख्या (स्पष्ट)
पंक्ति: 0 = ; पंक्ति में वर्तमान / / बटन – वर्तमान कुंजी की मौजूदा लाइन में संख्या
/ / कॉलम: 0 = ;
alignx: = (Form1 . clientWidth – (पंक्तियाँ) * (buttonwidth Xspace +)) 2 div ; / / केंद्र पैनल पर बटन – एकत्रित करना ब्लॉकों बटन
के लिए मैं: = 0 से Form1 . ComponentCount – 1 / / आउटपुट बटन ऑटोमेटिक सेटअप – स्वचालित रूप से बाहर निकलें बटन कॉन्फ़िगर
प्रत्येक वस्तु के लिए Form1 पर शुरू / / – Form1 के सभी तत्वों के लिए
अगर (Form1 . अवयव [i] TPanel है) / तो / वस्तु TPanel है अगर (हमारे बटन) – अगर ऑब्जेक्ट प्रकार TPanel (बटन)
शुरू करना
अगर (comparetext (Form1 . घटकों [मैं] TPanel के रूप में) . नाम , ‘ उत्पादन ‘ + (कश्मीर) IntToStr) = 0 / / नाम तो मिलकर अगर (उत्पादन)
शुरू करना
पंक्ति: = आधुनिक buttonindex (पंक्तियाँ) ; / / पंक्तियों और स्तंभों अनुक्रमित की गणना – स्तंभ और पंक्ति के निर्देशांक की गणना
स्तंभ: = div buttonindex (पंक्तियाँ) ;
अगर लंबाई (OutputNames k [ – 1])> ; तो 0 / / केवल नाम के साथ ouput बटन से पता चलता है – केवल नाम के साथ बटन दिखाता है
शुरू करना
(Form1 . अवयव [मैं] TPanel के रूप में) . बाएँ: = alignx पंक्ति + * (buttonwidth + Xspace) ; / / गणना एक्स अक्ष स्थिति – एक्स अक्ष में अपनी स्थिति की गणना
(Form1 . अवयव [मैं] TPanel के रूप में) . शीर्ष: = yoffsetouts + स्तंभ * (buttonheight yspace +) ; / / Y अक्ष स्थिति की गणना – वाई अक्ष में अपनी स्थिति की गणना
(Form1 . अवयव [मैं] TPanel के रूप में) . चौड़ाई: = buttonwidth ; / / सेट चौड़ाई बटन – बटन की चौड़ाई
(Form1 . अवयव [मैं] TPanel के रूप में) . ऊंचाई: = buttonheight ; / / सेट लंबाई बटन – बटन की राशि
(Form1 . घटकों [मैं] TPanel के रूप में) . कैप्शन: = Outputnames [k – 1] ; / / सेट बटन कैप्शन – बटन पाठ सेट
(Form1 . घटकों [मैं] TPanel के रूप में) . Bevelinner: = bvRaised ;
(Form1 . घटकों [मैं] TPanel के रूप में) . BevelOuter: = bvRaised ;
(Form1 . घटकों [मैं] TPanel के रूप में) . फॉन्ट . साइज: = fontsize ; / / Font Size बटन सेट – बटन के लिए फ़ॉन्ट आकार सेट
inc (buttonindex) ; / / अगला बटन दिखाई – अगले देखने के लिए
अंत
अन्यथा
शुरू करना
(Form1 . घटकों [मैं] TPanel के रूप में) . दिखाई: = झूठी ; / / कोई नाम = बटन नहीं दिखा – एक नाम के बिना चाबी निकाल
अंत ;
इंक (कश्मीर) ; / / अगला बटन – अगले बटन
अंत ;
अंत ;
अंत ;
/ / / / / / / / / / / / कार्यक्रम के लिए एक ही बटन – इसी तरह बटन के लिए कार्यक्रम शुरू करने के लिए
buttonindex: 0 = ;
कश्मीर: = 1 ;
के लिए मैं: = 0 से Form1 . ComponentCount – 1 करने के लिए
शुरू करना
अगर (Form1 . [I] TPanel) तो अवयव
शुरू करना
अगर (comparetext (Form1 . घटकों [मैं] TPanel के रूप में) . नाम , ‘ कार्यक्रम ‘ + (कश्मीर) IntToStr) = 0 तो
शुरू करना

पंक्ति: = आधुनिक buttonindex (पंक्तियाँ) ;
स्तंभ: = div buttonindex (पंक्तियाँ) ;
अगर लंबाई (ProgramNames k [ – 1])> ; 0 तब
शुरू करना
(Form1 . अवयव [मैं] TPanel के रूप में) . बाएँ: = alignx पंक्ति + * (buttonwidth + Xspace) ;
(Form1 . अवयव [मैं] TPanel के रूप में) . शीर्ष: = yoffsetprograms स्तंभ + * (buttonheight yspace +) ;
(Form1 . अवयव [मैं] TPanel के रूप में) . चौड़ाई: = buttonwidth ;
(Form1 . अवयव [मैं] TPanel के रूप में) . ऊंचाई: = buttonheight ;
(Form1 . घटकों [मैं] TPanel के रूप में) . कैप्शन: = Programnames [k – 1] ; कार्यक्रम के लिए सेट / / बटन शीर्षक बटन – प्रोग्राम बटन के नाम सेट
(Form1 . घटकों [मैं] TPanel के रूप में) . Bevelinner: = bvRaised ;
(Form1 . घटकों [मैं] TPanel के रूप में) . BevelOuter: = bvRaised ;
(Form1 . घटकों [मैं] TPanel के रूप में) . फॉन्ट . साइज: = fontsize ;
inc (buttonindex) ;
अंत
अन्यथा
शुरू करना
(Form1 . घटकों [मैं] TPanel के रूप में) . दिखाई: = झूठी ;
अंत ;

इंक (कश्मीर) ;
अंत ;
अंत ;
अंत ;

कश्मीर: = 1 ;
buttonindex: 0 = ;
/ / Alignx: = (Form1 . clientWidth – (Labelrows * (labelwidth labelresultsize + + Xspace)) 2) div ;
/ / / / / / / Analogicaly लेबल के लिए – उसी प्रकार , लेबल
के लिए मैं: = 0 से Form1 . ComponentCount – 1 करने के लिए
शुरू करना
अगर (Form1 . अवयव [i] TLabel है तो)
शुरू करना
अगर (comparetext (Form1 . घटकों TLabel [i]) . नाम , ‘ लेबल ‘ + (कश्मीर) IntToStr) = 0 तो
शुरू करना

पंक्ति: = आधुनिक buttonindex (labelrows) ;
स्तंभ: = div buttonindex (labelrows) ;
अगर लंबाई (LabelNames k [ – 1])> ; / 0 / तो अगर लेबल के पाठ की लंबाई> ; ; 0 – अगर वर्णन है
शुरू करना
(Form1 . अवयव TLabel [i]) . बाएँ: = alignx पंक्ति + * (labelwidth + labelresultsize + Xspace) ; / / गणना एक्स स्थान
(Form1 . अवयव TLabel [i]) . शीर्ष: = yoffsetlabel स्तंभ + * (labelheight + yspace) ; / Y / स्थान की गणना
(Form1 . अवयव TLabel [i]) . चौड़ाई: = labelwidth ;
(Form1 . अवयव TLabel [i]) . ऊंचाई: = labelheight ;
(Form1 . घटकों TLabel [i]) . कैप्शन: = LabelNames [k – 1] ; / / / निरुपित लेबल कैप्शन – हेडर उपयुक्त लेबल
(Form1 . घटकों TLabel [i]) . फॉन्ट . रंग: = clwhite ; / / सेट लेबल के लिए डिफ़ॉल्ट रंग – लेबल के लिए डिफ़ॉल्ट रंग सेट
अगर स्थिति ( ‘ [ – % ] ‘ , LabelNames [k – 1])> ; 0 तो (Form1 . घटकों TLabel [i]) . फॉन्ट . रंग: = clyellow ; प्रकाश माप के लिए सेट / / रंग – रंग प्रकाश की माप के लिए
अगर स्थिति ( ‘ [ % ] ‘ , LabelNames [k – 1])> ; 0 तो (Form1 . घटकों TLabel [i]) . फॉन्ट . रंग: = क्लाक ; / / सेट प्रतिशत के लिए रंग माप – हित के मूल्य के लिए रंग
अगर स्थिति ( ‘ [सी] ‘ , LabelNames [k – 1])> ; 0 तो (Form1 . घटकों TLabel [i]) . फॉन्ट . रंग: = clwhite ; / / सेट तापमान प्रबंधन के लिए रंग – रंग तापमान मूल्यों के लिए
(Form1 . घटकों TLabel [i]) . फॉन्ट . साइज: = labelfontsize ; / / सेट लेबल के लिए फ़ॉन्ट आकार – पाठ लेबल के लिए फ़ॉन्ट आकार सेट
inc (buttonindex) ; / / अगला दिखाई लेबल – लेबल आगे प्रकट होता है
अंत
अन्यथा
शुरू करना
(Form1 . घटकों TLabel [i]) . दिखाई: = झूठी ; / / बिना पाठ लेबल छुपाएं – textu बिना लेबल छिपाना
अंत ;
इंक (कश्मीर) ; / / अगला लेबल – अगले लेबल
अंत ;
अंत ;
अंत ;
update_status ; / / अद्यतन वर्तमान उपकरण की स्थिति के लिए लॉग से पैनल – सर्वर eHouse से लॉग इन फ़ाइलों के चालक की अद्यतन स्थिति
अंत ;
ऑटो के बाद अंत परिणाम – कॉन्फ़िगर और बटन प्लेसमेंट कार्यक्रम के द्वारा और अनकही तत्वों को दूर (अगर तुम उन्हें पैनल पर पहुँच के अधिकारों पर प्रतिबंध की वजह से है या उत्पादन का उपयोग नहीं करना चाहती) .
 फार्म पर तत्वों के स्वचालित वितरण के अंतिम प्रभाव
और अधिक पढ़ें: गृह स्वचालन – नियंत्रक eHouse
गृह स्वचालन eHouse गृह स्वचालन निर्माता