Ծրագրային ապահովման մշակում. Կառավարման վահանակների սենյակներ Windows Tablet – Տեսակ

Home Automation eHouse .
Ստեղծել հիմնական ձեւը (ստեղնաշար եւ էկրանի դեղահատ . Տեղադրված է հիմնական ձեւ fields 24 TPanel վահանակներ բոլոր տեսակի թվային արդյունքները RM .
Դրանք կազմում են կոճակներով պարզվում RoomManager (կամ էլեկտրական) .
Ի լրումն , գույնը կախված կլինի պետության ընթերցել .
Այդ իսկ պատճառով, մենք օգտագործել ստանդարտ կոճակները կամ նման տիպի TButton , քանի որ նրանք չունեն հնարավորություն փոխել գույնը .
Մենք կոչ ենք անում նրանց ” outputX ” որտեղ X Միավորների արտադրանքի .
Ես չեմ կարիք տեղակայվելու , քանի որ դա կարող է անել այն ինքնաբերաբար , Այս ծրագիրը . Յուրաքանչյուր կոճակը , արտադրանքի համար, որը նույն իրադարձությանը (onClick) – output1Click .
Տեղադրված է հիմնական ձեւ 24 դաշտեր TPanel տիպի վահանակներ բոլոր ծրագրերի վազել, RM .
Դրանք կազմում կոճակները համար անցումը ընթացիկ RoomManager (այսինքն, , / անջատելու էլեկտրական սարքեր խմբի հետ փոփոխություն է չափման միջոցները, որ կիրառվում շեմերը կարգավորելու համար, ինչպիսիք են . ջերմաստիճան) .
Մենք կոչ ենք անում նրանց ” programX ” որտեղ X համարը կոճակը .
Նմանապես , չարժե տեղակայել , քանի որ դա կարող է անել այն ինքնաբերաբար , Այս ծրագիրը .
Յուրաքանչյուր կոճակը , Ծրագիրը պետք է նշանակվել նույն իրադարձությանը (onClick) – program1Click .
Հիմնական ձեւով տեքստ պիտակների են 16 տեսակի TLabel ցուցադրելու բոլոր չափումների արդյունքները RoomManager (համարակալվում է Label1 Label16) .
Նմանապես, ինչպես նաեւ վերը նշված դեպքերում անհրաժեշտ չէ տեղակայել .
Դիտել վերջնական տեսքի համար:  ձեւով ստեղծել սենյակ Control Panel
Initialization ձեւի:

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
կարգը TForm1 . FormCreate (Sender: TObject) ;
var alignx , buttonindex , թիավարում , սյունակ , k , I: ամբողջ թիվ ;
սկսել
GetComputerName ; / / Get անունը համակարգչի կամ վահանակ – ասված է
Path: getcurrentdir = () ; / / Get ներկայիս ուղին տեղական ծրագրերի գրացուցակը – Թղթապանակ որում ասված է, որ ծրագիրը
Path: = stringreplace (ճանապարհ , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Get ճանապարհը eHouse դիմումը
remotepath: = ճանապարհը ; / / Նույնն է remoteaccess համար inicialization – սկզբին ճանապարհին mapped նույն հեռավոր հասանելիության
loadnames_rm ; / / Բեռնել controller անունները ehouse1
init_heat_temperature_names ; / / Init HeatManager անունները
readethernetdevs ; / / Load վերահսկողները Ethernet eHouse անունները
i = 1 ;
իսկ ես < ; = Paramcount է / / կատարել հրամանի տող փաստարկ – գործընթացների հրամանի տող
սկսել
եթե POS ( ‘ / X: ‘ , փոքրատառ (ParamStr (i))) = 1, ապա / / վահանակի լայնությունը – լայնությունը վահանակի վրա
form1 . Լայնությունը: = chk_int (stringreplace (ParamStr (i) , ‘ / X: ‘ , ‘ ‘ , [Rfignorecase])) ;
եթե POS ( ‘ / S: ‘ , փոքրատառ (ParamStr (i))) = 1, ապա / / վահանակի բարձրության համեմատ – բարձրությունը վահանակի վրա
form1 . բարձրություն = chk_int (stringreplace (ParamStr (i) , ‘ / S: ‘ , ‘ ‘ , [Rfignorecase])) ;
եթե POS ( ‘ / R: ‘ , փոքրատառ (ParamStr (i))) = 1, ապա / / սարքի անունը (RoomManager) – RoomManger անունը
deviceindex: = RMDeviceIndexByName ((stringreplace (ParamStr (i) , ‘ / R: ‘ , ‘ ‘ , [Rfignorecase]))) ;
եթե POS ( ‘ / A: ‘ , փոքրատառ (ParamStr (i))) = 1, ապա / / սարքը հասցեն (RoomManager) – RoomManager հասցեն
deviceindex: = (get_index_rm (stringreplace (ParamStr (i) , ‘ / A: ‘ , ‘ ‘ , [Rfignorecase]))) ;
եթե POS ( ‘ / P: ‘ , փոքրատառ (ParamStr (i))) = 1, ապա / / հեռակա հասանելիության ճանապարհ – հեռավոր մուտք ճանապարհը
remotepath: = ((stringreplace (ParamStr (i) , ‘ / P: ‘ , ‘ ‘ , [Rfignorecase]))) ;
INC. (i) ;
վերջ ;
եթե form1 . լայնությունը < ; 100, ապա form1 . լայնություն = 800 ; / / Եթե սխալ պարամետրերը չափի սահմանում կանխադրվածը – Նախնականը
եթե form1 . Բարձրությունը < ; 100, ապա form1 . Հասակը: 600 = ;
devicestoupdatestatus: = IntToStr (RM [deviceindex] . Adrha) + ‘ – ‘ + IntToStr (RM [deviceindex] . adrl) ;
/ / Limit փնտրում Ներկա կարգավիճակը RoomManager / ֆիլտրում է այլ սարքերի
/ / Ստուգել մեկ սարքի pannel համար սահմանափակումը UTILISATION
/ / Ստուգեք միայն կարգավիճակի ընտրված RoomManager անգամ պակաս պրոցեսորի եւ սերվերի eHouse
outputbuttonnames (deviceindex) ; / / Initialize կոճակ ու պիտակների անունները – երկարաճիտք կոշիկներ , կոճակները եւ տեքստային պիտակներ
form1 . վերնագիր = ‘ eHouse Control Panel: ‘ + RM [deviceindex] . devname ; / / Set վերնագիր հիմնական ձեւերի RoomManager Name – վերնագիր ցույց է տալիս անունը ձեւի RoomManager
timer1 . Ինտերվալ: = 3000 ; / / Set ցիկլային խնդիրը ընդմիջում է milliseconds
timer1 . Միացված: = ճիշտ ; / / Start ավտոմատ առաջադրանքներ (Կարգավիճակի թարմացում
K: 1 = ;
buttonindex: = 0 ; / / Միջին կոճակը (տեսանելի) ինդեքս – ընթացիկ համարը կողմից (ակնհայտ է)
տող: = 0 ; / / Միջին կոճակը շարքում – Միավորների քան ընթացիկ բանալին ընթացիկ գծում
/ / Սյունակ: = 0 ;
alignx: = (form1 . clientWidth – (Rows) * (buttonwidth + Xspace)) DIV 2 ; / / Կենտրոն կոճակները վահանակի – centering blocks կոճակները
ես: = 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: World: = yoffsetouts + սյունակ * (buttonheight yspace +) ; / / Հաշվել, y առանցքի possition – հաշվարկում է իր դիրքը, y առանցքի
(Form1 . Բաղադրիչներ [i] Ինչպես TPanel) . լայնություն = buttonwidth ; / / Set Լայնությունը Buttons – Տառատեսակ կոճակների
(Form1 . Բաղադրիչներ [i] Ինչպես TPanel) . Հասակը: = buttonheight ; / / Set Buttons Հասակը – Գումարը կոճակներ
(Form1 . բաղադրիչները, [i] եւ TPanel) . վերնագիր = Outputnames [K – 1] ; / / Set Button Մակագիր – սահմանում կոճակը տեքստը
(Form1 . բաղադրիչները, [i] եւ TPanel) . Bevelinner: = bvRaised ;
(Form1 . բաղադրիչները, [i] եւ TPanel) . BevelOuter: = bvRaised ;
(Form1 . բաղադրիչները, [i] եւ TPanel) . տառաշար . Չափ: = fontsize ; / / Set Տառատեսակի Չափ Button – սահմանում է տառատեսակի չափսը կոճակը
INC (buttonindex) ; / / Next կոճակը տեսանելի – տես հաջորդ
վերջ
ուրիշ
սկսել
(Form1 . բաղադրիչները, [i] եւ TPanel) . Տեսանելի: = համապատասխանում իրականությանը ; / / No name = ցույց չեն կոճակը – հեռացնել ստեղները առանց անվանման
վերջ ;
INC (k) ; / / Next կոճակը – ՀԱՋՈՐԴ կոճակը
վերջ ;
վերջ ;
վերջ ;
/ / / / / / / / / / / / Նույն կոճակները ղեկավարման համար ծրագրի – Նմանապես, որ կոճակները կսկսի ծրագրեր
buttonindex: = 0 ;
K: 1 = ;
ես: = 0 form1 . ComponentCount – 1 – ից
սկսել
եթե (form1 . Բաղադրիչներ [i] TPanel է), ապա
սկսել
եթե comparetext ((form1 . բաղադրիչները, [i] եւ TPanel) . անվանում , ‘ ծրագիր ‘ + IntToStr (K)) = 0, ապա
սկսել

տող: = buttonindex MOD (տող) ;
սյունակում: = buttonindex DIV (տող) ;
եթե երկարություն (ProgramNames [K – 1])> ; 0, ապա
սկսել
(Form1 . Բաղադրիչներ [i] Ինչպես TPanel) . Մնացել է: = alignx + տող * (buttonwidth Xspace +) ;
(Form1 . Բաղադրիչներ [i] Ինչպես TPanel) . Top: World: = yoffsetprograms + սյունակ * (buttonheight yspace +) ;
(Form1 . Բաղադրիչներ [i] Ինչպես TPanel) . լայնություն = buttonwidth ;
(Form1 . Բաղադրիչներ [i] Ինչպես TPanel) . Հասակը: = buttonheight ;
(Form1 . բաղադրիչները, [i] եւ TPanel) . վերնագիր = Programnames [K – 1] ; / / Set կոճակը վերնագիր կոճակները ղեկավարման համար ծրագրի – սահմանում անունը Ծրագրի կոճակներ
(Form1 . բաղադրիչները, [i] եւ TPanel) . Bevelinner: = bvRaised ;
(Form1 . բաղադրիչները, [i] եւ TPanel) . BevelOuter: = bvRaised ;
(Form1 . բաղադրիչները, [i] եւ TPanel) . տառաշար . Չափ: = fontsize ;
INC (buttonindex) ;
վերջ
ուրիշ
սկսել
(Form1 . բաղադրիչները, [i] եւ TPanel) . Տեսանելի: = համապատասխանում իրականությանը ;
վերջ ;

INC (k) ;
վերջ ;
վերջ ;
վերջ ;

K: 1 = ;
buttonindex: = 0 ;
/ / Alignx: = (form1 . clientWidth – (Labelrows * (labelwidth + + labelresultsize Xspace))) DIV 2 ;
/ / / / / / / Analogicaly համար պիտակներից – Նմանապես , պիտակը
ես: = 0 form1 . ComponentCount – 1 – ից
սկսել
եթե (form1 . Բաղադրիչներ [i] TLabel է), ապա
սկսել
եթե comparetext ((form1 . բաղադրիչները, [i] եւ TLabel) . անվանում , ‘ պիտակ ‘ + IntToStr (K)) = 0, ապա
սկսել

տող: = buttonindex MOD (labelrows) ;
սյունակում: = buttonindex DIV (labelrows) ;
եթե երկարություն (LabelNames [K – 1])> ; 0 ապա / / եթե երկարությունը պիտակի տեքստի> ; ; 0 – եթե նկարագրությունը
սկսել
(Form1 . Բաղադրիչներ [i] Ինչպես TLabel) . Մնացել է: = alignx + տող * (labelwidth + + labelresultsize Xspace) ; / / Հաշվարկել X Որտեղից
(Form1 . Բաղադրիչներ [i] Ինչպես TLabel) . Top: World: = yoffsetlabel + սյունակ * (labelheight yspace +) ; / / Բեռնել Y դիրքը
(Form1 . Բաղադրիչներ [i] Ինչպես TLabel) . լայնություն = labelwidth ;
(Form1 . Բաղադրիչներ [i] Ինչպես TLabel) . Հասակը: = labelheight ;
(Form1 . բաղադրիչները, [i] եւ TLabel) . վերնագիր = LabelNames [K – 1] ; / / / Վերագր պիտակի նշումները – Տեղական ամենահարմար labels
(Form1 . բաղադրիչները, [i] եւ TLabel) . տառաշար . Գույն: = clwhite ; / / Set Default գույնը պիտակի – սահմանում գույնը պիտակների
եթե POS ( ‘ [ – % ] ‘ , LabelNames [K – 1])> ; 0, ապա (form1 . բաղադրիչները, [i] եւ TLabel) . տառաշար . Գույն: = clyellow ; / / Set գույնը թեթեւ չափման – համար չափման գունավոր լուսավորող
եթե POS ( ‘ [ % ] ‘ , LabelNames [K – 1])> ; 0, ապա (form1 . բաղադրիչները, [i] եւ TLabel) . տառաշար . Գույն: = Claque ; / / Set գույնը չափման համար տոկոսով – գույնը արժեքը տոկոսների
եթե POS ( ‘ [C] ‘ , LabelNames [K – 1])> ; 0, ապա (form1 . բաղադրիչները, [i] եւ TLabel) . տառաշար . Գույն: = clwhite ; / / Set գույնը ջերմաստիճանի կառավարման – համար Գունային ջերմաստիճան արժեքների
(Form1 . բաղադրիչները, [i] եւ TLabel) . տառաշար . Չափ: = labelfontsize ; / / Set տառատեսակի չափսը պիտակի – սահմանում է տառաչափը համար տեքստային պիտակի
INC (buttonindex) ; / / Հաջորդ տեսանելի պիտակի – պիտակ հայտնվում Հաջորդ
վերջ
ուրիշ
սկսել
(Form1 . բաղադրիչները, [i] եւ TLabel) . Տեսանելի: = համապատասխանում իրականությանը ; / / Թաքցնել տեքստային labels առանց – թաքցնել labels առանց textu
վերջ ;
INC (k) ; / / Հաջորդ պիտակի – Հաջորդ պիտակ
վերջ ;
վերջ ;
վերջ ;
update_status ; / / Update վահանակ ընթացիկ սարքի կարգավիճակի տեղեկամատյանները – թարմացումները կարգավիճակը վարորդը գրանցումից ֆայլերը սերվերի eHouse
վերջ ;
Վերջնական արդյունքը հետո Ավտո – կազմաձեվվում կոճակը Տեղադրում ծրագրի կողմից եւ հանեք անասելի տարրերը (եթե չեք ուզում, որ դրանք պետք է վահանակի վրա, քանի որ սահմանափակումների իրավունքների մասին մուտք գործել կամ օգտվել է արտադրության) .
 Վերջնական հետեւանքները ավտոմատ բաշխման տարրերի վրա, ձեւի
Read more: Home Automation – Կարգավորիչներ eHouse
Home Automation eHouse Home Automation Արտադրող