কন্ট্রোল প্যানেল কক্ষ জন্য উইন্ডোজ ট্যাবলেট জন্য সফটওয়্যার ডেভেলপমেন্ট – ফর্ম

হোম অটোমেশন eHouse .
মূল ফর্ম (ট্যাবলেট পর্দার লেআউট তৈরি করুন . প্রধান ডিজিটাল আউটপুট RM সমস্ত ধরনের TPanel প্যানেল 24 ক্ষেত্র ফরম কৃত .
এই RoomManager (অথবা বৈদ্যুতিক) চালু আউট বাটন গঠন করা .
উপরন্তু , রঙ আউট পড়া রাজ্যের উপর নির্ভর করবে .
এই কারণে আমরা মান বোতাম বা অনুরূপ টাইপ TButton ব্যবহৃত , কারণ তারা রঙ পরিবর্তন সম্ভাবনা নেই .
আমরা তাদের কল ” outputX ” যেখানে এক্স হল আউটপুট সংখ্যা .
আমি স্থাপন করা হয় না প্রয়োজন , কারণ এটা স্বয়ংক্রিয় ভাবে হবে , এই অ্যাপ্লিকেশনটি . প্রতিটি বোতাম , আউটপুট একই ইভেন্ট (onClick) করা আবশ্যক নিয়োগ – output1Click .
প্রধান কৃত সকল প্রোগ্রামের জন্য ফরম 24 ক্ষেত্র TPanel টাইপ প্যানেল উপর RM চালানোর .
এই বর্তমান RoomManager (অর্থাত্ পাল্টাবার জন্য বোতাম গঠন করা , যেমন নিয়ন্ত্রণ জন্য গ্রুপ বৈদ্যুতিক ডিভাইস চালু / বন্ধ সঙ্গে প্রান্তিক মান পরিমাপ ইনপুট পরিবর্তন ব্যবহৃত . তাপমাত্রা) .
আমরা তাদের কল ” programX ” যেখানে এক্স হল বাটন সংখ্যা .
একভাবে , কোন প্রয়োজন স্থাপন , কারণ এটা স্বয়ংক্রিয় ভাবে হবে , এই অ্যাপ্লিকেশনটি .
প্রতিটি বোতাম , প্রোগ্রাম একই ইভেন্ট (onClick) করা উচিত নিয়োগ – program1Click .
টেক্সট লেবেল প্রধান ফর্ম আছে 16 ধরনের TLabel সমস্ত RoomManager এর পরিমাপ ফলাফল (Label16 যাও Label1 সংখ্যাযুক্ত) প্রদর্শন .
একইভাবে হিসাবে উপরোক্ত ক্ষেত্রে যাও স্থাপন করার প্রয়োজন হবে না .
জন্য চূড়ান্ত ফর্ম দেখুন  ঘরের নিয়ন্ত্রণ প্যানেল তৈরি গঠন
ফর্ম আরম্ভের:

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
পদ্ধতি TForm1 . FormCreate (প্রেরকের: TObject) ;
var alignx , buttonindex , সারি , স্তম্ভ , ট , আমি: পূর্ণসংখ্যা ;
লাগা
GetComputerName ; / / কম্পিউটার অথবা প্যানেল এর নাম পান – সার্চ
পাথ: = getcurrentdir () ; / / বর্তমান স্থানীয় ডিরেক্টরির পাথ আবেদন পান – ডিরেক্টরির মধ্যে পুনরুদ্ধার কোন প্রোগ্রাম
পাথ: = stringreplace (পাথ , ‘ \ বিন ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / আবেদন eHouse পথ পান
remotepath: = পাথ ; / / Inicialization জন্য remoteaccess জন্য একই পথ – একই দূরবর্তী ব্যবহারের জন্য পাথের প্রারম্ভে ম্যাপ
loadnames_rm ; / / লোড নিয়ামক নাম ehouse1
init_heat_temperature_names ; / / Init heatmanager নাম সমূহ
readethernetdevs ; / / ইথারনেট কন্ট্রোলার লোড eHouse নাম সমূহ
আমি: = 1 ;
যখন আমি < ; / যাও = / Paramcount কমান্ড লাইন আর্গুমেন্ট সঞ্চালন – কমান্ড লাইন প্রক্রিয়াকরণ
লাগা
যদি pos ( ‘ / এক্স: ‘ , (ParamStr (ঝ)) ছোট হাতের অক্ষর) = 1 তাহলে / / প্যানেলের প্রস্থ – প্যানেলের প্রস্থ
form1 . প্রস্থ: = chk_int (stringreplace (ParamStr (ঝ) , ‘ / এক্স: ‘ , ‘ ‘ , [Rfignorecase])) ;
যদি pos ( ‘ / S: ‘ , (ParamStr (ঝ)) ছোট হাতের অক্ষর) = 1 তাহলে / / প্যানেলের উচ্চতা – প্যানেলের উচ্চতা
form1 . উচ্চতা: = chk_int (stringreplace (ParamStr (ঝ) , ‘ / S: ‘ , ‘ ‘ , [Rfignorecase])) ;
যদি pos ( ‘ / আর: ‘ , (ParamStr (ঝ)) ছোট হাতের অক্ষর) = 1 তাহলে / / ডিভাইসের নাম (RoomManager) – RoomManger নাম
deviceindex: RMDeviceIndexByName = ((stringreplace (ParamStr (ঝ) , ‘ / আর: ‘ , ‘ ‘ , [Rfignorecase]))) ;
যদি pos ( ‘ / এ: ‘ , (ParamStr (ঝ)) ছোট হাতের অক্ষর) = 1 তাহলে / / ডিভাইস ঠিকানা (RoomManager) – RoomManager ঠিকানা
deviceindex: = (get_index_rm (stringreplace (ParamStr (ঝ) , ‘ / এ: ‘ , ‘ ‘ , [Rfignorecase]))) ;
যদি pos ( ‘ / P: ‘ , (ParamStr (ঝ))) ছোট হাতের অক্ষর তারপর = 1 / / দূরবর্তী এক্সেস পাথ – দূরবর্তী এক্সেস পাথ
remotepath: = ((stringreplace (ParamStr (ঝ) , ‘ / P: ‘ , ‘ ‘ , [Rfignorecase]))) ;
inc (ঝ) ;
শেষ ;
যদি form1 . প্রস্থ < ; 100 তারপর form1 . প্রস্থ: = 800 ; / / যদি আকার জন্য ভুল পরামিতি ডিফল্ট সেট করে – ডিফল্টরূপে
যদি form1 . উচ্চতা < ; 100 তারপর form1 . উচ্চতা: = 600 ;
devicestoupdatestatus: = IntToStr (rm [deviceindex] . Adrha) + ‘ – ‘ + IntToStr (rm [deviceindex] . adrl) ;
/ / সীমা বর্তমান অবস্থা RoomManager অনুসন্ধানের জন্য / অন্যান্য ডিভাইস ফিল্টার আউট
/ একক ডিভাইস pannel জন্য / সীমাবদ্ধতা UTILISATION জন্য চেক করুন
/ / শুধুমাত্র নির্বাচিত RoomManager বার কম CPU-র অবস্থা এবং সার্ভার eHouse চেক করুন
outputbuttonnames (deviceindex) ; / / বাটনের লেবেল আরম্ভ নাম সমূহ – বুট , বাটন এবং টেক্সট লেবেল
form1 . ক্যাপশান: = ‘ eHouse কন্ট্রোল প্যানেল: ‘ + Rm [deviceindex] . devname ; RoomManager নাম প্রধান ফরম / / সেট ক্যাপশন – হেডারের ফর্ম RoomManager নাম দেখায়
timer1 . ব্যবধান: = 3000 ; / / সেট, মিলিসেকেন্ডে ব্যক্ত আবর্তনশীল টাস্ক ব্যবধান
timer1 . সক্ষম: = সত্য ; / / স্বয়ংক্রিয় কর্ম (অবস্থা আপডেট শুরু
ট: = 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 (ট)) = 0 এর পরে / / যদি নামের গঠিত (আউটপুট)
লাগা
সারি: = buttonindex mod (সারি) ; / / সারি এবং কলাম ইনডেক্সসমূহ গণনা – কলাম ও সারির স্থানাঙ্ক হিসাব
কলাম: = buttonindex div (সারি) ;
যদি দৈর্ঘ্য (OutputNames [ট – 1])> ; তারপর 0 / শুধু / নামের সঙ্গে ouput বোতাম দেখায় – শুধুমাত্র নামের বাটন দেখায়
লাগা
(Form1 . সামগ্রী [i] হিসাবে TPanel) . বাম: = alignx + সারি * (buttonwidth + Xspace) ; / / ক্যালকুলেট X অক্ষ possition – X অক্ষের মধ্যে তাদের অবস্থান পরিবর্তন করে হিসাব
(Form1 . সামগ্রী [i] হিসাবে TPanel) . উপরের: = yoffsetouts + কলাম * (buttonheight + yspace) ; / / Y অক্ষ possition গণনা – Y অক্ষের মধ্যে তাদের অবস্থান পরিবর্তন করে হিসাব
(Form1 . সামগ্রী [i] হিসাবে TPanel) . প্রস্থ: = buttonwidth ; / / সেট প্রস্থ বাটন – উদাহরণ হিসাবে বোতামগুলি প্রস্থ
(Form1 . সামগ্রী [i] হিসাবে TPanel) . উচ্চতা: = buttonheight ; / / সেট বাটন উচ্চতা – উদাহরণ হিসাবে বোতামগুলি পরিমাণ
(Form1 . উপাদান [i] হিসাবে TPanel) . ক্যাপশান: = Outputnames [ট – 1] ; / / সেট বোতাম ক্যাপশন – বোতাম টেক্সট সেট
(Form1 . উপাদান [i] হিসাবে TPanel) . Bevelinner: = bvRaised ;
(Form1 . উপাদান [i] হিসাবে TPanel) . BevelOuter: = bvRaised ;
(Form1 . উপাদান [i] হিসাবে TPanel) . ঝরনা . ফাইলের আকার: = fontsize ; / / ফন্ট সেট ফাইলের আকার বাটন – বোতাম ফন্ট সাইজ সেট করে
inc (buttonindex) ; / / পরবর্তী বাটন দৃশ্যমান – পরের দেখুন
শেষ
অন্যথায়
লাগা
(Form1 . উপাদান [i] হিসাবে TPanel) . দৃশ্যমান: = মিথ্যা ; / / কোন নাম = বাটন প্রদর্শন না – নাম ছাড়া কি সরান
শেষ ;
inc (ট) ; / / পরবর্তী বাটন – পরবর্তী বাটন
শেষ ;
শেষ ;
শেষ ;
/ / / / / / / / / / / / প্রোগ্রাম জন্য একই বোতাম – একইভাবে জন্য বোতাম প্রোগ্রাম আরম্ভ যাও
buttonindex: = 0 ;
ট: = 1 ;
তোমার জন্য: = 0 form1 . ComponentCount – 1 যাও
লাগা
যদি (form1 . সামগ্রী [i] TPanel হয়) তারপর
লাগা
যদি comparetext ((form1 . উপাদান [i] হিসাবে TPanel) . নাম , ‘ কর্মসূচি ‘ + IntToStr (ট)) = 0 তারপর
লাগা

সারি: = buttonindex mod (সারি) ;
কলাম: = buttonindex div (সারি) ;
যদি দৈর্ঘ্য (ProgramNames [ট – 1])> ; তারপর 0
লাগা
(Form1 . সামগ্রী [i] হিসাবে TPanel) . বাম: = alignx + সারি * (buttonwidth + Xspace) ;
(Form1 . সামগ্রী [i] হিসাবে TPanel) . উপরের: = yoffsetprograms + কলাম * (buttonheight + yspace) ;
(Form1 . সামগ্রী [i] হিসাবে TPanel) . প্রস্থ: = buttonwidth ;
(Form1 . সামগ্রী [i] হিসাবে TPanel) . উচ্চতা: = buttonheight ;
(Form1 . উপাদান [i] হিসাবে TPanel) . ক্যাপশান: = Programnames [ট – 1] ; / / প্রোগ্রাম সেট জন্য বাটন ক্যাপশন বোতাম – প্রোগ্রাম সেট করে বাটনের নাম
(Form1 . উপাদান [i] হিসাবে TPanel) . Bevelinner: = bvRaised ;
(Form1 . উপাদান [i] হিসাবে TPanel) . BevelOuter: = bvRaised ;
(Form1 . উপাদান [i] হিসাবে TPanel) . ঝরনা . ফাইলের আকার: = fontsize ;
inc (buttonindex) ;
শেষ
অন্যথায়
লাগা
(Form1 . উপাদান [i] হিসাবে TPanel) . দৃশ্যমান: = মিথ্যা ;
শেষ ;

inc (ট) ;
শেষ ;
শেষ ;
শেষ ;

ট: = 1 ;
buttonindex: = 0 ;
/ / Alignx: = (form1 . clientWidth – (Labelrows * (labelwidth + + labelresultsize Xspace))) div 2 ;
/ / / / / / / Analogicaly জন্য লেবেল – একভাবে , লেবেল
তোমার জন্য: = 0 form1 . ComponentCount – 1 যাও
লাগা
যদি (form1 . সামগ্রী [i] হল TLabel তারপর)
লাগা
যদি comparetext ((form1 . উপাদান হিসাবে TLabel [i]) . নাম , ‘ লেবেল ‘ + IntToStr (ট)) = 0 তারপর
লাগা

সারি: = buttonindex mod (labelrows) ;
কলাম: = buttonindex div (labelrows) ;
যদি দৈর্ঘ্য (LabelNames [ট – 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 [ট – 1] ; / / / লেবেল পরিচয় লিপি প্রদান – হেডার উপযুক্ত লেবেল
(Form1 . উপাদান হিসাবে TLabel [i]) . ঝরনা . রঙ: = clwhite ; / / লেবেল সেট জন্য ডিফল্ট রং – লেবেল জন্য ডিফল্ট রং সেট
যদি pos ( ‘ [ – % ] ‘ , LabelNames [ট – 1])> ; 0 তারপর (form1 . উপাদান হিসাবে TLabel [i]) . ঝরনা . রঙ: = clyellow ; আলো পরিমাপের জন্য / / রঙ সেট করুন – জন্য রঙ আলো পরিমাপের
যদি pos ( ‘ [ % ] ‘ , LabelNames [ট – 1])> ; 0 তারপর (form1 . উপাদান হিসাবে TLabel [i]) . ঝরনা . রঙ: = ভাড়াটে প্রশংসাকারীর দল ; / / সেট শতাংশ জন্য রঙ পরিমাপ – সুদের মান জন্য রঙ
যদি pos ( ‘ [গ] ‘ , LabelNames [ট – 1])> ; 0 তারপর (form1 . উপাদান হিসাবে TLabel [i]) . ঝরনা . রঙ: = clwhite ; তাপমাত্রা পরিচালনার জন্য / / রঙ সেট করুন – জন্য কালার টেম্পারেচার মান
(Form1 . উপাদান হিসাবে TLabel [i]) . ঝরনা . ফাইলের আকার: = labelfontsize ; / / লেবেল সেট করে ফন্ট সাইজ – টেক্সট লেবেল ফন্ট সাইজ সেট করে
inc (buttonindex) ; / / পরবর্তী দৃশ্যমান লেবেল – লেবেল প্রদর্শিত পরবর্তী
শেষ
অন্যথায়
লাগা
(Form1 . উপাদান হিসাবে TLabel [i]) . দৃশ্যমান: = মিথ্যা ; / / ছাড়া টেক্সট লেবেল লুকান – textu ছাড়া লেবেল লুকান
শেষ ;
inc (ট) ; / / এর পরে লেবেল – পরের লেবেল
শেষ ;
শেষ ;
শেষ ;
update_status ; / / আপডেট লগগুলি থেকে বর্তমান অবস্থা ডিভাইসের জন্য প্যানেলের – আপডেট সার্ভার eHouse থেকে লগ ফাইলের ড্রাইভারের অবস্থা
শেষ ;
স্বয়ং পরে শেষ ফলাফল – কনফিগার করা প্রোগ্রাম দ্বারা এবং বাটন বসানো এবং অনুদিত উপাদান (যদি আপনি তাদের প্যানেলের কারণ এক্সেস অধিকারের সীমাবদ্ধতা আছে বা আউটপুট ব্যবহার করতে না চান) মুছে ফেলার জন্য .
 উপাদানের স্বয়ংক্রিয় ফরম বিতরণের চূড়ান্ত প্রভাব
আরো পড়ুন: হোম অটোমেশন – কনট্রোলারের eHouse
হোম অটোমেশন eHouse হোম অটোমেশন প্রস্তুতকর্তা