Software-Entwicklung für Control Panels Zimmer für Windows Tablet – Form

Home Automation eHouse .
Erstellen Sie die wichtigste Form (Layout des Tablet-Bildschirm . Platziert auf der Hauptform 24 Felder TPanel Platten für alle Arten von digitalen Ausgängen RM .
Diese bilden die Tasten, um entpuppen RoomManager (oder elektrisch) .
Außerdem , die Farbe wird von dem Zustand der ausgelesenen hängen .
Aus diesem Grund verwendeten wir die Standard-Schaltflächen oder ähnlichen Typs TButton , weil sie nicht über die Möglichkeit, die Farbe zu ändern .
Wir nennen sie ” outputx ” wobei X der Anzahl der Ausgabekanäle .
Ich weiß nicht implementiert werden müssen , denn es wird es automatisch , diese Anwendung . Für jede Taste , die Ausgabe muss auf das gleiche Ereignis (onClick) zugeordnet werden – output1Click .
Platziert auf der Hauptform 24 Felder TPanel-Panels für alle Programme laufen RM .
Diese werden die Tasten zum Umschalten der aktuellen RoomManager (dh bilden , Ein / Ausschalten von elektrischen Geräten der Gruppe mit einer Änderung in den Meßeingängen der Schwellenwerte zur Regelung solcher verwendet . Temperatur) .
Wir nennen sie ” programX ” wobei X die Nummer der Taste .
Ähnlich , keine Notwendigkeit zu implementieren , denn es wird es automatisch , diese Anwendung .
Für jede Taste , Das Programm sollte auf das gleiche Ereignis (onClick) zugeordnet werden – program1Click .
Auf die wichtigste Form der Beschriftungen sind 16 Typen TLabel alle Ergebnisse der Messungen von RoomManager anzuzeigen (nummeriert Label1 Label16) .
Ähnlich wie in den obigen Fällen brauchen nicht bereitstellen .
Sehen Sie sich die endgültige Form für die  bilden Raumbediengerät erstellen
Initialisierung der Form:

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
Verfahren TForm1 . FormCreate (Sender: TObject) ;
var alignx , buttonindex , Reihe , Spalte , k , i: integer ;
beginnen
GetComputerName ; / / Holen Sie den Namen des Computers oder Panel – liest der
Pfad: = getcurrentdir () ; / / Holen Sie sich das aktuelle lokale Pfad Anwendungsverzeichnis – liest das Verzeichnis, in dem das Programm
Pfad: = StringReplace (Pfad , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Get Weg der Anwendung eHouse
remotePath: = path ; / / Das gleiche Pfad für remoteaccess für inicialization – am Anfang des Pfades für den gleichen Fernzugriff kartiert
loadnames_rm ; / / Load Controller-Namen ehouse1
init_heat_temperature_names ; / / Init HeatManager Namen
readethernetdevs ; / / Load Controller Ethernet eHouse Namen
i: = 1 ;
while i < ; = To / ParamCount / durchführen Befehlszeilenargument – verarbeitet die Befehlszeile
beginnen
wenn pos ( ‘ / X: ‘ , Kleinbuchstaben (ParamStr (i))) = 1 then / / Feldbreite – Breite des Paneels
form1 . Breite: = chk_int (StringReplace (ParamStr (i) , ‘ / X: ‘ , ‘ ‘ , [Rfignorecase])) ;
wenn pos ( ‘ / S: ‘ , Kleinbuchstaben (ParamStr (i))) = 1 then / / Tafelhöhe – Höhe der Platte
form1 . height: = chk_int (StringReplace (ParamStr (i) , ‘ / S: ‘ , ‘ ‘ , [Rfignorecase])) ;
wenn pos ( ‘ / R: ‘ , Kleinbuchstaben (ParamStr (i))) = 1 then / / Gerätenamen (RoomManager) – RoomManger Namen
deviceindex: = RMDeviceIndexByName ((StringReplace (ParamStr (i) , ‘ / R: ‘ , ‘ ‘ , [Rfignorecase]))) ;
wenn pos ( ‘ / A: ‘ , Kleinbuchstaben (ParamStr (i))) = 1 then / / Geräteadresse (RoomManager) – RoomManager-Adresse
deviceindex: = (get_index_rm (StringReplace (ParamStr (i) , ‘ / A: ‘ , ‘ ‘ , [Rfignorecase]))) ;
wenn pos ( ‘ / P: ‘ , Kleinbuchstaben (ParamStr (i))) = 1 then / / Remote-Zugriff path – Fernzugriff Pfad
remotePath: = ((StringReplace (ParamStr (i) , ‘ / P: ‘ , ‘ ‘ , [Rfignorecase]))) ;
inc (i) ;
Ende ;
Wenn Form1 . Breite < ; 100 dann form1 . width: = 800 ; / / Wenn falsche Parameter für die Größe legt Standardeinstellungen – defaults
Wenn Form1 . Höhe < ; 100 dann form1 . height: = 600 ;
devicestoupdatestatus: = IntToStr (rm [deviceindex] . ADRHA) + ‘ – ‘ + IntToStr (rm [deviceindex] . ADRL) ;
/ / Limit auf der Suche nach aktuellen Status RoomManager / herausfiltern anderen Geräten
/ / Für einzigen Gerät pannel prüfen Begrenzung UTILISATION
/ / Prüfen, nur den Status des ausgewählten RoomManager mal weniger CPU-und Server-eHouse
outputbuttonnames (deviceindex) ; / / Initialisiere Schaltflächen und Beschriftungen Namen – Boots , Schaltflächen und Beschriftungen
form1 . Bildunterschrift: = ‘ eHouse Control Panel: ‘ + Rm [deviceindex] . devname ; / / Set Beschriftung der wichtigsten Formen der RoomManager Namen – Kopfzeile zeigt den Namen des Formulars RoomManager
timer1 . Interval: = 3000 ; / / Set zyklische Task Intervall in Millisekunden
timer1 . Aktiviert: = true ; / / Start der automatischen Aufgaben (Status-Update
k: = 1 ;
buttonindex: = 0 ; / / Aktuelle Button (sichtbar) Index – die aktuelle Anzahl der (scheinbare)
Reihe: = 0 ; / / Aktuelle Schaltfläche in der Zeile – Nummer des aktuellen Schlüssel in der aktuellen Zeile
/ / Spalte: = 0 ;
alignx: = (form1 . clientWidth – (Zeilen) * (buttonWidth + Xspace)) div 2 ; / / Center am Schaltschrank – Zentrierblöcke Schaltflächen
for i: = 0 to form1 . ComponentCount – 1 / / Output-Taste automatische Setup – automatisch konfigurieren die Exit-Taste
begin / / Für jedes Objekt auf form1 – für alle Elemente des Form1
if (form1 . Komponenten [i] ist TPanel) then / / wenn das Objekt TPanel (unser Taste) – wenn der Objekttyp TPanel (Button)
beginnen
wenn comparetext ((form1 . Bestandteile [i] als TPanel) . Name , ‘ Ausgang ‘ + IntToStr (k)) = 0 then / / if Namen bestehen (Ausgang)
beginnen
Reihe: = buttonindex mod (Zeilen) ; / / Berechne Zeilen und Spalten Indizes – berechnet die Koordinaten der Spalte und Zeile
Spalte: = buttonindex div (Zeilen) ;
wenn die Länge (OutputNames [k – 1])> ; 0 then / / Nur zeigt ouput Schaltflächen mit dem Namen – zeigt nur Schaltflächen mit dem Namen
beginnen
(Form1 . Komponenten [i] als TPanel) . links: = alignx + R. * (buttonWidth + Xspace) ; / / Berechnen der X-Achse possition – berechnet seine Position in der X Achse
(Form1 . Komponenten [i] als TPanel) . oben: = yoffsetouts + Spalte * (buttonheight + yspace) ; / / Berechne die Y-Achse possition – berechnet seine Position in der Y-Achse
(Form1 . Komponenten [i] als TPanel) . width: = buttonWidth ; / / Set Breite Tasten – Breite der Knöpfe
(Form1 . Komponenten [i] als TPanel) . height: = buttonheight ; / / Set Buttons Höhe – Die Menge an Knöpfen
(Form1 . Bestandteile [i] als TPanel) . Bildunterschrift: = Outputnames [k – 1] ; / / Set-Taste Bildunterschrift – setzt den Text der Schaltfläche
(Form1 . Bestandteile [i] als TPanel) . BevelInner: = bvRaised ;
(Form1 . Bestandteile [i] als TPanel) . BevelOuter: = bvRaised ;
(Form1 . Bestandteile [i] als TPanel) . Schriftart . Size: = fontsize ; / / Set Schriftgröße Knopf – setzt die Schriftgröße für den Button
inc (buttonindex) ; / / Next Button sichtbar – finden Sie im nächsten
Ende
sonst
beginnen
(Form1 . Bestandteile [i] als TPanel) . sichtbar: = false ; / / Keine name = nicht zeigen Button – ziehen Sie den Schlüssel ohne Namen
Ende ;
inc (k) ; / / Next-Taste – nächsten Button
Ende ;
Ende ;
Ende ;
/ / / / / / / / / / / / Die gleichen Tasten für Programm – Ähnliches gilt für die Tasten Programme starten
buttonindex: = 0 ;
k: = 1 ;
for i: = 0 to form1 . ComponentCount – 1 bis
beginnen
if (form1 . Komponenten [i] ist TPanel), dann
beginnen
wenn comparetext ((form1 . Bestandteile [i] als TPanel) . Name , ‘ Programm ‘ + IntToStr (k)) = 0 dann
beginnen

Reihe: = buttonindex mod (Zeilen) ;
Spalte: = buttonindex div (Zeilen) ;
wenn die Länge (ProgramNames [k – 1])> ; 0 ist, dann
beginnen
(Form1 . Komponenten [i] als TPanel) . links: = alignx + R. * (buttonWidth + Xspace) ;
(Form1 . Komponenten [i] als TPanel) . oben: = yoffsetprograms + Spalte * (buttonheight + yspace) ;
(Form1 . Komponenten [i] als TPanel) . width: = buttonWidth ;
(Form1 . Komponenten [i] als TPanel) . height: = buttonheight ;
(Form1 . Bestandteile [i] als TPanel) . Bildunterschrift: = Programnames [k – 1] ; / / Set-Taste caption Tasten für Programm – legt den Namen der Programm-Tasten
(Form1 . Bestandteile [i] als TPanel) . BevelInner: = bvRaised ;
(Form1 . Bestandteile [i] als TPanel) . BevelOuter: = bvRaised ;
(Form1 . Bestandteile [i] als TPanel) . Schriftart . Size: = fontsize ;
inc (buttonindex) ;
Ende
sonst
beginnen
(Form1 . Bestandteile [i] als TPanel) . sichtbar: = false ;
Ende ;

inc (k) ;
Ende ;
Ende ;
Ende ;

k: = 1 ;
buttonindex: = 0 ;
/ / Alignx: = (form1 . clientWidth – (Labelrows * (labelwidth + labelresultsize + Xspace))) div 2 ;
/ / / / / / / Analogicaly für Etiketten – Ähnlich , das Etikett
for i: = 0 to form1 . ComponentCount – 1 bis
beginnen
if (form1 . Komponenten [i] ist TLabel), dann
beginnen
wenn comparetext ((form1 . Bestandteile [i] als TLabel) . Name , ‘ Etikett ‘ + IntToStr (k)) = 0 dann
beginnen

Reihe: = buttonindex mod (labelrows) ;
Spalte: = buttonindex div (labelrows) ;
wenn die Länge (LabelNames [k – 1])> ; 0 then / / wenn die Länge der Label-Text> ; ; 0 – wenn die Beschreibung
beginnen
(Form1 . Komponenten [i] als TLabel) . links: = alignx + R. * (labelwidth + labelresultsize + Xspace) ; / / Berechnen X Standort
(Form1 . Komponenten [i] als TLabel) . oben: = yoffsetlabel + Spalte * (labelheight + yspace) ; / / Berechne den Y-Position
(Form1 . Komponenten [i] als TLabel) . width: = labelwidth ;
(Form1 . Komponenten [i] als TLabel) . height: = labelheight ;
(Form1 . Bestandteile [i] als TLabel) . Bildunterschrift: = LabelNames [k – 1] ; / / / Weisen Label Bildunterschriften – headers geeigneten Etiketten
(Form1 . Bestandteile [i] als TLabel) . Schriftart . Farbe: = clWhite ; / / Set Standardfarbe für Label – setzt die Standardfarbe für Etiketten
wenn pos ( ‘ [ – % ] ‘ , LabelNames [k – 1])> ; 0 then (form1 . Bestandteile [i] als TLabel) . Schriftart . Farbe: = clyellow ; / / Set Farbe für Lichtmessung – für die Messung von Farb-Beleuchtungssystem
wenn pos ( ‘ [ % ] ‘ , LabelNames [k – 1])> ; 0 then (form1 . Bestandteile [i] als TLabel) . Schriftart . Farbe: = Claque ; / / Set Farbmessung für Prozent – Farbe für den interessierenden Wert
wenn pos ( ‘ [C] ‘ , LabelNames [k – 1])> ; 0 then (form1 . Bestandteile [i] als TLabel) . Schriftart . Farbe: = clWhite ; / / Set Farbe für Temperatur-Management – für die Farbtemperatur-Werte
(Form1 . Bestandteile [i] als TLabel) . Schriftart . Size: = labelfontsize ; / / Set Schriftgröße für Label – setzt die Schriftgröße für die Beschriftung
inc (buttonindex) ; / / Next sichtbare Beschriftung – Label erscheint neben
Ende
sonst
beginnen
(Form1 . Bestandteile [i] als TLabel) . sichtbar: = false ; / / Text verstecken Etiketten ohne – verbergen Etiketten ohne textu
Ende ;
inc (k) ; / / Next Label – nächste Etikett
Ende ;
Ende ;
Ende ;
update_status ; / / Update-Panel für aktuelle Gerätestatus aus Baumstämmen – aktualisiert den Status des Treibers der Log-Dateien vom Server eHouse
Ende ;
Das Ergebnis nach der automatischen – konfiguriert und Anordnung der Schaltflächen durch das Programm und entfernen Sie unzählige Elemente (wenn Sie nicht wollen, dass sie auf der Platte, weil der Einschränkungen der Rechte auf Zugang haben oder die Nutzung der Leistung) .
 Das endgültige Ergebnis des automatischen Verteilung der Elemente auf dem Formular
Lesen Sie mehr: Home Automation – Controller eHouse
Home Automation eHouse Home Automation Hersteller