Разработка программного обеспечения для контрольных панелей помещения для 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