Software Development pro pokoje ovládacích panelů systému Windows Tablet – Formulář

Domácí automatizace eHouse .
Vytvořte hlavní formulář (dispozice tablet obrazovky . Umístěn na hlavní formuláři 24 polí TPanel panelů pro všechny typy digitálních výstupů RM .
Ty budou tvořit tlačítka pro zapnutí se RoomManager (nebo elektrické) .
Kromě , barva bude záviset na stavu přečíst .
Z tohoto důvodu jsme použili standardní tlačítka nebo podobného typu tna , protože nemají možnost změnit barvu .
Říkáme jim ” outputX ” kde X je počet výstupů .
Nepotřebuju být nasazeny , protože to bude dělat to automaticky , tato aplikace . Pro každé tlačítko , výstup musí být přiřazen ke stejné události (onClick) – output1Click .
Umístěn na hlavní formuláři 24 pole panelů TPanel typ pro všechny programy spustit RM .
Ty budou tvořit tlačítka pro přepínání aktuální RoomManager (tj. , Zapnutí / vypnutí elektrických zařízení skupiny se změnou v měřících vstupů těchto prahových hodnot používá k regulaci jako . teplota) .
Říkáme jim ” programX ” kde X je číslo tlačítka .
Podobně , není třeba nasadit , protože to bude dělat to automaticky , tato aplikace .
Pro každé tlačítko , Program by měl být přiřazen ke stejné události (onClick) – program1Click .
Na hlavní forma textové popisky jsou 16 druhy TLabel k zobrazení všech výsledků měření RoomManager (číslované Label1 až Label16) .
Podobně jako ve výše uvedených případech není nutné nasadit .
Zobrazit konečnou podobu pro  tvoří vytvořit pokoj ovládacího panelu
Inicializace formy:

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
Postup TForm1 . FormCreate (Sender: TObject) ;
var alignx , buttonindex , řádek , sloupec , k , i: integer ;
začít
GetComputerName ; / / Získat název počítače nebo panel – čte
Cesta: = getcurrentdir () ; / / Získat aktuální místní cesta adresář aplikace – přečte adresář, ve kterém je program
Cesta: = stringreplace (cesta , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Získání cestu aplikace eHouse
remotepath: = cesta ; / / Stejná cesta pro RemoteAccess pro inicializaci – na začátku cesty mapovány na stejnou vzdálený přístup
loadnames_rm ; / / Load regulátor názvy ehouse1
init_heat_temperature_names ; / / Init HeatManager názvy
readethernetdevs ; / / Load regulátory ethernet eHouse názvy
i: = 1 ;
zatímco i < ; = Paramcount k / / provést argument příkazového řádku – zpracovává příkazového řádku
začít
pokud pos ( ‘ / X: ‘ , malá písmena (ParamStr (i))) = 1 then / / šířka panelu – šířka panelu
form1 . Šířka: = chk_int (stringreplace (ParamStr (i) , ‘ / X: ‘ , ‘ ‘ , [Rfignorecase])) ;
pokud pos ( ‘ / S: ‘ , malá písmena (ParamStr (i))) = 1 then / / panel výška – Výška panelu
form1 . výška: = chk_int (stringreplace (ParamStr (i) , ‘ / S: ‘ , ‘ ‘ , [Rfignorecase])) ;
pokud pos ( ‘ / R: ‘ , malá písmena (ParamStr (i))) = 1 then / / název zařízení (RoomManager) – RoomManger jméno
deviceindex: = RMDeviceIndexByName ((stringreplace (ParamStr (i) , ‘ / R: ‘ , ‘ ‘ , [Rfignorecase]))) ;
pokud pos ( ‘ /: ‘ , malá písmena (ParamStr (i))) = 1 then / / adresa zařízení (RoomManager) – RoomManager adresa
deviceindex: = (get_index_rm (stringreplace (ParamStr (i) , ‘ /: ‘ , ‘ ‘ , [Rfignorecase]))) ;
pokud pos ( ‘ / P: ‘ , malá písmena (ParamStr (i))) = 1 then / / vzdálený přístup cesta – vzdálený přístup cesta
remotepath: = ((stringreplace (ParamStr (i) , ‘ / P: ‘ , ‘ ‘ , [Rfignorecase]))) ;
inc (i) ;
konec ;
pokud Form1 . šířka < ; 100 pak Form1 . šířka: = 800 ; / / Pokud je špatné parametry pro velikost nastaví výchozí – výchozí
pokud Form1 . výška < ; 100 pak Form1 . výška: = 600 ;
devicestoupdatestatus: = IntToStr (rm [deviceindex] . Adrha) + ‘ – ‘ + IntToStr (rm [deviceindex] . adrl) ;
/ / Limit vyhledávání aktuálního stavu RoomManager / vyfiltrovat další zařízení
/ / Kontrola jednoho přístroje PANEL pro omezení VYUŽITÍ
/ / Kontrola pouze stav vybrané RoomManager krát méně CPU a serveru eHouse
outputbuttonnames (deviceindex) ; / / Inicializace tlačítek a etikety jména – boty , Tlačítka a textové štítky
form1 . titulek: = ‘ eHouse Ovládací panel: ‘ + Rm [deviceindex] . devname ; / / Set titulek z hlavních forem RoomManager jména – záhlaví zobrazuje název formuláře RoomManager
Timer1 . Interval: = 3000 ; / / Set cyklické úlohy interval v milisekundách
Timer1 . Povoleno: = true ; / / Spustit automatické úkoly (aktualizace stavu
k: = 1 ;
buttonindex: = 0 ; / / Aktuální Tlačítko (viditelné) index – aktuální počet (zdánlivý)
řádek: = 0 ; / / Aktuální tlačítko v řadě – číslo aktuálního klíče v aktuálním řádku
/ / Sloupce: = 0 ;
alignx: = (Form1 . clientWidth – (Řádky) * (buttonwidth + Xspace)) div 2 ; / / Centrum tlačítka na panelu – středicí bloky tlačítka
pro i: = 0 až form1 . ComponentCount – 1 / / Output Tlačítko automatické nastavení – automaticky nakonfigurovat tlačítko Exit
begin / / pro každý objekt na Form1 – pro všechny prvky Form1
if (Form1 . Komponenty [i] je TPanel) then / / pokud je objekt TPanel (náš odkaz) – pokud je objekt typu TPanel (tlačítko)
začít
pokud comparetext ((Form1 . složky [i] as TPanel) . jméno , ‘ výkon ‘ + IntToStr (k)) = 0 then / / pokud název obsahuje (výstup)
začít
řádek: = buttonindex mod (řádky) ; / / Výpočet řádků a sloupců indexy – vypočítá souřadnice sloupců a řádků
sloupec: = buttonindex div (řádky) ;
pokud délka (OutputNames [k – 1])> ; 0 then / / Pouze ukazuje, Výstupní tlačítka s názvem – zobrazuje pouze tlačítka s názvem
začít
(Form1 . Komponenty [i] as TPanel) . vlevo: = alignx + ř. * (buttonwidth + Xspace) ; / / Výpočet osa X roli hraje – vypočítá svou pozici v ose X
(Form1 . Komponenty [i] as TPanel) . top: = yoffsetouts + column * (buttonheight + yspace) ; / / Výpočet osy Y roli hraje – vypočítá svou pozici v ose Y
(Form1 . Komponenty [i] as TPanel) . šířka: = buttonwidth ; / / Set Šířka Tlačítka – Šířka tlačítek
(Form1 . Komponenty [i] as TPanel) . výška: = buttonheight ; / / Set Tlačítka Výška – Výše tlačítek
(Form1 . složky [i] as TPanel) . titulek: = Outputnames [k – 1] ; / / Tlačítko nastavení Caption – nastaví text tlačítka
(Form1 . složky [i] as TPanel) . Bevelinner: = bvRaised ;
(Form1 . složky [i] as TPanel) . BevelOuter: = bvRaised ;
(Form1 . složky [i] as TPanel) . font . Velikost: = velikost fontu ; / / Set Velikost písma Button – nastaví velikost písma pro tlačítko
inc (buttonindex) ; / / Další tlačítko viditelné – viz další
konec
jiný
začít
(Form1 . složky [i] as TPanel) . viditelné: = false ; / / No name = nezobrazovat tlačítko – odebrat klíče bez názvu
konec ;
inc (k) ; / / Další tlačítko – další tlačítko
konec ;
konec ;
konec ;
/ / / / / / / / / / / / Stejné Tlačítka pro program – Podobně pro tlačítka na spouštění programů
buttonindex: = 0 ;
k: = 1 ;
pro i: = 0 až form1 . ComponentCount – 1 až
začít
if (Form1 . Komponenty [i] je TPanel), pak
začít
pokud comparetext ((Form1 . složky [i] as TPanel) . jméno , ‘ program ‘ + IntToStr (k)) = 0, pak
začít

řádek: = buttonindex mod (řádky) ;
sloupec: = buttonindex div (řádky) ;
pokud délka (ProgramNames [k – 1])> ; 0, pak
začít
(Form1 . Komponenty [i] as TPanel) . vlevo: = alignx + ř. * (buttonwidth + Xspace) ;
(Form1 . Komponenty [i] as TPanel) . top: = yoffsetprograms + column * (buttonheight + yspace) ;
(Form1 . Komponenty [i] as TPanel) . šířka: = buttonwidth ;
(Form1 . Komponenty [i] as TPanel) . výška: = buttonheight ;
(Form1 . složky [i] as TPanel) . titulek: = Programnames [k – 1] ; / / Set Tlačítka Tlačítko titulek pro program – nastaví název programu tlačítek
(Form1 . složky [i] as TPanel) . Bevelinner: = bvRaised ;
(Form1 . složky [i] as TPanel) . BevelOuter: = bvRaised ;
(Form1 . složky [i] as TPanel) . font . Velikost: = velikost fontu ;
inc (buttonindex) ;
konec
jiný
začít
(Form1 . složky [i] as TPanel) . viditelné: = false ;
konec ;

inc (k) ;
konec ;
konec ;
konec ;

k: = 1 ;
buttonindex: = 0 ;
/ / Alignx: = (Form1 . clientWidth – (Labelrows * (labelwidth + labelresultsize + Xspace))) div 2 ;
/ / / / / / / Analogicaly pro štítky – Podobně , štítek
pro i: = 0 až form1 . ComponentCount – 1 až
začít
if (Form1 . Komponenty [i] je TLabel), pak
začít
pokud comparetext ((Form1 . složky [i] as TLabel) . jméno , ‘ štítek ‘ + IntToStr (k)) = 0, pak
začít

řádek: = buttonindex mod (labelrows) ;
sloupec: = buttonindex div (labelrows) ;
pokud délka (LabelNames [k – 1])> ; 0 then / / pokud délka textu štítků> ; ; 0 – v případě, že popis je
začít
(Form1 . Komponenty [i] as TLabel) . vlevo: = alignx + ř. * (labelwidth + labelresultsize + Xspace) ; / / Výpočet X zařazení
(Form1 . Komponenty [i] as TLabel) . top: = yoffsetlabel + column * (labelheight + yspace) ; / / Výpočet umístění Y
(Form1 . Komponenty [i] as TLabel) . šířka: = labelwidth ;
(Form1 . Komponenty [i] as TLabel) . výška: = labelheight ;
(Form1 . složky [i] as TLabel) . titulek: = LabelNames [k – 1] ; / / / Přiřazení štítků titulky – záhlaví vhodné štítky
(Form1 . složky [i] as TLabel) . font . Barva: = clwhite ; / / Nastavit výchozí barvy pro štítek – nastavuje výchozí barvu pro tisk etiket
pokud pos ( ‘ [ – % ] ‘ , LabelNames [k – 1])> ; 0, pak (Form1 . složky [i] as TLabel) . font . Barva: = clyellow ; / / Nastavení barvy pro měření světla – pro měření barev osvětlení
pokud pos ( ‘ [ % ] ‘ , LabelNames [k – 1])> ; 0, pak (Form1 . složky [i] as TLabel) . font . Barva: = Claque ; / / Set pro měření barev na procenta – Barva pro hodnotu zájmu
pokud pos ( ‘ [C] ‘ , LabelNames [k – 1])> ; 0, pak (Form1 . složky [i] as TLabel) . font . Barva: = clwhite ; / / Nastavení barvy pro řízení teploty – hodnot barevné teploty
(Form1 . složky [i] as TLabel) . font . Velikost: = labelfontsize ; / / Set velikost písma pro štítek – nastaví velikost písma pro text popisku
inc (buttonindex) ; / / Next viditelné označení – štítek se zobrazí další
konec
jiný
začít
(Form1 . složky [i] as TLabel) . viditelné: = false ; / / Skrýt textové popisky bez – skrýt štítky bez edited
konec ;
inc (k) ; / / Next štítek – další štítek
konec ;
konec ;
konec ;
update_status ; / / Update panel na aktuální stav zařízení z kulatiny – aktualizuje stav řidiče souborů protokolu ze serveru eHouse
konec ;
Konečný výsledek po auto – konfigurovat a tlačítko umístění v programu a odstraňte nesčetné prvky (pokud nechcete, aby se na panelu z důvodu omezení práv přístupu nebo použití výstupu) .
 Výsledný efekt na automatickou distribuci prvků ve formuláři
Přečtěte si více: Domácí automatizace – Regulátory eHouse
Domácí automatizace eHouse Domácí automatizace výrobce