Pembangunan Perisian untuk Kawalan Panel bilik untuk Windows Tablet – Borang

Automasi Utama eHouse .
Buat bentuk utama (susun atur skrin tablet . Diletakkan pada Borang utama panel TPanel 24 bidang untuk semua jenis output digital RM .
Ini akan membentuk butang untuk menghidupkan RoomManager (atau elektrik) .
Di samping itu , warna akan bergantung kepada keadaan membaca .
Atas sebab ini kita menggunakan butang standard atau TButton jenis yang sama , kerana mereka tidak mempunyai kemungkinan untuk menukar warna .
Kami menyeru mereka ” outputX ” di mana X ialah bilangan output .
Saya tidak perlu dikerahkan , kerana ia akan melakukannya secara automatik , permohonan ini . Untuk setiap butang , output mesti diberikan kepada acara yang sama (onclick) – output1Click .
Diletakkan pada Borang utama 24 bidang panel jenis TPanel bagi semua program untuk menjalankan RM .
Ini akan membentuk butang untuk beralih RoomManager semasa (iaitu , on / off peranti elektrik kumpulan dengan perubahan dalam input mengukur ambang digunakan untuk mengawal apa-apa . suhu) .
Kami menyeru mereka ” programX ” di mana X ialah bilangan butang .
Begitu juga , tidak perlu untuk menggunakan , kerana ia akan melakukannya secara automatik , permohonan ini .
Untuk setiap butang , program ini harus diberikan kepada acara yang sama (onclick) – program1Click .
Pada bentuk label teks utama adalah 16 jenis TLabel untuk memaparkan semua hasil ukuran RoomManager (bernombor Label1 untuk Label16) .
Begitu juga seperti dalam kes-kes di atas tidak perlu untuk menggunakan .
Lihat bentuk akhir untuk  membentuk untuk mewujudkan bilik panel kawalan
Pengawalan bentuk:

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
prosedur TForm1 . FormCreate (sender: TObject) ;
var alignx , buttonindex , berturut-turut , lajur , k , i: integer ;
memulakan
GetComputerName ; / / Dapatkan nama komputer atau panel – membaca
laluan: = getcurrentdir () ; / / Dapatkan jalan semasa permohonan direktori tempatan – membaca direktori di mana program
laluan: = stringreplace (laluan , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Dapatkan jalan eHouse permohonan
remotepath: = jalan ; / / Jalan yang sama untuk remoteaccess untuk inicialization – di permulaan jalan yang dipetakan untuk akses jauh yang sama
loadnames_rm ; Nama pengawal / / Beban ehouse1
init_heat_temperature_names ; / / Init HeatManager nama
readethernetdevs ; / / Beban pengawal nama eHouse ethernet
i: = 1 ;
manakala i < ; = Paramcount / / melaksanakan hujah baris arahan – memproses baris arahan
memulakan
jika pos ( ‘ / X: ‘ , huruf kecil (ParamStr (i))) = 1 maka / / panel lebar – lebar panel
form1 . Lebar: = chk_int (stringreplace (ParamStr (i) , ‘ / X: ‘ , ‘ ‘ , [Rfignorecase])) ;
jika pos ( ‘ / S: ‘ , huruf kecil (ParamStr (i))) = 1 maka / / panel ketinggian – ketinggian panel
form1 . ketinggian: = chk_int (stringreplace (ParamStr (i) , ‘ / S: ‘ , ‘ ‘ , [Rfignorecase])) ;
jika pos ( ‘ / R: ‘ , huruf kecil (ParamStr (i))) = 1 maka nama / / peranti (RoomManager) – Nama RoomManger
deviceindex: = RMDeviceIndexByName ((stringreplace (ParamStr (i) , ‘ / R: ‘ , ‘ ‘ , [Rfignorecase]))) ;
jika pos ( ‘ / A: ‘ , huruf kecil (ParamStr (i))) = 1, maka alamat / / peranti (RoomManager) – Alamat RoomManager
deviceindex: = (get_index_rm (stringreplace (ParamStr (i) , ‘ / A: ‘ , ‘ ‘ , [Rfignorecase]))) ;
jika pos ( ‘ / P: ‘ , huruf kecil (ParamStr (i))) = 1 kemudian akses / / jalan jauh – akses jalan jauh
remotepath: = ((stringreplace (ParamStr (i) , ‘ / P: ‘ , ‘ ‘ , [Rfignorecase]))) ;
inc (i) ;
akhir ;
jika form1 . lebar < ; 100 kemudian form1 . width: = 800 ; / / Jika parameter salah untuk saiz set lalai – mungkir
jika form1 . ketinggian < ; 100 kemudian form1 . ketinggian: = 600 ;
devicestoupdatestatus: = IntToStr (rm [deviceindex] . Adrha) + ‘ – ‘ + IntToStr (rm [deviceindex] . adrl) ;
/ / Had mencari untuk RoomManager status semasa / menapis peranti lain
/ / Daftar untuk peranti tunggal Pannel untuk PENGGUNAAN had
/ / Semak sahaja status RoomManager kali CPU yang dipilih kurang dan eHouse pelayan
outputbuttonnames (deviceindex) ; / / Memula butang dan nama label – but , butang dan label teks
form1 . kapsyen: = ‘ Panel Kawalan eHouse: ‘ + Rm [deviceindex] . devname ; / / Set kapsyen bentuk utama Nama RoomManager – header menunjukkan nama RoomManager bentuk
timer1 . Interval: = 3000 ; / Cyclic / Set tugas selang dalam milisaat
timer1 . Enabled: = true ; / / Mula tugas automatik (status kemas kini
k: = 1 ;
buttonindex: = 0 ; / Butang / Semasa (kelihatan) indeks – bilangan semasa (apparent)
berturut-turut: = 0 ; Butang / Semasa / berturut-turut – bilangan kunci semasa dalam baris semasa
/ / Lajur: = 0 ;
alignx: = (form1 . clientWidth – (Baris) * (buttonwidth + Xspace)) div 2 ; / / Pusat butang pada panel – memusatkan blok butang
untuk i: = 0 hingga form1 . ComponentCount – 1 / / Output butang persediaan automatik – secara automatik mengkonfigurasi butang Keluar
mula / / untuk setiap objek pada form1 – untuk semua elemen-Form1
jika (form1 . Komponen [i] adalah TPanel) maka / / jika objek itu TPanel (butang kami) – jika jenis objek TPanel (butang)
memulakan
jika comparetext ((form1 . komponen [i] sebagai TPanel) . nama , ‘ output ‘ + IntToStr (k)) = 0 maka / / jika nama TERDIRI (output)
memulakan
baris: = buttonindex arena (baris) ; / / Kira baris dan lajur indeks – mengira koordinat lajur dan baris
lajur: = buttonindex div (baris) ;
jika panjang (OutputNames [k – 1])> ; 0 maka / / Hanya menunjukkan butang ouput dengan nama – hanya menunjukkan butang dengan nama
memulakan
(Form1 . Komponen [i] sebagai TPanel) . kiri: = alignx + berturut-turut * (buttonwidth + Xspace) ; / / Calculate X paksi possition – mengira kedudukannya dalam paksi X
(Form1 . Komponen [i] sebagai TPanel) . atas: = yoffsetouts + lajur * (buttonheight + yspace) ; / / Kira paksi Y possition – mengira kedudukannya dalam paksi Y
(Form1 . Komponen [i] sebagai TPanel) . width: = buttonwidth ; / / Set Butang Lebar – Lebar butang
(Form1 . Komponen [i] sebagai TPanel) . ketinggian: = buttonheight ; / / Set Butang Ketinggian – Jumlah butang
(Form1 . komponen [i] sebagai TPanel) . kapsyen: = Outputnames [k – 1] ; / Butang / Set Caption – menetapkan teks butang
(Form1 . komponen [i] sebagai TPanel) . Bevelinner: = bvRaised ;
(Form1 . komponen [i] sebagai TPanel) . BevelOuter: = bvRaised ;
(Form1 . komponen [i] sebagai TPanel) . font . Saiz: = fontsize ; / / Set Butang Saiz Fon – menetapkan saiz fon untuk butang
inc (buttonindex) ; / / Butang Seterusnya dilihat – lihat seterusnya
akhir
lain
memulakan
(Form1 . komponen [i] sebagai TPanel) . kelihatan: = palsu ; / / Tiada = Nama tidak menunjukkan butang – membuang kunci tanpa nama
akhir ;
inc (k) ; / / Butang Seterusnya – butang di sebelah
akhir ;
akhir ;
akhir ;
/ / / / / / / / / / / / Butang yang sama untuk program – Begitu juga untuk butang untuk melancarkan program-program
buttonindex: = 0 ;
k: = 1 ;
untuk i: = 0 hingga form1 . ComponentCount – 1 hingga
memulakan
jika (form1 . Komponen [i] adalah TPanel), maka
memulakan
jika comparetext ((form1 . komponen [i] sebagai TPanel) . nama , ‘ program ‘ + IntToStr (k)) = 0 maka
memulakan

baris: = buttonindex arena (baris) ;
lajur: = buttonindex div (baris) ;
jika panjang (ProgramNames [k – 1])> ; 0, maka
memulakan
(Form1 . Komponen [i] sebagai TPanel) . kiri: = alignx + berturut-turut * (buttonwidth + Xspace) ;
(Form1 . Komponen [i] sebagai TPanel) . atas: = yoffsetprograms + lajur * (buttonheight + yspace) ;
(Form1 . Komponen [i] sebagai TPanel) . width: = buttonwidth ;
(Form1 . Komponen [i] sebagai TPanel) . ketinggian: = buttonheight ;
(Form1 . komponen [i] sebagai TPanel) . kapsyen: = Programnames [k – 1] ; / / Set kapsyen butang butang untuk program – menetapkan nama butang program
(Form1 . komponen [i] sebagai TPanel) . Bevelinner: = bvRaised ;
(Form1 . komponen [i] sebagai TPanel) . BevelOuter: = bvRaised ;
(Form1 . komponen [i] sebagai TPanel) . font . Saiz: = fontsize ;
inc (buttonindex) ;
akhir
lain
memulakan
(Form1 . komponen [i] sebagai TPanel) . kelihatan: = palsu ;
akhir ;

inc (k) ;
akhir ;
akhir ;
akhir ;

k: = 1 ;
buttonindex: = 0 ;
/ / Alignx: = (form1 . clientWidth – (Labelrows * (labelwidth + labelresultsize + Xspace))) div 2 ;
/ / / / / / / Analogicaly untuk Label – Begitu juga , label
untuk i: = 0 hingga form1 . ComponentCount – 1 hingga
memulakan
jika (form1 . Komponen [i] adalah TLabel), maka
memulakan
jika comparetext ((form1 . komponen [i] sebagai TLabel) . nama , ‘ label ‘ + IntToStr (k)) = 0 maka
memulakan

baris: = buttonindex arena (labelrows) ;
lajur: = buttonindex div (labelrows) ;
jika panjang (LabelNames [k – 1])> ; 0 maka / / jika panjang teks label> ; ; 0 – jika keterangan
memulakan
(Form1 . Komponen [i] sebagai TLabel) . kiri: = alignx + berturut-turut * (labelwidth + labelresultsize + Xspace) ; / / Calculate X lokasi
(Form1 . Komponen [i] sebagai TLabel) . atas: = yoffsetlabel + lajur * (labelheight + yspace) ; / / Kira lokasi Y
(Form1 . Komponen [i] sebagai TLabel) . width: = labelwidth ;
(Form1 . Komponen [i] sebagai TLabel) . ketinggian: = labelheight ;
(Form1 . komponen [i] sebagai TLabel) . kapsyen: = LabelNames [k – 1] ; / / / Berikan kapsyen label – header label yang sesuai
(Form1 . komponen [i] sebagai TLabel) . font . warna: = clwhite ; Default / / Set warna untuk label – menetapkan warna lalai untuk label
jika pos ( ‘ [ – % ] ‘ , LabelNames [k – 1])> ; 0, maka (form1 . komponen [i] sebagai TLabel) . font . warna: = clyellow ; Warna / / Set untuk pengukuran cahaya – bagi pengukuran lampu warna
jika pos ( ‘ [ % ] ‘ , LabelNames [k – 1])> ; 0, maka (form1 . komponen [i] sebagai TLabel) . font . warna: = Claque ; Warna / / Set pengukuran peratus – warna untuk nilai faedah
jika pos ( ‘ [C] ‘ , LabelNames [k – 1])> ; 0, maka (form1 . komponen [i] sebagai TLabel) . font . warna: = clwhite ; / / Set warna bagi pengurusan suhu – bagi nilai suhu warna
(Form1 . komponen [i] sebagai TLabel) . font . Saiz: = labelfontsize ; / Font / Set saiz untuk label – menetapkan saiz fon untuk label teks
inc (buttonindex) ; / / Seterusnya label dilihat – label muncul bersebelahan
akhir
lain
memulakan
(Form1 . komponen [i] sebagai TLabel) . kelihatan: = palsu ; / / Sembunyikan label teks tanpa – menyembunyikan label tanpa textu
akhir ;
inc (k) ; / / Label Seterusnya – label seterusnya
akhir ;
akhir ;
akhir ;
update_status ; / / Panel Update status peranti arus dari balak – kemaskini status pemandu fail log dari eHouse pelayan
akhir ;
Hasil akhir selepas auto – dikonfigurasikan dan penempatan butang oleh program tersebut dan membuang unsur-unsur terperi (jika anda tidak mahu mereka mempunyai panel kerana sekatan ke atas hak-hak akses atau penggunaan output) .
 Kesan akhir pengedaran automatik unsur pada Borang
Read more: Automasi Utama – Pengawal eHouse
Automasi Utama eHouse Home Automation Pengeluar