Windows Tablet üçün Control Panel otaqlar üçün PT Inkişaf – Forma

Home Automation eHouse .
Əsas forması (tablet ekran layout yarat . RM digital nəticələri bütün növləri üçün əsas Form 24 sahələrində TPanel panelləri yerləşdiriləcək .
Bu RoomManager (və ya elektrik) çıxmaq üçün düymələri təşkil edəcək .
Əlavə , rəng oxuyub dövlət asılı olacaq .
Bu səbəbdən biz standart düymələri və ya analoji TButton istifadə , onlar rəngi dəyişdirmək imkanı yoxdur, çünki .
Biz onlara zəng ” outputX ” X çıxdı sayı yerləşir .
Mən səfərbər edilə ehtiyac yoxdur , avtomatik olaraq bunu edəcək , Bu proqram . Hər düyməsinə üçün , çıxış eyni hadisəyə (onClick) təyin olunmalıdır – output1Click .
RM çalıştırmak üçün bütün proqramları üçün əsas Form 24 sahələrində TPanel növü panelləri yerləşdiriləcək .
Bunlar cari RoomManager (yəni keçid düymələri təşkil edəcək , bu meyar və ölçü giriş dəyişiklik ilə qrup elektrik cihazlar / off belə tənzimləyən üçün istifadə . temperatur) .
Biz onlara zəng ” programX ” X düyməsini sayı yerləşir .
Bircür , dağıtmak üçün heç bir ehtiyac , avtomatik olaraq bunu edəcək , Bu proqram .
Hər düyməsinə üçün , proqram eyni hadisəyə (onClick) təyin edilməlidir – program1Click .
Mətn yazıları əsas forması TLabel (Label16 üçün Label1 saylı) RoomManager ölçmə bütün results 16 növləri .
Eynilə yuxarıda hallarda yerləşdirilməsinə ehtiyac yoxdur .
Üçün yekun forma bax  otaq nəzarət panel yaratmaq yaratmaq
Şəklində Başlatma:

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
proseduru TForm1 . FormCreate (Sender: TObject) ;
var alignx , buttonindex , sıra , sütun , k , i: tam ;
başlamaq
GetComputerName ; / / Kompüter və ya panel adı alın – də deyilir
yol: = getcurrentdir () ; / / Cari yerli yol proqram qovluğuna alın – kataloq deyilir proqram
yol: = stringreplace (yol , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Proqram eHouse yol alın
remotepath: = yol ; Inicialization üçün remoteaccess üçün / / Eyni yol – yolun başında eyni uzaq olmaq üçün eşlenen
loadnames_rm ; / / Load nəzarətçi adları ehouse1
init_heat_temperature_names ; / / Init HeatManager adları
readethernetdevs ; / / Load kontrollerlər ethernet eHouse adlar
i: = 1 ;
i < ; = / Üçün Paramcount / command line arqument yerinə – command line emal
başlamaq
əgər pos ( ‘ / X: ‘ , kiçik (ParamStr (i))) = 1 sonra / / panel eni – panel eni
form1 . Eni: = chk_int (stringreplace (ParamStr (i) , ‘ / X: ‘ , ‘ ‘ , [Rfignorecase])) ;
əgər pos ( ‘ / S: ‘ , (ParamStr (i)) kiçik) = 1 sonra / / panel boyu – panel hündürlüyü
form1 . hündürlüyü: = chk_int (stringreplace (ParamStr (i) , ‘ / S: ‘ , ‘ ‘ , [Rfignorecase])) ;
əgər pos ( ‘ / R: ‘ , (ParamStr (i)) kiçik) = 1 sonra / / cihaz adı (RoomManager) – RoomManger adı
deviceindex: = RMDeviceIndexByName ((stringreplace (ParamStr (i) , ‘ / R: ‘ , ‘ ‘ , [Rfignorecase]))) ;
əgər pos ( ‘ / A: ‘ , kiçik (ParamStr (i))) = 1 sonra / / cihaz ünvanı (RoomManager) – RoomManager ünvan
deviceindex: = (get_index_rm (stringreplace (ParamStr (i) , ‘ / A: ‘ , ‘ ‘ , [Rfignorecase]))) ;
əgər pos ( ‘ / P: ‘ , kiçik (ParamStr (i))) = 1 sonra / / remote access yol – remote access yol
remotepath: = ((stringreplace (ParamStr (i) , ‘ / P: ‘ , ‘ ‘ , [Rfignorecase]))) ;
inc (i) ;
son ;
form1 əgər . eni < ; 100 sonra form1 . width = 800 ; / / Ölçüsü yanlış parametrləri default müəyyən edin – yetirilməməsi
form1 əgər . boyu < ; 100 sonra form1 . hündürlüyü: = 600 ;
devicestoupdatestatus: = IntToStr (rm [deviceindex] . Adrha) + ‘ – ‘ + IntToStr (rm [deviceindex] . adrl) ;
Mövcud vəziyyəti RoomManager üçün axtarış / / Limit / digər cihazlar filtre
/ / Məhdudiyyət Kullanım üçün vahid cihaz pannel yoxlayın
/ / Yalnız seçilmiş RoomManager dəfə az CPU statusu və server eHouse yoxlayın
outputbuttonnames (deviceindex) ; / / Düymələri və yazıları adları başlamaq – botinka , düymələri və mətn yazıları
form1 . caption = ‘ eHouse Control Panel: ‘ + Rm [deviceindex] . devname ; RoomManager adı əsas formaları / / Set mövzu – mövzu şəklində RoomManager adı göstərir
timer1 . Interval: = 3000 ; Ms ilə / / Set tsiklik tapşırıq interval
timer1 . Enabled: = true ; / / (Status yeniləmə avtomatik vəzifələri Start
k: = 1 ;
buttonindex: = 0 ; / / Kömək düyməsinə (görünən) indeksi – nın cari sayı (aydın)
sıra: = 0 ; Sırasında / / Kömək düyməsini – cari olaraq cari əsas sayı
/ / Sütun: = 0 ;
alignx: = (form1 . clientWidth – (Satır) * (buttonwidth + Xspace)) div 2 ; / / Mərkəzi panel düymələri – mərkəzə blokları düymələri
i: = 0 form1 . ComponentCount – 1 / / Çıxış düyməsinə avtomatik quraşdırma – avtomatik Exit düyməsini konfiqurasiya
form1 hər bir obyekt üçün / / başlamaq – bu Form1 bütün elementləri üçün
(form1 əgər . İşçi [i]) TPanel sonra / / obyekt TPanel Əgər (bizim düyməsinə) – əgər obyekt növü TPanel (düyməsinə)
başlamaq
əgər comparetext ((form1 . komponentləri [i] TPanel kimi) . ad , ‘ buraxılış ‘ + IntToStr (k)) = 0 sonra / / (output) adı ibarət əgər
başlamaq
sıra: = buttonindex mod (satır) ; / / Satır ve sütun indekslər hesablayın – sütun və sıra koordinatları hesablayır
sütun: = buttonindex div (satır) ;
uzunluğu (OutputNames [k əgər – 1])> ; 0 sonra / / Yalnız adı ilə ouput düymələri göstərir – yalnız adı ilə düymələri göstərir
başlamaq
(Form1 . İşçi [i] TPanel kimi) . sol: = alignx + sıra * (buttonwidth + Xspace) ; / / Hesapla X ox possition – X ox mövqeyini hesablayır
(Form1 . İşçi [i] TPanel kimi) . top: = yoffsetouts + column * (buttonheight + yspace) ; / / Y ox possition hesablayın – Y ox mövqeyini hesablayır
(Form1 . İşçi [i] TPanel kimi) . eni: = buttonwidth ; / / Set Eni Buttons – Düymələri eni
(Form1 . İşçi [i] TPanel kimi) . hündürlüyü: = buttonheight ; / / Set Buttons Boy – Düymələri məbləği
(Form1 . komponentləri [i] TPanel kimi) . Mövzu: = Outputnames [k – 1] ; / / Set Button Mövzu – düyməsini mətn edir
(Form1 . komponentləri [i] TPanel kimi) . Bevelinner: = bvRaised ;
(Form1 . komponentləri [i] TPanel kimi) . BevelOuter: = bvRaised ;
(Form1 . komponentləri [i] TPanel kimi) . şrift . Ölçüsü: = Yazı tipi ölçüsü ; / / Set Font ölçüsü Button – düyməsini üçün font ölçüsü müəyyən edir
inc (buttonindex) ; / / Next düyməsinə görünən – növbəti bax
son
daha
başlamaq
(Form1 . komponentləri [i] TPanel kimi) . görünən: = false ; / / No name = 'düyməsinə göstərmək deyil – ad vermədən açarları aradan qaldırılması
son ;
inc (k) ; / / Next düyməsinə – Növbəti düyməsini
son ;
son ;
son ;
Proqram / / / / / / / / / / / / Eyni düymələri – Eyni düymələri proqramları başlamaq üçün
buttonindex: = 0 ;
k: = 1 ;
i: = 0 form1 . ComponentCount – 1
başlamaq
(form1 əgər . İşçi [i] TPanel deyil) sonra
başlamaq
əgər comparetext ((form1 . komponentləri [i] TPanel kimi) . ad , ‘ proqram ‘ = 0 sonra + IntToStr (k))
başlamaq

sıra: = buttonindex mod (satır) ;
sütun: = buttonindex div (satır) ;
uzunluğu (ProgramNames [k əgər – 1])> ; Sonra 0
başlamaq
(Form1 . İşçi [i] TPanel kimi) . sol: = alignx + sıra * (buttonwidth + Xspace) ;
(Form1 . İşçi [i] TPanel kimi) . top: = yoffsetprograms + column * (buttonheight + yspace) ;
(Form1 . İşçi [i] TPanel kimi) . eni: = buttonwidth ;
(Form1 . İşçi [i] TPanel kimi) . hündürlüyü: = buttonheight ;
(Form1 . komponentləri [i] TPanel kimi) . Mövzu: = Programnames [k – 1] ; Proqram / / Set düyməsini mövzu düymələri – proqram düymələri adını qoyur
(Form1 . komponentləri [i] TPanel kimi) . Bevelinner: = bvRaised ;
(Form1 . komponentləri [i] TPanel kimi) . BevelOuter: = bvRaised ;
(Form1 . komponentləri [i] TPanel kimi) . şrift . Ölçüsü: = Yazı tipi ölçüsü ;
inc (buttonindex) ;
son
daha
başlamaq
(Form1 . komponentləri [i] TPanel kimi) . görünən: = false ;
son ;

inc (k) ;
son ;
son ;
son ;

k: = 1 ;
buttonindex: = 0 ;
/ / Alignx: = (form1 . clientWidth – (Labelrows * (labelwidth + labelresultsize + Xspace))) div 2 ;
/ / / / / / / Analogicaly Etiketler üçün – Bircür , etiket
i: = 0 form1 . ComponentCount – 1
başlamaq
(form1 əgər . İşçi [i] TLabel sonra deyil)
başlamaq
əgər comparetext ((form1 . komponentləri TLabel kimi [i]) . ad , ‘ etiket ‘ = 0 sonra + IntToStr (k))
başlamaq

sıra: = buttonindex mod (labelrows) ;
sütun: = buttonindex div (labelrows) ;
uzunluğu (LabelNames [k əgər – 1])> ; 0 sonra / / əgər etiket mətn uzunluğu> ; ; 0 – təsviri, əgər
başlamaq
(Form1 . İşçi TLabel kimi [i]) . sol: = alignx + sıra * (labelwidth + labelresultsize + Xspace) ; / / Hesapla X yeri
(Form1 . İşçi TLabel kimi [i]) . top: = yoffsetlabel + column * (labelheight + yspace) ; / / Y yeri hesablayın
(Form1 . İşçi TLabel kimi [i]) . eni: = labelwidth ;
(Form1 . İşçi TLabel kimi [i]) . hündürlüyü: = labelheight ;
(Form1 . komponentləri TLabel kimi [i]) . Mövzu: = LabelNames [k – 1] ; / / / Etiket mövzular Təyin – başlıqlarını uyğun yazıları
(Form1 . komponentləri TLabel kimi [i]) . şrift . color: = clwhite ; Etiket üçün / / Set default color – yazıları üçün standart rəng edir
əgər pos ( ‘ [ – % ] ‘ , LabelNames [k – 1])> ; Sonra 0 (form1 . komponentləri TLabel kimi [i]) . şrift . color: = clyellow ; Yüngül ölçülməsi üçün / / Set rəng – rəng işıqlandırma ölçülməsi
əgər pos ( ‘ [ % ] ‘ , LabelNames [k – 1])> ; Sonra 0 (form1 . komponentləri TLabel kimi [i]) . şrift . color: = Claque ; Yüzdə / / Set rəng ölçmə – faiz dəyər rəng
əgər pos ( ‘ [C] ‘ , LabelNames [k – 1])> ; Sonra 0 (form1 . komponentləri TLabel kimi [i]) . şrift . color: = clwhite ; Temperatur idarə edilməsi üçün / / Set rəng – rəng temperatur dəyərlər üçün
(Form1 . komponentləri TLabel kimi [i]) . şrift . Ölçüsü: = labelfontsize ; Etiket üçün / / Set font ölçüsü – mətn etiket üçün font ölçüsü müəyyən edir
inc (buttonindex) ; / / Next görünən etiket – etiket yanında
son
daha
başlamaq
(Form1 . komponentləri TLabel kimi [i]) . görünən: = false ; / / Olmadan mətn yazıları gizlət – textu olmadan yazıları gizlətmək
son ;
inc (k) ; / / Next etiket – Növbəti etiket
son ;
son ;
son ;
update_status ; / / Update logs cari cihaz statusu panel – server eHouse günlük faylları sürücü yenilikləri statusu
son ;
Avtomatik sonra son nəticə – konfiqurasiya və düyməsinə yerləşdirmə proqramı və (onlara çünki giriş hüquqları üzrə məhdudiyyətlərin panel var və ya çıxış istifadə etmək istəmirsinizsə) danışılmamış elementləri aradan qaldırılması .
 Form üzərində elementləri avtomatik paylanması yekun təsiri
Daha ətraflı: Home Automation – Nəzarətçiləri eHouse
Home Automation eHouse Home Automation İstehsalçı