توسعه نرم افزار برای اتاق کنترل پنل برای ویندوز قرص – فرم

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

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
روش TForm1 . FormCreate (فرستنده: TObject) ;
ور alignx , buttonindex , ردیف , ستون , K , من: عدد صحیح ;
شروع
GetComputerName ; / / گرفتن نام کامپیوتر و یا پانل – بار خوانده شده
مسیر: getcurrentdir () ; / / در حال حاضر محلی مسیر دایرکتوری نرم افزار – خواند دایرکتوری که در آن برنامه
مسیر: = stringreplace (مسیر , ‘ \ بن ‘ , ‘ \ ‘ , [Rfignorecase) ; / / گرفتن مسیر از eHouse از نرم افزار
remotepath: = راه ; / / همان مسیر برای remoteaccess برای inicialization – در آغاز راه برای دسترسی از راه دور نقشه برداری
loadnames_rm ; / / نام کنترل بار ehouse1
init_heat_temperature_names ; / / init انجام heatmanager نام
readethernetdevs ; / / کنترل بار نام اترنت eHouse از
I: = 1 ;
در حالی که من < ; = Paramcount / / انجام آرگومان خط فرمان – پردازش خط فرمان
شروع
اگر POS ( ‘ / X: ‘ , کوچک (ParamStr (من))) = 1 پس از آن / / پانل عرض – عرض پانل
Form1 نوشته . عرض: = chk_int (stringreplace (ParamStr (I) , ‘ / X: ‘ , ‘ ‘ , [Rfignorecase)) ;
اگر POS ( ‘ / S: ‘ , کوچک (ParamStr (من))) = 1 پس از آن / / ارتفاع پانل – ارتفاع پانل
Form1 نوشته . ارتفاع: = chk_int (stringreplace (ParamStr (I) , ‘ / S: ‘ , ‘ ‘ , [Rfignorecase)) ;
اگر POS ( ‘ / R: ‘ , کوچک (ParamStr (من))) = 1 / / دستگاه نام (RoomManager) – نام RoomManger
deviceindex: = RMDeviceIndexByName ((stringreplace (ParamStr (I) , ‘ / R: ‘ , ‘ ‘ , [Rfignorecase]))) ;
اگر POS ( ‘ / A: ‘ , کوچک (ParamStr (من))) = 1 / / دستگاه آدرس (RoomManager) – آدرس RoomManager
deviceindex: = (get_index_rm (stringreplace (ParamStr (I) , ‘ / A: ‘ , ‘ ‘ , [Rfignorecase]))) ;
اگر POS ( ‘ / P: ‘ , کوچک (ParamStr (من))) = 1 پس از آن / / مسیر دسترسی از راه دور – مسیر دسترسی از راه دور
remotepath: = ((stringreplace (ParamStr (I) , ‘ / P: ‘ , ‘ ‘ , [Rfignorecase]))) ;
وارز (I) ;
پایان ;
اگر 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 ; / / تنظیم چرخهای فاصله کار در میلی ثانیه
timer1 . فعال: = واقعی ; / / شروع وظایف خودکار (به روز رسانی وضعیت
K: = 1 ;
buttonindex: 0 ; / / دکمه کنونی (قابل مشاهده) شاخص – تعداد فعلی (ظاهری)
ردیف: = 0 ; را فشار دهید / / جاری در ردیف – تعداد کلید در حال حاضر در خط فعلی
/ / ستون: = 0 ;
alignx: = (Form1 نوشته . clientWidth – (ردیف) * (buttonwidth + Xspace)) دیو 2 ; / / مرکز دکمه در پنل – مرکزی بلوک دکمه های
برای من: = 0 به Form1 نوشته . ComponentCount – 1 / / خروجی نصب دکمه اتوماتیک – به صورت خودکار دکمه خروج پیکربندی
آغاز خواهد شد / / برای هر شی در Form1 نوشته – برای تمام عناصر از Form1 نوشته
(Form1 نوشته . قطعات [من] است TPanel) / / اگر جسم TPanel (دکمه ما) – در صورتی که نوع جسم TPanel (دکمه)
شروع
اگر comparetext ((Form1 نوشته . قطعات [من] به عنوان TPanel) . نام , ‘ تولید ‘ + IntToStr (k)) = 0 پس از آن / / اگر نام تشکیل شده (خروجی)
شروع
ردیف: = buttonindex وزارت دفاع (ردیف) ; / / محاسبه ردیف ها و ستون شاخص – محاسبه مختصات سطر و ستون
ستون: = buttonindex DIV (ردیف) ;
اگر طول (OutputNames [K – 1])> ; 0 آنگاه / / فقط دکمه های خروجی را نشان می دهد با نام – فقط دکمه های با نام را نشان می دهد
شروع
(Form1 نوشته . قطعات [من] به عنوان TPanel) . سمت چپ: = alignx + ردیف * (buttonwidth + Xspace) ; / / محاسبه موقعیت محور X – محاسبه موقعیت خود را در محور X
(Form1 نوشته . قطعات [من] به عنوان TPanel) . بالا: = yoffsetouts + ستون * (buttonheight + yspace) ; / / محاسبه موقعیت محور Y – محاسبه موقعیت خود را در محور 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 ;
برای من: = 0 به Form1 نوشته . ComponentCount – 1 تا
شروع
(Form1 نوشته . قطعات [] TPanel) و سپس
شروع
اگر comparetext ((Form1 نوشته . قطعات [من] به عنوان TPanel) . نام , ‘ برنامه ‘ + IntToStr (k)) = 0 آنگاه
شروع

ردیف: = buttonindex وزارت دفاع (ردیف) ;
ستون: = 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 ;
/ / / / / / / Analogicaly برچسبها – به طور مشابه , برچسب
برای من: = 0 به Form1 نوشته . ComponentCount – 1 تا
شروع
(Form1 نوشته . قطعات [] TLabel) و سپس
شروع
اگر comparetext ((Form1 نوشته . قطعات [] TLabel) . نام , ‘ برچسب ‘ + IntToStr (k)) = 0 آنگاه
شروع

ردیف: = buttonindex وزارت دفاع (labelrows) ;
ستون: = buttonindex دیو (labelrows) ;
اگر طول (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 از صفحه اصلی تولید کننده اتوماسیون