Разработка на софтуер за контролни панели стаи за Windows Tablet – Форма

Home Automation EHouse .
Създаване на основна форма (оформлението на екрана на таблета . Поставени върху Формуляр 24 полета TPanel панели за всички видове цифрови изходи RM .
Те ще формират бутоните, за да се окаже, RoomManager (или електрическа) .
В допълнение , цвят ще зависи от състоянието на прочете .
Поради тази причина ние използвахме стандартните бутони или подобен тип TButton , , тъй като те не разполагат с възможност за промяна на цвета .
Ние ги наричаме ” outputX ” където Х е броят на продукцията .
Не трябва да бъдат разгърнати , , защото това ще го направи автоматично , това приложение . За всеки бутон , продукцията трябва да се зададе на едно и също събитие (OnClick) – output1Click .
Поставени върху Формуляр 24 полета TPanel панели тип за всички програми да тече RM .
Те ще формират бутони за превключване на RoomManager (т.е. , / изключат всички електрически уреди на групата с промяна в измервателни входове на праговете, използвани за регулиране на такива . температура) .
Ние ги наричаме ” programX ” където Х е броят на бутона .
По същия начин , няма нужда да се разположи , , защото това ще го направи автоматично , това приложение .
За всеки бутон , програмата трябва да бъдат причислени към едно и също събитие (OnClick) – program1Click .
На основната форма на текстовите етикети са 16 вида TLabel за показване на всички резултати от измервания на RoomManager (номерирани Label1 да Label16) .
По същия начин, както и в горните случаи не трябва да се разположи .
Вижте окончателната форма за  формуляри за създаване на контролния панел стая
Инициализация на формата:

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
процедура TForm1 . FormCreate (Sender: TObject) ;
VaR alignx , buttonindex , ред , колона , к , I: цяло число ;
започвам
GetComputerName ; / / Получаване на името на компютъра или панел – прочита
път: = getcurrentdir () ; / / Получаване на текущата локална папка за прилагане път – чете директорията, в която програмата
път: = stringreplace (път , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Вземи пътя на прилагане EHouse
remotepath: = път ; / / Същия път за remoteaccess за inicialization – в началото на пътя, картирани за същия отдалечен достъп
loadnames_rm ; / / Товарните имена контролер ehouse1
init_heat_temperature_names ; / / Init HeatManager имена
readethernetdevs ; / / Товар контролери етернет EHouse имена
I: = 1 ;
докато аз < ; = Paramcount / / изпълнява аргумент на командния ред – обработва командния ред
започвам
ако е възможно ( ‘ / X: ‘ , малки (ParamStr (I))) = 1 / ширина / панел – ширина на панела
Form1 . Ширина: = chk_int (stringreplace (ParamStr (и) , ‘ / X: ‘ , ‘ ‘ , [Rfignorecase])) ;
ако е възможно ( ‘ / S: ‘ , малки (ParamStr (I))) = 1 / / панел височина – височина на панела
Form1 . височина: = chk_int (stringreplace (ParamStr (и) , ‘ / S: ‘ , ‘ ‘ , [Rfignorecase])) ;
ако е възможно ( ‘ / R: ‘ , малки (ParamStr (I))) = 1 / / името на устройството (RoomManager) – RoomManger име
deviceindex: = RMDeviceIndexByName ((stringreplace (ParamStr (и) , ‘ / R: ‘ , ‘ ‘ , [Rfignorecase]))) ;
ако е възможно ( ‘ / A: ‘ , малки (ParamStr (I))) = 1 / / адрес на устройството (RoomManager) – RoomManager адрес
deviceindex: = (get_index_rm (stringreplace (ParamStr (I) , ‘ / A: ‘ , ‘ ‘ , [Rfignorecase]))) ;
ако е възможно ( ‘ / P: ‘ , малки (ParamStr (I))) = 1 / / отдалечен достъп път – отдалечен достъп път
remotepath: = ((stringreplace (ParamStr (и) , ‘ / P: ‘ , ‘ ‘ , [Rfignorecase]))) ;
тегло (I) ;
край ;
ако Form1 . широчина < ; 100 след Form1 . ширина: = 800 ; / / Ако грешни параметри за размер определя по подразбиране – подразбиране
ако Form1 . височина < ; 100 след Form1 . височина: = 600 ;
devicestoupdatestatus: = IntToStr (RM [deviceindex] . Adrha) + ‘ – ‘ + IntToStr (RM [deviceindex] . adrl) ;
/ / Limit търсене за актуално състояние RoomManager / филтриране на други устройства
/ / Проверява за едно устройство панел за ограничаване на породата
/ / Проверява само състоянието на избрания RoomManager пъти по-малко CPU и EHouse сървър
outputbuttonnames (deviceindex) ; / / Инициализиране бутони и етикети имена – ботуши , бутони и текстови етикети
Form1 . надпис: = ‘ EHouse Control Panel: ‘ + Rm [deviceindex] . devname ; / / Задаване на надписа на основните форми на RoomManager Име – заглавието показва името на формуляра RoomManager
timer1 . Интервал: = 3000 ; / / Задаване на интервал цикличен задача в милисекунди
timer1 . Enabled: = True ; / / Start автоматични задачи (статус
к: = 1 ;
buttonindex: = 0 ; / / Текущото бутона (видима) индекс – текущия брой на (очевидно)
ред: = 0 ; / / Текущото бутона в ред – брой на текущия ключ в текущия ред
/ / Колона: = 0 ;
alignx: = (Form1 . clientWidth – (Редове) * (buttonwidth + Xspace)) Div 2 ; / / Център бутони на панела – центриране бутони блокове
I: = 0 до Form1 . ComponentCount – 1 / / Output бутона за автоматична настройка – автоматично конфигуриране на бутона Exit
започва / / за всеки обект Form1 – за всички елементи на Form1
ако (Form1 . Компоненти [I] е TPanel) / / ако обектът е TPanel (нашия бутон) – ако TPanel тип обект (бутон)
започвам
ако comparetext ((Form1 . компоненти [I] като TPanel) . име , ‘ продукция ‘ + IntToStr (к)) = 0 / / след това, ако името се състои (изход)
започвам
ред: = buttonindex Министерството на отбраната (редове) ; / / Изчисляване на редове и колони индекси – изчислява координатите на колона и ред
колона: = buttonindex дивизия (редове) ;
ако дължината (OutputNames [к – 1])> ; 0, тогава / / показва само изхода бутони с името – показва само бутоните с името
започвам
(Form1 . Компоненти [I] като TPanel) . ляво: = alignx + ред * (buttonwidth + Xspace) ; / / Изчисляване X ос possition – изчислява позицията си по оста X
(Form1 . Компоненти [I] като TPanel) . върха: = yoffsetouts + колона * (buttonheight + yspace) ; / / Изчисляване на оста Y possition – изчислява позицията си по оста Y
(Form1 . Компоненти [I] като TPanel) . ширина: = buttonwidth ; / / Ширина на комплекта бутони – Ширина на бутоните
(Form1 . Компоненти [I] като TPanel) . височина: = buttonheight ; / / Задаване на бутони Височина – Размерът на бутони
(Form1 . компоненти [I] като TPanel) . надпис: = Outputnames [к – 1] ; / / Задаване на бутон Caption – определя бутона текст
(Form1 . компоненти [I] като TPanel) . Bevelinner: = bvRaised ;
(Form1 . компоненти [I] като TPanel) . BevelOuter: = bvRaised ;
(Form1 . компоненти [I] като TPanel) . шрифта . Размер: = fontsize ; / / Задаване на бутон Размер на шрифта – определя размера на шрифта за бутона
с (buttonindex) ; / / Бутона Напред видима – вижте следващия
край
друг
започвам
(Form1 . компоненти [I] като TPanel) . видими: = False ; / / NO NAME = не показват бутона – премахване на ключовете без име
край ;
тегло (к) ; / / Бутона Напред – следващия бутон
край ;
край ;
край ;
/ / / / / / / / / / / / Същите бутони за програма – По същия начин за бутоните да стартира програми
buttonindex: = 0 ;
к: = 1 ;
I: = 0 до Form1 . ComponentCount – 1
започвам
ако (Form1 . Компоненти [I] е TPanel), тогава
започвам
ако comparetext ((Form1 . компоненти [I] като TPanel) . име , ‘ програма ‘ + IntToStr (к)) = 0, тогава
започвам

ред: = buttonindex Министерството на отбраната (редове) ;
колона: = buttonindex дивизия (редове) ;
ако дължината (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) . шрифта . Размер: = fontsize ;
с (buttonindex) ;
край
друг
започвам
(Form1 . компоненти [I] като TPanel) . видими: = False ;
край ;

тегло (к) ;
край ;
край ;
край ;

к: = 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 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 . компоненти [] като TLabel) . надпис: = LabelNames [к – 1] ; / / / Присвояване етикет надписи – хедъри подходящи етикети
(Form1 . компоненти [] като TLabel) . шрифта . цвят: = clwhite ; / / Задаване по подразбиране цвят за етикет – определя цвета по подразбиране за етикети
ако е възможно ( ‘ [ – % ] ‘ , LabelNames [к – 1])> ; 0 тогава (Form1 . компоненти [] като TLabel) . шрифта . цвят: = clyellow ; / / Задаване на цвят светлина измерване – за измерване на цвета осветление
ако е възможно ( ‘ [ % ] ‘ , LabelNames [к – 1])> ; 0 тогава (Form1 . компоненти [] като TLabel) . шрифта . цвят: = клакьори ; / / Задаване на цвят е единица за измерване на сто – цвят за стойността на интереси
ако е възможно ( ‘ [C] ‘ , LabelNames [к – 1])> ; 0 тогава (Form1 . компоненти [] като TLabel) . шрифта . цвят: = clwhite ; / / Задаване на цвят за управление на температурата – за цветови стойности на температурата
(Form1 . компоненти [] като TLabel) . шрифта . Размер: = labelfontsize ; / / Задаване на размера на шрифта за етикет – определя размера на шрифта за текста на етикета
с (buttonindex) ; / / Следваща видим етикета – етикета се появява
край
друг
започвам
(Form1 . компоненти [] като TLabel) . видими: = False ; / / Скриване на текстовите етикети, без да – Скриване на етикети, без textu
край ;
тегло (к) ; / / Next етикет – следващия етикет
край ;
край ;
край ;
update_status ; / / Update панел за ток състоянието на устройството от трупи – актуализира състоянието на водача на регистрационните файлове от сървъра EHouse
край ;
Крайният резултат след автоматично – конфигуриран и разположение на бутоните от програмата и премахване на несметни елементи (ако не искате те да имат на панела, защото на ограничения на правото на достъп или използване на изхода) .
 Крайният ефект от автоматично разпределение на елементите на формуляра
Прочетете още: Home Automation – Контролери EHouse
Home Automation EHouse Производител Home Automation