פיתוח תוכנה עבור חדרי בקרת לוחות עבור Windows Tablet – טופס

בית אוטומציה eHouse .
צור הטופס הראשי (פריסה של מסך מחשב הלוח . יוטבע על הטופס העיקרי פנלי TPanel 24 שדות לכל סוגי יציאות דיגיטליות RM .
אלה יהוו את הכפתורים לכבות RoomManager (או חשמלי) .
בנוסף , הצבע יהיה תלוי במצב של לקרוא את .
מסיבה זו השתמשנו בכפתורים הסטנדרטיים או TButton סוג דומה , משום שאין להם את האפשרות לשנות את הצבע .
אנו קוראים להם ” outputX ” כאשר X הוא מספר הפלט .
אני לא צריך להתפרס , כי זה יהיה לעשות את זה באופן אוטומטי , יישום זה . עבור כל כפתור , הפלט יש להקצות לאותו אירוע (onClick) – output1Click .
יוטבע על הטופס הראשי 24 שדות פנלים מסוג TPanel עבור כל התוכניות לרוץ RM .
אלה יהוו את הכפתורים למעבר RoomManager הנוכחי (כלומר , ההפעלה / כיבוי מכשירים חשמליים של הקבוצה עם שינויים בתשומות המדידה של הספים המשמש לויסות כזה . טמפרטורה) .
אנו קוראים להם ” programX ” כאשר X הוא המספר על לחצן .
כמו , אין צורך בפריסה , כי זה יהיה לעשות את זה באופן אוטומטי , יישום זה .
עבור כל כפתור , התכנית אמורה להיות מוקצה לאותו אירוע (onClick) – program1Click .
בטופס העיקרי של תוויות טקסט הם 16 סוגים TLabel לתצוגה כל התוצאות של מדידות של RoomManager (ממוספר Label1 לLabel16) .
כמו כן כמו במקרים הנ"ל לא צריך לפרוס .
צפו בצורתו הסופית ל  טופס כדי ליצור לוח בקרת חדר
אתחול של הטופס:

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
הליך TForm1 . FormCreate (שולח: TObject) ;
var alignx , buttonindex , שורה , עמודה , k , אני: שלם ;
להתחיל
GetComputerName ; / / קבל את שם מחשב או הפנל – קורא
נתיב: = getcurrentdir () ; / / קבל את מדריך הבקשה הנוכחי המקומי הנתיב – קורא את הספרייה שבה התכנית
נתיב: = stringreplace (נתיב , ‘ \ בן ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / קבל מסלול של eHouse יישום
remotepath: = נתיב ; / / באותו הנתיב לremoteaccess לinicialization – בתחילת הדרך מיפה לאותה הגישה מרחוק
loadnames_rm ; שמות בקר / טעינה / ehouse1
init_heat_temperature_names ; / / אתחול HeatManager שמות
readethernetdevs ; / / טעינת בקרי שמות eHouse אתרנט
אני: = 1 ;
בזמן שאני < ; = Paramcount ל/ / לבצע ארגומנט שורת הפקודה – מעבד את שורת הפקודה
להתחיל
אם pos ( ‘ / X: ‘ , אותיות קטנות (ParamStr (אני))) = 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 (אני))) = 1 אז שם / מכשיר / (RoomManager) – שם RoomManger
deviceindex: = RMDeviceIndexByName ((stringreplace (ParamStr (i) , ‘ / R: ‘ , ‘ ‘ , [Rfignorecase]))) ;
אם pos ( ‘ /: ‘ , אותיות קטנות (ParamStr (אני))) = 1 אז כתובת / מכשיר / (RoomManager) – כתובת RoomManager
deviceindex: = (get_index_rm (stringreplace (ParamStr (i) , ‘ /: ‘ , ‘ ‘ , [Rfignorecase]))) ;
אם pos ( ‘ / P: ‘ , אותיות הקטנות (ParamStr (אני))) = 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) ;
/ מגבלה / מחפשת RoomManager המצב הנוכחי / לסנן התקנים אחרים
/ / בדקו אם המכשיר pannel היחיד עבור UTILISATION הגבלה
/ / בדקו רק את מעמדו של המעבד נבחר RoomManager פעמים פחות ו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 ; / / מרכז כפתורים על פנל – כפתורי לוקי מרכוז
עבור i: = 0 עד Form1 . ComponentCount – 1 / / פלט כפתור התקנה אוטומטית – להגדיר באופן אוטומטי על לחצן יציאה
מתחיל / / לכל אובייקט בForm1 – לכל האלמנטים של Form1
אם (Form1 . מרכיבים [i] הוא TPanel) אז / / אם האובייקט הוא TPanel (הלחץ שלנו) – אם TPanel סוג האובייקט (כפתור)
להתחיל
אם comparetext ((Form1 . מרכיבים [i] כTPanel) . שם , ‘ תפוקה ‘ + IntToStr (k)) = 0 אז / / אם שם מורכב (פלט)
להתחיל
שורה: = buttonindex mod (שורות) ; / / חישוב שורות ועמודות אינדקסים – מחשב את הקואורדינטות של העמודה והשורה
טור: = buttonindex div (שורות) ;
אם אורך (OutputNames [יא – 1])> ; 0 אז / / רק מראה כפתורי ouput עם שם – מציג כפתורים עם השם בלבד
להתחיל
(Form1 . מרכיבים [i] כTPanel) . שמאל: = alignx + שורה * (buttonwidth + Xspace) ; חישוב / על מיקום / ציר X – מחשב את עמדתה בציר X
(Form1 . מרכיבים [i] כTPanel) . עליון: = yoffsetouts + עמודה * (buttonheight + yspace) ; / / חישוב על מיקום ציר Y – מחשב את עמדתה בציר 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) . גופן . גודל: = גודל גופן ; / / סטן גודל גופן – מגדיר את גודל הגופן לכפתור
inc (buttonindex) ; / / כפתור הבא גלוי – ראה הבא
הסוף
אחר
להתחיל
(Form1 . מרכיבים [i] כTPanel) . גלוי: = false ; / / אין שם = לא מראה כפתור – להסיר את המפתחות ללא שם
הסוף ;
inc (יא) ; הכפתור / / בא – הכפתור הבא
הסוף ;
הסוף ;
הסוף ;
/ / / / / / / / / / / / אותם לחצנים לתכנית – בדומה לכפתורים להשיק תוכניות
buttonindex: = 0 ;
יא: = 1 ;
עבור i: = 0 עד Form1 . ComponentCount – 1 עד
להתחיל
אם (Form1 . מרכיבים [i] הוא TPanel) אז
להתחיל
אם comparetext ((Form1 . מרכיבים [i] כTPanel) . שם , ‘ תכנית ‘ + IntToStr (k)) = 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) . גופן . גודל: = גודל גופן ;
inc (buttonindex) ;
הסוף
אחר
להתחיל
(Form1 . מרכיבים [i] כTPanel) . גלוי: = false ;
הסוף ;

inc (יא) ;
הסוף ;
הסוף ;
הסוף ;

יא: = 1 ;
buttonindex: = 0 ;
/ / Alignx: = (Form1 . clientWidth – (Labelrows * (labelwidth + + labelresultsize Xspace))) div 2 ;
/ / / / / / / Analogicaly לתוויות – כמו , התווית
עבור i: = 0 עד Form1 . ComponentCount – 1 עד
להתחיל
אם (Form1 . מרכיבים [i] הוא TLabel) אז
להתחיל
אם comparetext ((Form1 . מרכיבים [i] כTLabel) . שם , ‘ מדבקה ‘ + IntToStr (k)) = 0 אז
להתחיל

שורה: = buttonindex mod (labelrows) ;
טור: = buttonindex div (labelrows) ;
אם אורך (LabelNames [יא – 1])> ; 0 אז / / אם אורך של טקסט תווית> ; ; 0 – אם התיאור הוא
להתחיל
(Form1 . מרכיבים [i] כTLabel) . שמאל: = alignx + שורה * (labelwidth + + labelresultsize Xspace) ; מיקום / / חישוב X
(Form1 . מרכיבים [i] כTLabel) . עליון: = yoffsetlabel + עמודה * (labelheight + yspace) ; / / חישוב מיקום Y
(Form1 . מרכיבים [i] כTLabel) . רוחב: = labelwidth ;
(Form1 . מרכיבים [i] כTLabel) . גובה: = labelheight ;
(Form1 . מרכיבים [i] כTLabel) . כיתוב: = LabelNames [יא – 1] ; / / / הקצאת כיתובי תווית – כותרות תוויות מתאימות
(Form1 . מרכיבים [i] כTLabel) . גופן . צבע: = clwhite ; צבע ברירת מחדל / ממיר / לתווית – קובע את צבע ברירת המחדל עבור תוויות
אם pos ( ‘ [ – % ] ‘ , LabelNames [יא – 1])> ; 0 אז (Form1 . מרכיבים [i] כTLabel) . גופן . צבע: = clyellow ; צבע / סט / למדידת אור – למדידת תאורת צבע
אם pos ( ‘ [ % ] ‘ , LabelNames [יא – 1])> ; 0 אז (Form1 . מרכיבים [i] כTLabel) . גופן . צבע: = מעריצים ; מדידת צבע / סט / לאחוזים – צבע עבור הערך של עניין
אם pos ( ‘ [ג] ‘ , LabelNames [יא – 1])> ; 0 אז (Form1 . מרכיבים [i] כTLabel) . גופן . צבע: = clwhite ; צבע / / סט לניהול טמפרטורה – לערכי טמפרטורת צבע
(Form1 . מרכיבים [i] כTLabel) . גופן . גודל: = labelfontsize ; גודל / / סט גופן עבור תווית – מגדיר את גודל הגופן עבור תווית הטקסט
inc (buttonindex) ; / תווית / גלויה באה – תווית מופיעה ליד
הסוף
אחר
להתחיל
(Form1 . מרכיבים [i] כTLabel) . גלוי: = false ; / / סתר תוויות טקסט מבלי – בלי להסתיר תוויות textu
הסוף ;
inc (יא) ; התווית / / באה – התווית הבאה
הסוף ;
הסוף ;
הסוף ;
update_status ; / / עדכון פנל למעמד מכשיר נוכחי מיומנים – עדכוני הסטטוס של הנהג של קבצי היומן של השרת eHouse
הסוף ;
התוצאה הסופית לאחר אוטומטי – מוגדר ומיקום כפתור על ידי התכנית ולהסיר אלמנטים עצומים (אם אתה לא רוצה שיהיה להם בלוח בגלל הגבלות על הזכויות של גישה או שימוש בפלט) .
 האפקט הסופי של ההפצה האוטומטית של אלמנטים בטופס
לפרטים נוספים: בית אוטומציה – בקרים eHouse
בית אוטומציה eHouse יצרן אוטומצית הבית