ونڈوز ٹیبلٹ کے لئے کنٹرول کے پینل کے کمرے کے لئے سافٹ ویئر کی ترقی – فارم

ہوم میشن eHouse .
مرکزی فارم (گولی سکرین کی ترتیب بنائیں . ڈیجیٹل RM نتائج کی تمام اقسام کے لئے اہم 24 شعبوں TPanel پینل کی فارم پر رکھ دیا گیا .
یہ بٹن بنانے کے RoomManager (یا بجلی) کو بند ہو جائے گا .
اس کے علاوہ , رنگ باہر پڑھنے کی حالت پر منحصر کرے گا .
اس وجہ سے ہم معیاری بٹن یا اسی طرح کی قسم TButton کا استعمال کیا , کیونکہ وہ رنگ تبدیل کرنے کا امکان نہیں ہے .
ہم انہیں فون ” outputX ” X پیداوار کی تعداد کہاں ہے .
میں تعینات کرنے کی ضرورت نہیں ہے , کیونکہ یہ خود کار طریقے سے کیا کریں گے , اس درخواست . ہر ایک کے بٹن کے لئے , پیداوار اسی (onClick) پروگرام میں تفویض کیا جائے ضروری ہے – output1Click .
تمام پروگراموں کے لئے اہم فارم 24 شعبوں TPanel قسم پینل پر رکھ دیا گیا چلانے RM .
یہ موجودہ RoomManager (یعنی سوئچنگ کے لئے بٹن بنائیں گے , گروپ کے برقی آلات میں سے دور / تریش کی پیمائش آدانوں میں تبدیلی کے ساتھ اس طرح کے ریگولیٹری کے لئے استعمال کیا جاتا ہے . ) درجہ حرارت .
ہم انہیں فون ” programX ” X بٹن کی تعداد کہاں ہے .
اسی طرح , تعینات کرنے کی ضرورت نہیں , کیونکہ یہ خود کار طریقے سے کیا کریں گے , اس درخواست .
ہر ایک کے بٹن کے لئے , پروگرام اسی (onClick) پروگرام میں رکھا جائے تفویض کیا جانا چاہئے – program1Click .
متن لیبل کا بنیادی فارم پر TLabel 16 RoomManager کی پیمائش کے نتائج (Label16 Label1 تعداد) کو ظاہر کرنے کے لئے اقسام ہیں .
اسی طرح کے طور پر مندرجہ بالا معاملات میں تعینات کرنے کی ضرورت نہیں ہے .
کے لئے آخری شکل دیکھیں  کمرے کنٹرول پینل بنانے کے لئے تشکیل
فارم کی ابتدا:

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
TForm1 ضابطے کی . FormCreate (مرسل: TObject) ;
متغیر alignx , buttonindex , صف , کالم , K , : عددی ;
شروع
GetComputerName ; / / کمپیوٹر یا پینل کے نام پر حاصل کریں – پڑھتا
راستے: = getcurrentdir () ; / / موجودہ مقامی راستہ ایپلیکیشن ڈائریکٹری میں حاصل کریں – ڈائریکٹری لکھا ہے جس میں پروگرام
راستے: stringreplace = راہ ( , ‘ بن \ ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / درخواست eHouse کے راستے حاصل کریں
remotepath: راہ = ; / inicialization کے لئے remoteaccess / اسی راستے – راستے کے آغاز میں ایک ہی دور دراز تک رسائی کے لئے نقشے
loadnames_rm ; / لوڈ / کنٹرولر ناموں ehouse1
init_heat_temperature_names ; / / Init heatmanager کے نام
readethernetdevs ; / / لوڈ کنٹرولرز ایتھرنیٹ eHouse کے نام
: = 1 ;
جب میں < ; = / Paramcount / کمانڈ لائن کی دلیل انجام – کمانڈ لائن پر عملدرآمد
شروع
اگر POS ( ‘ / X: ‘ , (ParamStr ()) چھوٹے) = 1 چوڑائی تو / پینل / – پینل کی چوڑائی
form1 . چوڑائی: = chk_int (stringreplace (ParamStr) ( , ‘ / X: ‘ , ‘ ‘ , ) [Rfignorecase]) ;
اگر POS ( ‘ / S: ‘ , خفی (ParamStr ()) اونچائی) = 1 پینل تو / / – پینل کے عروج کے
form1 . اونچائی: = chk_int (stringreplace (ParamStr) ( , ‘ / S: ‘ , ‘ ‘ , ) [Rfignorecase]) ;
اگر POS ( ‘ R / ‘ , خفی (ParamStr ())) = 1 تو / آلہ / نام (RoomManager) – RoomManger نام
deviceindex = RMDeviceIndexByName: ((stringreplace (ParamStr) ( , ‘ R / ‘ , ‘ ‘ , [Rfignorecase]))) ;
اگر POS ( ‘ / A: ‘ , (ParamStr ()) چھوٹے) 1 = تو / آلہ / (RoomManager پتہ) – RoomManager ایڈریس
: deviceindex) = (get_index_rm (stringreplace (ParamStr ( , ‘ / A: ‘ , ‘ ‘ , [Rfignorecase]))) ;
اگر POS ( ‘ P /: ‘ , (ParamStr ())) چھوٹے = 1 تو / ریموٹ / تک رسائی کا راستہ – دور دراز تک رسائی کا راستہ
کے remotepath: = ((stringreplace (ParamStr) ( , ‘ P /: ‘ , ‘ ‘ , [Rfignorecase]))) ;
انکا (میں) ;
آخر ;
اگر form1 . <چوڑائی ; 100 تو form1 . چوڑائی: 800 = ; / / اگر سائز کے لئے غلط پیرامیٹرز ڈیفالٹ متعین کرتا ہے – ڈیفالٹس
اگر form1 . <اونچائی ; 100 تو form1 . اونچائی: 600 = ;
devicestoupdatestatus: = IntToStr RM ([deviceindex] . Adrha) + ‘ – ‘ + IntToStr RM ([deviceindex] . adrl) ;
/ / موجودہ حیثیت RoomManager کے لئے تلاش حد / دوسرے آلات کو فلٹر
/ / حد کے استعمال کے لئے ایک آلہ pannel کے لئے چیک کریں
/ / صرف منتخب شدہ RoomManager کے اوقات کم CPU کی حیثیت اور سرور eHouse چیک کریں
outputbuttonnames (deviceindex) ; / / بٹن اور لیبل کے نام ابتدا – جوتے , بٹن اور متن لیبل
form1 . ذیلی سرخی: = ‘ eHouse کنٹرول پینل: ‘ + RM [deviceindex] . devname ; RoomManager نام اہم قسم کی ذیلی سرخی / / سیٹ – ہیڈر فارم RoomManager کے نام سے پتہ چلتا ہے
timer1 . وقفہ: 3000 = ; / milliseconds میں / سیٹ چکریی کام وقفہ
timer1 . کو چالو: سچ = ; / / خود کار طریقے سے کاموں کو شروع (کی حیثیت کو اپ ڈیٹ
K: = 1 ;
buttonindex: = 0 ; / موجودہ / بٹن انڈیکس (چاہے) – کی موجودہ تعداد (ظاہر)
صف: = 0 ; / موجودہ / بٹن قطار میں – موجودہ لائن میں موجودہ کلید کی تعداد
/ / کالم: = 0 ;
alignx: = form1 ( . clientWidth – (قطاریں) * (buttonwidth + Xspace)) 2 div ; / / مرکز پینل پر بٹن – بمرکز بلاکس بٹن
I: = 0 form1 . ComponentCount – 1 / / آؤٹ پٹ کے بٹن پر خود کار طریقے سے سیٹ اپ – خود کار طریقے سے اخراج کے بٹن ترتیب دیں
form1 پر ہر اعتراض کے لئے / / شروع – Form1 کے تمام عناصر کے لئے
اگر (form1 . اجزاء [] TPanel ہے) تو / / اگر اعتراض TPanel ہے (ہمارے بٹن) – اگر آبجیکٹ کی قسم (بٹن) TPanel
شروع
اگر comparetext ((form1 . اجزاء [] TPanel کے طور پر) . نام , ‘ پیداوار ‘ + IntToStr (K)) = 0 تو / / اگر نام پر مشتمل (پیداوار)
شروع
صف: = buttonindex MOD (قطار) ; / / قطار اور کالموں کے اشاریہ جات کا حساب – کالم اور قطار کے نقاط کا حساب لگاتا ہے ہے
کالم: = buttonindex div (قطار) ;
اگر لمبائی (OutputNames K [ – ) 1]> ; 0 تو / / صرف نام کے ساتھ ouput بٹن دکھاتا ہے – صرف نام کے ساتھ بٹن دکھاتا ہے
شروع
(Form1 . اجزاء [] TPanel کے طور پر) . بائیں: = alignx صف + * (buttonwidth Xspace +) ; / / کا حساب لگائیں X محور possition – X محور میں اس کی پوزیشن کا حساب لگاتا ہے
(Form1 . اجزاء [] TPanel کے طور پر) . سب سے اوپر: = yoffsetouts کالم + * (buttonheight yspace +) ; / / Y محور possition کا حساب لگائیں – Y محور میں اس کی پوزیشن کا حساب لگاتا ہے
(Form1 . اجزاء [] TPanel کے طور پر) . چوڑائی: buttonwidth = ; / / سیٹ چوڑائی بٹن – بٹن کی چوڑائی
(Form1 . اجزاء [] TPanel کے طور پر) . اونچائی: buttonheight = ; / / سیٹ بٹن اونچائی – بٹن کی رقم
(Form1 . اجزاء [] TPanel کے طور پر) . ذیلی سرخی: = Outputnames [K – 1] ; / سیٹ / بٹن سرخی – بٹن متن کا تعین کرتا ہے
(Form1 . اجزاء [] TPanel کے طور پر) . Bevelinner: bvRaised = ;
(Form1 . اجزاء [] TPanel کے طور پر) . BevelOuter: bvRaised = ;
(Form1 . اجزاء [] TPanel کے طور پر) . فونٹ . سائز: fontsize = ; / / فونٹ سائز کے بٹن سیٹ – بٹن کے لیے فونٹ سائز کا تعین کرتا ہے
انکا (buttonindex) ; / / بٹن نظر آئے – اگلے دیکھ
آخر
اور
شروع
(Form1 . اجزاء [] TPanel کے طور پر) . نظر آتا ہے: جھوٹی = ; / / کوئی نام = بٹن ظاہر نہیں ہے – نام کے بغیر چابیاں ہٹانے
آخر ;
انکا (K) ; / / بٹن – بٹن
آخر ;
آخر ;
آخر ;
/ / / / / / / / / / / / پروگرام کے لیے ایک ہی بٹن – اسی طرح کے بٹن کے لئے پروگرام شروع کرنے کا
buttonindex: = 0 ;
K: = 1 ;
I: = 0 form1 . ComponentCount – 1
شروع
اگر (form1 . اجزاء [] TPanel تو)
شروع
اگر comparetext ((form1 . اجزاء [] TPanel کے طور پر) . نام , ‘ پروگرام ‘ + (K) IntToStr) تو = 0
شروع

صف: = buttonindex MOD (قطار) ;
کالم: = buttonindex div (قطار) ;
اگر لمبائی (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 = ;
انکا (buttonindex) ;
آخر
اور
شروع
(Form1 . اجزاء [] TPanel کے طور پر) . نظر آتا ہے: جھوٹی = ;
آخر ;

انکا (K) ;
آخر ;
آخر ;
آخر ;

K: = 1 ;
buttonindex: = 0 ;
/ / Alignx: = form1 ( . clientWidth – (Labelrows * (labelwidth + labelresultsize + Xspace))) 2 div ;
/ / / / / / / Analogicaly لیبلز کے لئے – اسی طرح , لیبل
I: = 0 form1 . ComponentCount – 1
شروع
اگر (form1 . اجزاء [میں] TLabel ہے) تو
شروع
اگر comparetext ((form1 . اجزاء TLabel کے طور پر [میں]) . نام , ‘ لیبل ‘ + (K) IntToStr) تو = 0
شروع

صف: = buttonindex (labelrows) MOD ;
کالم: = buttonindex (labelrows) div ;
اگر لمبائی (LabelNames K [ – ) 1]> ; 0 اگر تو / / لیبل متن کی لمبائی> ; ; 0 – اگر بیان ہے
شروع
(Form1 . اجزاء TLabel کے طور پر [میں]) . بائیں: = alignx صف + * (labelwidth + labelresultsize Xspace +) ; / / کا حساب لگائیں X مقام
(Form1 . اجزاء TLabel کے طور پر [میں]) . سب سے اوپر: = yoffsetlabel کالم + * (labelheight yspace +) ; / / Y مقام کا حساب
(Form1 . اجزاء TLabel کے طور پر [میں]) . چوڑائی: labelwidth = ;
(Form1 . اجزاء TLabel کے طور پر [میں]) . اونچائی: labelheight = ;
(Form1 . اجزاء TLabel کے طور پر [میں]) . ذیلی سرخی: = LabelNames [K – 1] ; / / / لیبل سرخیاں مقرر – ہیڈرز مناسب لیبل
(Form1 . اجزاء TLabel کے طور پر [میں]) . فونٹ . رنگ: clwhite = ; / لیبل کے لئے سیٹ / ڈیفالٹ رنگ – لیبلز کے لئے پہلے سے طے شدہ رنگ کا تعین کرتا ہے
اگر POS ( ‘ [ – % ] ‘ , LabelNames K [ – ) 1]> ; تو 0 (form1 . اجزاء TLabel کے طور پر [میں]) . فونٹ . رنگ: clyellow = ; / روشنی پیمائش کے لئے سیٹ / رنگ – رنگ روشنی کی پیمائش کے لئے
اگر POS ( ‘ [ % ] ‘ , LabelNames K [ – ) 1]> ; تو 0 (form1 . اجزاء TLabel کے طور پر [میں]) . فونٹ . رنگ: Claque = ; / فیصد سیٹ / رنگ پیمائش – سود کی قیمت کے لئے رنگ
اگر POS ( ‘ [C] ‘ , LabelNames K [ – ) 1]> ; تو 0 (form1 . اجزاء TLabel کے طور پر [میں]) . فونٹ . رنگ: clwhite = ; درجہ حرارت کے انتظام کے لئے رنگ / / سیٹ – رنگ درجہ حرارت اقدار کے لئے
(Form1 . اجزاء TLabel کے طور پر [میں]) . فونٹ . سائز: labelfontsize = ; / لیبل کے لئے سیٹ / فونٹ سائز – متن لیبل کے لیے فونٹ سائز کا تعین کرتا ہے
انکا (buttonindex) ; / / اگلا نظر آئے لیبل – لیبل اگلے ظاہر ہوتا ہے
آخر
اور
شروع
(Form1 . اجزاء TLabel کے طور پر [میں]) . نظر آتا ہے: جھوٹی = ; / / کے بغیر متن لیبل چھپائیں – textu بغیر لیبل چھپائیں
آخر ;
انکا (K) ; / / اگلا لیبل – اگلے لیبل
آخر ;
آخر ;
آخر ;
update_status ; / / اپ ڈیٹ نوشتہ سے موجودہ آلہ کا درجہ پینل – اپ ڈیٹس سرور eHouse سے لاگ فائلوں کا ڈرائیور کا درجہ
آخر ;
آٹو کے بعد نتیجہ – ترتیب دیا ہے اور بٹن کی جگہ کا تعین کرنے کے پروگرام کی طرف سے کہی عناصر (اگر آپ ان تک رسائی کے حقوق پر پابندی کی وجہ سے پینل یا پیداوار کا استعمال کرنے کے لئے نہیں کرنا چاہتے ہیں) کو ہٹانے .
 فارم عناصر کے خود کار طریقے سے تقسیم کے حتمی اثر
مزید پڑھیں: ہوم میشن – کنٹرولرز eHouse
ہوم میشن eHouse ہوم میشن ڈویلپر