Розробка програмного забезпечення для контрольних панелей приміщення для Windows Tablet – Форма

Home Automation 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 (Sender: TObject) ;
VAR alignx , buttonindex , рядок , колонка , до , I: Integer ;
почати
GetComputerName ; / / Отримати ім'я комп'ютера або панелі – читає
Шлях: = GetCurrentDir () ; / / Отримати поточний локальний каталог додатків шляхом – говориться в каталог, в якому програма
Шлях: = StringReplace (шлях , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Отримати шлях додатка EHouse
RemotePath: = шлях ; / / Там же шлях для віддаленого доступу для inicialization – На початку шляху відображаються на той же віддалений доступ
loadnames_rm ; / / Завантажити контролер імена ehouse1
init_heat_temperature_names ; / / Init heatmanager імена
readethernetdevs ; / / Завантажити контролери Ethernet імена EHouse
I: = 1 ;
в той час як я < ; = ParamCount / / для виконання аргумент командного рядка – обробляє командний рядок
почати
якщо можливо ( ‘ / X: ‘ , нижній регістр (ParamStr (я))) = 1, то / / ширина панелі – Ширина панелі
form1 . Ширина: = chk_int (StringReplace (ParamStr (I) , ‘ / X: ‘ , ‘ ‘ , [Rfignorecase])) ;
якщо можливо ( ‘ / S: ‘ , нижній регістр (ParamStr (я))) = 1, то / / висота панелі – Висота панелі
form1 . Висота: = chk_int (StringReplace (ParamStr (I) , ‘ / S: ‘ , ‘ ‘ , [Rfignorecase])) ;
якщо можливо ( ‘ / R: ‘ , нижній регістр (ParamStr (я))) = 1, то / / ім'я пристрою (RoomManager) – RoomManger ім'я
deviceindex: = RMDeviceIndexByName ((StringReplace (ParamStr (I) , ‘ / R: ‘ , ‘ ‘ , [Rfignorecase]))) ;
якщо можливо ( ‘ / A: ‘ , нижній регістр (ParamStr (я))) = 1, то / / адресу пристрою (RoomManager) – RoomManager адресу
deviceindex: = (get_index_rm (StringReplace (ParamStr (I) , ‘ / A: ‘ , ‘ ‘ , [Rfignorecase]))) ;
якщо можливо ( ‘ / 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) ;
/ / Limit пошуку поточного стану RoomManager / відфільтрувати інші пристрої
/ / Перевірка на одному пристрої панеллю для обмеження ЗАСТОСУВАННЯ
/ / Перевіряємо тільки статус обраного RoomManager разів менше процесорів і серверів EHouse
outputbuttonnames (deviceindex) ; / / Ініціалізація кнопки і написи імен – чоботи , Кнопки і текстові мітки
form1 . Підпис: = ‘ EHouse панелі управління: ‘ + Rm [deviceindex] . devname ; / / Встановити заголовок з основних форм RoomManager Ім'я – заголовку відображається назва виду RoomManager
timer1 . Інтервал: = 3000 ; / / Встановити інтервал циклічні завдання в мілісекундах
timer1 . Включено: = True ; / / Запуск автоматичних завдань (оновлення статусу
K: = 1 ;
buttonindex: = 0 ; / / Поточний кнопки (видимий) індекс – поточне число (удавана)
рядок: = 0 ; / / Поточний кнопки в рядку – номер поточного ключа в поточному рядку
/ / Колонки: = 0 ;
alignx: = (Form1 . ClientWidth – (Рядків) * (buttonwidth + Xspace)) Div 2 ; / / Центр кнопок на панелі – центрування блоку кнопок
для I: = 0 до form1 . ComponentCount – 1 / / Output кнопку автоматичного налаштування – автоматично налаштувати кнопки виходу
Begin / / для кожного об'єкта на Form1 – для всіх елементів Form1
якщо (form1 . Компоненти [I] є TPanel), то / / якщо об'єкт є TPanel (наша кнопка) – якщо TPanel тип об'єкта (кнопка)
почати
якщо comparetext ((form1 . компоненти [я], як TPanel) . назва , ‘ вихід ‘ + IntToStr (до)) = 0, то / / якщо ім'я СКЛАДАЄТЬСЯ (вихід)
почати
рядок: = buttonindex мода (рядки) ; / / Обчислити рядків і стовпців індексів – обчислює координати рядка і стовпця
колонки: = buttonindex справ (рядків) ;
якщо довжина (OutputNames [до – 1])> ; 0, то / / Тільки показує виведенні кнопки з ім'ям – показує тільки кнопки з ім'ям
почати
(Form1 . Компоненти [я], як TPanel) . Зліва направо: = alignx + рядок * (buttonwidth + Xspace) ; / / Обчислити осі Х possition – розраховує свою позицію по осі X
(Form1 . Компоненти [я], як TPanel) . ТОП: = yoffsetouts + колонки * (buttonheight + yspace) ; / / Обчислити possition осі Y – обчислює свої позиції по осі Y
(Form1 . Компоненти [я], як TPanel) . Ширина: = buttonwidth ; / / Set Ширина кнопок – Ширина кнопок
(Form1 . Компоненти [я], як TPanel) . Висота: = buttonheight ; / / Set Кнопки Висота – Кількість кнопок
(Form1 . компоненти [я], як TPanel) . Підпис: = Outputnames [до – 1] ; / / Установка кнопки швидкого запуску – задає текст кнопки
(Form1 . компоненти [я], як TPanel) . Bevelinner: = bvRaised ;
(Form1 . компоненти [я], як TPanel) . BevelOuter: = bvRaised ;
(Form1 . компоненти [я], як TPanel) . про шрифт . Розміри: = розмір шрифту ; / / Set Button Розмір шрифту – встановлює розмір шрифту для кнопки
Inc (buttonindex) ; / / Наступна кнопка видимих – див. наступний
кінець
ще
почати
(Form1 . компоненти [я], як TPanel) . дивись: = False ; / / Без назви = не показувати кнопки – видалити ключі без імені
кінець ;
Inc (к) ; / / Наступна кнопка – Наступна кнопка
кінець ;
кінець ;
кінець ;
/ / / / / / / / / / / / Там же кнопки для програми – Точно так само для кнопок для запуску програм
buttonindex: = 0 ;
K: = 1 ;
для I: = 0 до form1 . ComponentCount – Від 1 до
почати
якщо (form1 . Компоненти [I] є TPanel), то
почати
якщо comparetext ((form1 . компоненти [я], як TPanel) . назва , ‘ програма ‘ + IntToStr (до)) = 0, то
почати

рядок: = buttonindex мода (рядки) ;
колонки: = buttonindex справ (рядків) ;
якщо довжина (ProgramNames [до – 1])> ; 0, то
почати
(Form1 . Компоненти [я], як TPanel) . Зліва направо: = alignx + рядок * (buttonwidth + Xspace) ;
(Form1 . Компоненти [я], як TPanel) . ТОП: = yoffsetprograms + колонки * (buttonheight + yspace) ;
(Form1 . Компоненти [я], як TPanel) . Ширина: = buttonwidth ;
(Form1 . Компоненти [я], як TPanel) . Висота: = buttonheight ;
(Form1 . компоненти [я], як TPanel) . Підпис: = Programnames [до – 1] ; / / Установка кнопки швидкого запуску кнопки для програми – задає ім'я програми кнопками
(Form1 . компоненти [я], як TPanel) . Bevelinner: = bvRaised ;
(Form1 . компоненти [я], як TPanel) . BevelOuter: = bvRaised ;
(Form1 . компоненти [я], як TPanel) . про шрифт . Розміри: = розмір шрифту ;
Inc (buttonindex) ;
кінець
ще
почати
(Form1 . компоненти [я], як TPanel) . дивись: = False ;
кінець ;

Inc (к) ;
кінець ;
кінець ;
кінець ;

K: = 1 ;
buttonindex: = 0 ;
/ / Alignx: = (Form1 . ClientWidth – (Labelrows * (labelwidth + + labelresultsize Xspace))) Div 2 ;
/ / / / / / / Analogicaly для етикеток – Так само , мітку
для I: = 0 до form1 . ComponentCount – Від 1 до
почати
якщо (form1 . Компоненти [I] є TLabel), то
почати
якщо comparetext ((form1 . компоненти [я], як TLabel) . назва , ‘ етикетка ‘ + IntToStr (до)) = 0, то
почати

рядок: = buttonindex мод (labelrows) ;
колонки: = buttonindex справ (labelrows) ;
якщо довжина (LabelNames [до – 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 [до – 1] ; / / / Присвоїти мітку підпису – Заголовки відповідні мітки
(Form1 . компоненти [я], як TLabel) . про шрифт . Колір: = clwhite ; / / Встановити колір за замовчуванням для етикетки – встановлює колір за замовчуванням для етикеток
якщо можливо ( ‘ [ – % ] ‘ , LabelNames [до – 1])> ; 0, то (form1 . компоненти [я], як TLabel) . про шрифт . Колір: = clyellow ; / / Встановити колір для вимірювання світла – для вимірювання кольору освітлення
якщо можливо ( ‘ [ % ] ‘ , LabelNames [до – 1])> ; 0, то (form1 . компоненти [я], як TLabel) . про шрифт . Колір: = Claque ; / / Встановити колір для вимірювання відсотка – Колір на вартість інтерес
якщо можливо ( ‘ [C] ‘ , LabelNames [до – 1])> ; 0, то (form1 . компоненти [я], як TLabel) . про шрифт . Колір: = clwhite ; / / Встановити колір для управління температурою – для значень колірної температури
(Form1 . компоненти [я], як TLabel) . про шрифт . Розміри: = labelfontsize ; / / Встановити розмір шрифту для етикеток – встановлює розмір шрифту для текстової мітки
Inc (buttonindex) ; / / Наступна помітний знак – Мітка відображається наступна
кінець
ще
почати
(Form1 . компоненти [я], як TLabel) . дивись: = False ; / / Приховати текст етикетки без – приховати етикетки без textu
кінець ;
Inc (к) ; / / Наступна мітка – наступної етикетки
кінець ;
кінець ;
кінець ;
update_status ; / / Оновити панель для поточного стану пристрою з оциліндрованих колод – Поновлення статусу водія лог-файлів з сервера EHouse
кінець ;
У підсумку після автоматичної – налаштований і кнопки розміщення програми і видаліть невимовне елементи (якщо ви не хочете, щоб у них на панель через обмеження прав доступу або використання вихідних) .
 Кінцевий ефект автоматичного розподілу елементів на формі
Читайте також: Home Automation – Контролери EHouse
Home Automation EHouse Виробник Home Automation