Развој на софтвер за контрола на Таб соби за Windows таблет – Форма

Home automation eHouse .
Креирај главна форма (распоред на таблета екран . Ставен на главна форма 24 полиња TPanel панели за сите видови на дигитални излези РМ .
Овие ќе ја формираат копчиња да излезат RoomManager (или електрични) .
Во прилог , боја ќе зависи од состојбата на прочитаат .
За оваа причина ние се користат стандардни копчиња или сличен тип TButton , бидејќи тие немаат можност да ја смените бојата .
Ги нарекуваме ” outputX ” каде што X е бројот на излезни .
Јас не треба да бидат распоредени , бидејќи тоа ќе го направи тоа автоматски , оваа апликација . За секоја копче , на излез мора да биде доделен на истиот настан (OnClick) – output1Click .
Ставен на главна форма 24 полиња TPanel тип панели за сите програми да се кандидира РМ .
Овие ќе ја формираат копчиња за префрлување тековната RoomManager (т.е. , вклучување / исклучување електрични уреди на групата со промена на мерење влезови на праговите се користи за регулирање како . температура) .
Ги нарекуваме ” programX ” каде што X е бројот на копче .
Слично , нема потреба да се распоредат , бидејќи тоа ќе го направи тоа автоматски , оваа апликација .
За секоја копче , оваа програма треба да биде доделен на истиот настан (OnClick) – program1Click .
На главна форма на текст етикети се 16 видови TLabel да се прикаже сите резултати од мерењата на RoomManager (нумерирани Label1 да Label16) .
Слично како и во горенаведените случаи не треба да се распоредат .
Прикажи ги конечната форма за  форма да се создаде соба контролен панел
Иницијализација на форма:

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
постапка TForm1 . FormCreate (Испраќач: TObject) ;
var alignx , buttonindex , ред , колона , k , i: Integer ;
започне
GetComputerName ; / / Земи го името на компјутерот или панел – чита
патека: = getcurrentdir () ; / / Земи го тековниот локален пат апликација директориум – се вели во директориумот во кој на програмата
патека: = stringreplace (патека , ‘ \ Бин ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Земи пат на примена eHouse
remotepath: = патека ; / / На истиот пат remoteaccess за inicialization – на почетокот на патот одбележан за истиот далечински пристап
loadnames_rm ; / / Вчитај контролер имиња ehouse1
init_heat_temperature_names ; / / Init HeatManager имиња
readethernetdevs ; / / Вчитај контролори Ethernet eHouse имиња
i: = 1 ;
додека јас < ; = Paramcount да / / извршува командата – процеси на командната линија
започне
ако POS ( ‘ / X: ‘ , мали букви (ParamStr (i))) = 1, тогаш / / панел ширина – Ширина на панелот
Формулар1 . Ширина: = chk_int (stringreplace (ParamStr (i) , ‘ / X: ‘ , ‘ ‘ , [Rfignorecase])) ;
ако POS ( ‘ / S: ‘ , мали букви (ParamStr (i))) = 1, тогаш / / висината на панелот – висината на панелот
Формулар1 . висина: = chk_int (stringreplace (ParamStr (i) , ‘ / S: ‘ , ‘ ‘ , [Rfignorecase])) ;
ако POS ( ‘ / R: ‘ , мали букви (ParamStr (i))) = 1, тогаш / / име на уред (RoomManager) – RoomManger име
deviceindex: = RMDeviceIndexByName ((stringreplace (ParamStr (i) , ‘ / R: ‘ , ‘ ‘ , [Rfignorecase]))) ;
ако POS ( ‘ / А: ‘ , мали букви (ParamStr (i))) = 1, тогаш / / адресата на уредот (RoomManager) – RoomManager адреса
deviceindex: = (get_index_rm (stringreplace (ParamStr (i) , ‘ / А: ‘ , ‘ ‘ , [Rfignorecase]))) ;
ако POS ( ‘ / P: ‘ , мали букви (ParamStr (i))) = 1, тогаш / / далечински пристап патека – далечински пристап патека
remotepath: = ((stringreplace (ParamStr (i) , ‘ / P: ‘ , ‘ ‘ , [Rfignorecase]))) ;
АД (i) ;
крајот ;
ако Формулар1 . ширина < ; 100 тогаш Формулар1 . ширина: = 800 ; / / Ако погрешно параметри за големината поставува стандардната – стандардно
ако Формулар1 . висина < ; 100 тогаш Формулар1 . висина: = 600 ;
devicestoupdatestatus: = IntToStr (РМ [deviceindex] . Adrha) + ‘ – ‘ + IntToStr (РМ [deviceindex] . adrl) ;
/ / Лимит потрага за сегашниот статус RoomManager / филтрираат други уреди
/ / Провери за еден уред pannel за ограничување УПОТРЕБА
/ / Проверете само статусот на избраните RoomManager пати помалку процесорот и серверот eHouse
outputbuttonnames (deviceindex) ; / / Иницијализира копчиња и етикети имиња – чизми , копчиња и текст етикети
Формулар1 . насловот: = ‘ eHouse Control Panel: ‘ + РМ [deviceindex] . devname ; / / Постави насловот на главните форми на RoomManager Име – Насловна покажува името на формата RoomManager
timer1 . Интервал: = 3000 ; / / Постави циклична задача интервал во милисекунди
timer1 . От е: = true ; / / Почнете автоматска задачи (статус ажурирање
к: = 1 ;
buttonindex: = 0 ; / / Тековни копчето (видлив) индекс – сегашниот број на (очигледно)
ред: = 0 ; / / Тековни копчето во ред – број на тековната клучот во тековната линија
/ / Колона: = 0 ;
alignx: = (Формулар1 . clientWidth – (Редови) * (buttonwidth + Xspace)) DIV 2 ; / / Центар копчињата на панелот – центрирање блокови копчиња
за i: = 0 до Формулар1 . ComponentCount – 1 / / излез копчето автоматско подесување – автоматски го конфигурирате Exit копче
започне / / за секој објект на Формулар1 – за сите елементи на Формулар1
ако (Формулар1 . Компоненти [i] е TPanel) тогаш / / ако објектот е TPanel (нашите копче) – ако објектот тип TPanel (копче)
започне
ако comparetext ((Формулар1 . компоненти [i] како TPanel) . име , ‘ излез ‘ + IntToStr (к)) = 0, тогаш / / ако името состојат (излез)
започне
ред: = buttonindex МО (редови) ; / / Пресметајте редови и колони индекси – пресметува координатите на колона и ред
колона: = buttonindex div (редови) ;
ако должина (OutputNames [к – 1])> ; 0 тогаш / / Само покажува излезот копчиња со името – само покажува копчињата со името
започне
(Формулар1 . Компоненти [i] како TPanel) . лево: = alignx + ред * (buttonwidth + Xspace) ; / / Пресметај X оската possition – ја пресметува неговата позиција на оската Х
(Формулар1 . Компоненти [i] како TPanel) . врвот: = yoffsetouts + колона * (buttonheight + yspace) ; / / Пресметајте Y оската possition – ја пресметува неговата позиција во Y оската
(Формулар1 . Компоненти [i] како TPanel) . ширина: = buttonwidth ; / / Постави Ширина копчиња – Ширина на копчиња
(Формулар1 . Компоненти [i] како TPanel) . висина: = buttonheight ; / / Постави копчиња Висина – Износот на копчиња
(Формулар1 . компоненти [i] како TPanel) . насловот: = Outputnames [к – 1] ; / / Постави Батон наслов – поставува на копчето текст
(Формулар1 . компоненти [i] како TPanel) . Bevelinner: = bvRaised ;
(Формулар1 . компоненти [i] како TPanel) . BevelOuter: = bvRaised ;
(Формулар1 . компоненти [i] како TPanel) . фонт . Големина: = fontsize ; / / Постави фонт Големина на Батон – поставува големината на фонтот за копче
АД (buttonindex) ; / / Копчето видливи – го видиш следната
крајот
друго
започне
(Формулар1 . компоненти [i] како TPanel) . видливи: = false ; / / No name = не покажуваат копчето – отстранат клучевите без име
крајот ;
inc (и) ; / / Копчето – Копчето
крајот ;
крајот ;
крајот ;
/ / / / / / / / / / / / На истите копчиња за програмата – Слично на копчиња за да започнат програми
buttonindex: = 0 ;
к: = 1 ;
за i: = 0 до Формулар1 . ComponentCount – 1 до
започне
ако (Формулар1 . Компоненти [i] е TPanel), тогаш
започне
ако comparetext ((Формулар1 . компоненти [i] како TPanel) . име , ‘ Програмата ‘ + IntToStr (к)) = 0, тогаш
започне

ред: = buttonindex МО (редови) ;
колона: = buttonindex div (редови) ;
ако должина (ProgramNames [к – 1])> ; 0, тогаш
започне
(Формулар1 . Компоненти [i] како TPanel) . лево: = alignx + ред * (buttonwidth + Xspace) ;
(Формулар1 . Компоненти [i] како TPanel) . врвот: = yoffsetprograms + колона * (buttonheight + yspace) ;
(Формулар1 . Компоненти [i] како TPanel) . ширина: = buttonwidth ;
(Формулар1 . Компоненти [i] како TPanel) . висина: = buttonheight ;
(Формулар1 . компоненти [i] како TPanel) . насловот: = Programnames [к – 1] ; / / Постави копчето насловот копчиња за програмата – поставува името на програмата копчиња
(Формулар1 . компоненти [i] како TPanel) . Bevelinner: = bvRaised ;
(Формулар1 . компоненти [i] како TPanel) . BevelOuter: = bvRaised ;
(Формулар1 . компоненти [i] како TPanel) . фонт . Големина: = fontsize ;
АД (buttonindex) ;
крајот
друго
започне
(Формулар1 . компоненти [i] како TPanel) . видливи: = false ;
крајот ;

inc (и) ;
крајот ;
крајот ;
крајот ;

к: = 1 ;
buttonindex: = 0 ;
/ / Alignx: = (Формулар1 . clientWidth – (Labelrows * (labelwidth + labelresultsize + Xspace))) DIV 2 ;
/ / / / / / / Analogicaly за етикети – Слично , на етикетата
за i: = 0 до Формулар1 . ComponentCount – 1 до
започне
ако (Формулар1 . Компоненти [i] е TLabel), тогаш
започне
ако comparetext ((Формулар1 . компоненти [i] како TLabel) . име , ‘ етикета ‘ + IntToStr (к)) = 0, тогаш
започне

ред: = buttonindex МО (labelrows) ;
колона: = buttonindex div (labelrows) ;
ако должина (LabelNames [к – 1])> ; 0 тогаш / / ако должината на етикета текст> ; ; 0 – ако опис е
започне
(Формулар1 . Компоненти [i] како TLabel) . лево: = alignx + ред * (labelwidth + labelresultsize + Xspace) ; / / Пресметај X локација
(Формулар1 . Компоненти [i] како TLabel) . врвот: = yoffsetlabel + колона * (labelheight + yspace) ; / / Пресметајте локацијата Y
(Формулар1 . Компоненти [i] како TLabel) . ширина: = labelwidth ;
(Формулар1 . Компоненти [i] како TLabel) . висина: = labelheight ;
(Формулар1 . компоненти [i] како TLabel) . насловот: = LabelNames [к – 1] ; / / / Додели етикета текстот – заглавја погодна етикети
(Формулар1 . компоненти [i] како TLabel) . фонт . боја: = clwhite ; / / Постави стандардната боја за етикета – поставува стандардната боја на етикети
ако POS ( ‘ [ – % ] ‘ , LabelNames [к – 1])> ; 0, тогаш (Формулар1 . компоненти [i] како TLabel) . фонт . боја: = clyellow ; / / Постави боја за светлина мерење – за мерење на боја осветлување
ако POS ( ‘ [ % ] ‘ , LabelNames [к – 1])> ; 0, тогаш (Формулар1 . компоненти [i] како TLabel) . фонт . боја: = Claque ; / / Постави боја мерење на проценти – боја за вредноста на интерес
ако POS ( ‘ [C] ‘ , LabelNames [к – 1])> ; 0, тогаш (Формулар1 . компоненти [i] како TLabel) . фонт . боја: = clwhite ; / / Постави боја за температура управување – за температура на бојата вредности
(Формулар1 . компоненти [i] како TLabel) . фонт . Големина: = labelfontsize ; / / Постави големината на фонтот за етикета – поставува големината на фонтот за текст етикета
АД (buttonindex) ; / / Следна видливи етикета – етикетата се појавува веднаш
крајот
друго
започне
(Формулар1 . компоненти [i] како TLabel) . видливи: = false ; / / Скриј го текстот етикети без – кријат етикети без textu
крајот ;
inc (и) ; / / Следна етикета – Следниот етикета
крајот ;
крајот ;
крајот ;
update_status ; / / Ажурирање панел за тековната статус на уредот од дневниците – ажурирања на статусот на возачот на лог датотеки од серверот eHouse
крајот ;
Крајниот резултат по авто – конфигуриран и копчето поставеност од страна на програмата и да ги отстраните нераскажаните елементи (ако не сакаат да ги имаат на панелот поради ограничувања на правата на пристап или употреба на излез) .
 Крајниот ефект на автоматска распределба на елементите на образец
Прочитајте повеќе за: Home automation – Контролери eHouse
Home automation eHouse Насловна Автоматика Производител