პროგრამული განვითარების საკონტროლო პანელები ოთახები Windows Tablet – ფორმა

სახლის ავტომატიზაციის eHouse .
შექმნა ძირითადი ფორმა (განლაგება ტაბლეტი ეკრანზე . განთავსებული ძირითადი ფორმა 24 სფეროებში TPanel პანელები ყველა ტიპის ციფრული მასალები RM .
ეს გახდება ღილაკებიდან აღმოჩნდება RoomManager (ან ელექტრო) .
გარდა ამისა , ფერი იქნება დამოკიდებული სახელმწიფოს წაიკითხა .
ამისათვის ჩვენ გამოიყენება სტანდარტული ღილაკებით ან მსგავსი ტიპის TButton , რადგან მათ არ აქვთ შესაძლებლობა შეცვალოს ფერი .
ჩვენ მოვუწოდებთ მათ ” outputX ” სადაც X არის რიცხვი, output .
მე არ უნდა განთავსდება , იმიტომ, რომ ეს ამას ავტომატურად , ამ განცხადების . თითოეული ღილაკს , გამომავალი უნდა დაეკისროს ამავე ღონისძიებაზე (onClick) – output1Click .
განთავსებული ძირითადი ფორმა 24 სფეროებში TPanel ტიპის პანელები ყველა პროგრამების გასაშვებად RM .
ეს გახდება ღილაკების გადართვა მიმდინარე RoomManager (ანუ , on / off ელექტრო მოწყობილობების ჯგუფს ცვლილება საზომი საშუალებებით of ზღურბლები გამოიყენება მარეგულირებელი ასეთი . ტემპერატურა) .
ჩვენ მოვუწოდებთ მათ ” programX ” სადაც X არის რიცხვი ღილაკს .
ანალოგიურად , საჭიროება არ განალაგებს , იმიტომ, რომ ეს ამას ავტომატურად , ამ განცხადების .
თითოეული ღილაკს , პროგრამა უნდა დაეკისროს ამავე ღონისძიებაზე (onClick) – program1Click .
მთავარ ფორმას ტექსტი ეტიკეტები არის 16 სახის TLabel არიან ყველა შედეგების გაზომვა RoomManager (დანომრილი Label1 to Label16) .
ანალოგიურად, როგორც ზემოთ შემთხვევებში არ გვჭირდება განათავსოს .
ნახვა საბოლოო ფორმა  ფორმა შექმნას ოთახი პანელი
ინიციალიზაციისას ფორმის:

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
პროცედურა TForm1 . FormCreate (Sender: TObject) ;
var alignx , buttonindex , row , სვეტი , K , მე: მთელი რიცხვი ;
დაიწყოს
GetComputerName ; / / დააგროვე სახელით კომპიუტერი ან პანელი – ნათქვამია
გეზი: = getcurrentdir () ; / / დააგროვე მიმდინარე ადგილობრივი გეზი განაცხადის დირექტორია – ნათქვამია კატალოგი, სადაც პროგრამა
გეზი: = stringreplace (გეზი , ‘ \ ბინ ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / დააგროვე გზა განაცხადის eHouse
remotepath: = ბილიკი ; / / იგივე გზა remoteaccess ამისთვის inicialization – დასაწყისში გეზი mapped იმავე დისტანციური წვდომის
loadnames_rm ; / / Load კონტროლერი სახელები ehouse1
init_heat_temperature_names ; / / Init HeatManager სახელები
readethernetdevs ; / / Load კონტროლერები Ethernet eHouse სახელები
მე: = 1 ;
ხოლო მე < ; = Paramcount რომ / / შეასრულოს ბრძანება ხაზი არგუმენტი – ამუშავებს command line
დაიწყოს
თუ POS ( ‘ / X: ‘ , მხედრულ (ParamStr (I))) = 1 შემდეგ / / panel სიგანე – სიგანე პანელი
form1 . სიგანე: = chk_int (stringreplace (ParamStr (I) , ‘ / X: ‘ , ‘ ‘ , [Rfignorecase])) ;
თუ POS ( ‘ / S: ‘ , მხედრულ (ParamStr (I))) = 1 შემდეგ / / panel სიმაღლე – სიმაღლე პანელი
form1 . სიმაღლე: = chk_int (stringreplace (ParamStr (I) , ‘ / S: ‘ , ‘ ‘ , [Rfignorecase])) ;
თუ POS ( ‘ / R: ‘ , მხედრულ (ParamStr (I))) = 1 შემდეგ / / მოწყობილობის სახელი (RoomManager) – RoomManger სახელი
deviceindex: = RMDeviceIndexByName ((stringreplace (ParamStr (I) , ‘ / R: ‘ , ‘ ‘ , [Rfignorecase]))) ;
თუ POS ( ‘ /: ‘ , მხედრულ (ParamStr (I))) = 1 შემდეგ / / მოწყობილობის მისამართი (RoomManager) – RoomManager მისამართი
deviceindex: = (get_index_rm (stringreplace (ParamStr (I) , ‘ /: ‘ , ‘ ‘ , [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 / გავფილტროთ სხვა მოწყობილობები
/ / Check ერთჯერადი მოწყობილობის pannel შეზღუდვის UTILISATION
/ / შემოწმება მხოლოდ სტატუსის შერჩეული RoomManager ჯერ ნაკლები CPU და სერვერზე eHouse
outputbuttonnames (deviceindex) ; / / ინიციალიზაცია ღილაკების და ეტიკეტები სახელები – ჩექმები , ღილაკების და ტექსტი ეტიკეტები
form1 . წარწერა: = ‘ eHouse პანელი: ‘ + Rm [deviceindex] . devname ; / / Set caption ძირითადი ფორმების RoomManager სახელი – header გვიჩვენებს სახელი ფორმის RoomManager
timer1 . ინტერვალი: = 3000 ; / / Set ციკლური ამოცანა შუალედი მილიწამებში
timer1 . შეეძლოს: = true ; / / Start ავტომატური დავალებები (სტატუსზე
K: = 1 ;
buttonindex: = 0 ; / / აქტუალური ღილაკს (ხილული) ინდექსი – მიმდინარე ხმების (აშკარა)
row: = 0 ; / / აქტუალური ღილაკი row – პუნქტების მიმდინარე გასაღები მიმდინარე ხაზი
/ / სვეტი: = 0 ;
alignx: = (form1 . clientWidth – (რიგები) * (buttonwidth + Xspace)) div 2 ; / / ცენტრი ღილაკების პანელი – centering ბლოკები ღილაკები
ამისთვის მე: = 0 to form1 . ComponentCount – 1 / / გამოყვანის ღილაკს ავტომატური კონფიგურაცია – ავტომატურად კონფიგურაციის Exit ღილაკს
დაიწყოს / / თითოეული ობიექტის form1 – ყველა ელემენტების Form1
თუ (form1 . კომპონენტები [i] არის TPanel) მაშინ / / თუ ობიექტი არის TPanel (ჩვენი ღილაკი) – თუ ობიექტი ტიპის TPanel (ღილაკი)
დაიწყოს
თუ comparetext ((form1 . კომპონენტები [i] როგორც TPanel) . სახელი , ‘ გამომავალი ‘ + IntToStr (ლ)) = 0, მაშინ / / თუ სახელი შედგება (output)
დაიწყოს
row: = buttonindex mod (სტრიქონები) ; / / გამოთვალეთ სტრიქონები და სვეტები ინდექსები – ითვლის კოორდინატები სვეტი და row
სვეტი: = buttonindex div (სტრიქონები) ;
თუ სიგრძე (OutputNames [K – 1])> ; 0 მაშინ / / მხოლოდ გვიჩვენებს გასასვლელი ღილაკი სახელი – მხოლოდ აჩვენებს ღილაკი სახელი
დაიწყოს
(Form1 . კომპონენტები [i] როგორც TPanel) . მარცხენა: = alignx + row * (buttonwidth + Xspace) ; / / დათვლა X ღერძი possition – ითვლის საკუთარი პოზიცია X ღერძი
(Form1 . კომპონენტები [i] როგორც TPanel) . დაბრუნება: = yoffsetouts + სვეტი * (buttonheight + yspace) ; / / გამოთვალეთ Y ღერძი possition – ითვლის საკუთარი პოზიცია Y ღერძი
(Form1 . კომპონენტები [i] როგორც TPanel) . სიგანე: = buttonwidth ; / / Set სიგანე ღილაკები – სიგანე ღილაკები
(Form1 . კომპონენტები [i] როგორც TPanel) . სიმაღლე: = buttonheight ; / / Set Buttons სიმაღლე – თანხის ღილაკები
(Form1 . კომპონენტები [i] როგორც TPanel) . წარწერა: = Outputnames [K – 1] ; / / Set ღილაკი წარწერა – ადგენს ღილაკს ტექსტი
(Form1 . კომპონენტები [i] როგორც TPanel) . Bevelinner: = bvRaised ;
(Form1 . კომპონენტები [i] როგორც TPanel) . BevelOuter: = bvRaised ;
(Form1 . კომპონენტები [i] როგორც TPanel) . შრიფტის . ზომა: = fontsize ; / / Set Font ზომა ღილაკი – ადგენს შრიფტის ზომა ღილაკს
inc (buttonindex) ; / / შემდეგი ღილაკს ხილული – ვხედავ შემდეგი
ბოლოს
სხვას
დაიწყოს
(Form1 . კომპონენტები [i] როგორც TPanel) . ხილული: = false ; / / No name = არ ჩანს ღილაკს – ამოიღონ გასაღებები გარეშე სახელი
ბოლოს ;
inc (ლ) ; / / შემდეგი ღილაკს – შემდეგი ღილაკს
ბოლოს ;
ბოლოს ;
ბოლოს ;
/ / / / / / / / / / / / ამავე ღილაკების პროგრამა – ანალოგიურად ამისთვის ღილაკებიდან დაიწყოს პროგრამების
buttonindex: = 0 ;
K: = 1 ;
ამისთვის მე: = 0 to form1 . ComponentCount – 1 დან
დაიწყოს
თუ (form1 . კომპონენტები [i] არის TPanel) მაშინ
დაიწყოს
თუ comparetext ((form1 . კომპონენტები [i] როგორც TPanel) . სახელი , ‘ პროგრამა ‘ + IntToStr (ლ)) = 0, მაშინ
დაიწყოს

row: = buttonindex mod (სტრიქონები) ;
სვეტი: = buttonindex div (სტრიქონები) ;
თუ სიგრძე (ProgramNames [K – 1])> ; 0 მაშინ
დაიწყოს
(Form1 . კომპონენტები [i] როგორც TPanel) . მარცხენა: = alignx + row * (buttonwidth + Xspace) ;
(Form1 . კომპონენტები [i] როგორც TPanel) . დაბრუნება: = yoffsetprograms + სვეტი * (buttonheight + yspace) ;
(Form1 . კომპონენტები [i] როგორც TPanel) . სიგანე: = buttonwidth ;
(Form1 . კომპონენტები [i] როგორც TPanel) . სიმაღლე: = buttonheight ;
(Form1 . კომპონენტები [i] როგორც TPanel) . წარწერა: = Programnames [K – 1] ; / / Set ღილაკს caption ღილაკების პროგრამა – ადგენს პროგრამის დასახელება ღილაკები
(Form1 . კომპონენტები [i] როგორც TPanel) . Bevelinner: = bvRaised ;
(Form1 . კომპონენტები [i] როგორც TPanel) . BevelOuter: = bvRaised ;
(Form1 . კომპონენტები [i] როგორც TPanel) . შრიფტის . ზომა: = fontsize ;
inc (buttonindex) ;
ბოლოს
სხვას
დაიწყოს
(Form1 . კომპონენტები [i] როგორც TPanel) . ხილული: = false ;
ბოლოს ;

inc (ლ) ;
ბოლოს ;
ბოლოს ;
ბოლოს ;

K: = 1 ;
buttonindex: = 0 ;
/ / Alignx: = (form1 . clientWidth – (Labelrows * (labelwidth + labelresultsize + Xspace))) div 2 ;
/ / / / / / / Analogicaly ამისთვის იარლიყები – ანალოგიურად , ეტიკეტების
ამისთვის მე: = 0 to form1 . ComponentCount – 1 დან
დაიწყოს
თუ (form1 . კომპონენტები [i] არის TLabel) მაშინ
დაიწყოს
თუ comparetext ((form1 . კომპონენტები [i] როგორც TLabel) . სახელი , ‘ ეტიკეტების ‘ + IntToStr (ლ)) = 0, მაშინ
დაიწყოს

row: = buttonindex mod (labelrows) ;
სვეტი: = buttonindex div (labelrows) ;
თუ სიგრძე (LabelNames [K – 1])> ; 0 მაშინ / / თუ სიგრძეზე ეტიკეტების ტექსტი> ; ; 0 – თუ აღწერილობა
დაიწყოს
(Form1 . კომპონენტები [i] როგორც TLabel) . მარცხენა: = alignx + row * (labelwidth + labelresultsize + Xspace) ; / / დათვლა X საიდან
(Form1 . კომპონენტები [i] როგორც TLabel) . დაბრუნება: = yoffsetlabel + სვეტი * (labelheight + yspace) ; / / გამოთვალეთ Y საიდან
(Form1 . კომპონენტები [i] როგორც TLabel) . სიგანე: = labelwidth ;
(Form1 . კომპონენტები [i] როგორც TLabel) . სიმაღლე: = labelheight ;
(Form1 . კომპონენტები [i] როგორც TLabel) . წარწერა: = LabelNames [K – 1] ; / / / მიანიჭეთ ეტიკეტების წარწერათა – სათაურებში შესაფერისი ეტიკეტები
(Form1 . კომპონენტები [i] როგორც TLabel) . შრიფტის . ფერი: = clwhite ; / / Set ნაგულისხმევი ფერი ეტიკეტების – ადგენს ნაგულისხმევი ფერი ეტიკეტები
თუ 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 შრიფტის ზომა ეტიკეტების – ადგენს შრიფტის ზომა text label
inc (buttonindex) ; / / შემდეგი თვალსაჩინო ეტიკეტების – ეტიკეტების ჩნდება შემდეგი
ბოლოს
სხვას
დაიწყოს
(Form1 . კომპონენტები [i] როგორც TLabel) . ხილული: = false ; / / დამალვა ტექსტის ეტიკეტები გარეშე – დამალვა ეტიკეტები გარეშე textu
ბოლოს ;
inc (ლ) ; / / შემდეგი ეტიკეტების – შემდეგი ეტიკეტების
ბოლოს ;
ბოლოს ;
ბოლოს ;
update_status ; / / განახლება პანელი მიმდინარე მოწყობილობის სტატუსი ჟურნალები – განახლებები სტატუსის მძღოლი შესვლა ფაილებს სერვერზე eHouse
ბოლოს ;
საბოლოო ჯამში, მას შემდეგ ავტო – კონფიგურაცია და ღილაკს placement მიერ პროგრამაში და ამოიღონ untold ელემენტები (თუ თქვენ არ გსურთ მათ პანელზე გამო შეზღუდვები უფლებების ხელმისაწვდომობის ან გამოყენება გამომავალი) .
 საბოლოო ეფექტი ავტომატური განაწილების ელემენტების ფორმა
დაწვრილებით: სახლის ავტომატიზაციის – კონტროლერები eHouse
სახლის ავტომატიზაციის eHouse სახლის ავტომატიზაციის მწარმოებელი