createEx
[ Funktion ]
public static createEx(
type: string,
id: string,
attributes: null | Dictionary<any>
parent?: TcHmi.Controls.System.baseTcHmiControl | null
): TcHmi.Controls.System.baseTcHmiControl | undefined;
Erstellt eine Control-Instanz per Identifier, Typ und zusätzlichen Attributen.
Der Typ war ab Version 1.8 eine Kurzschreibung des Namens mit Prefix |
Parameter
Name | Typ | Beschreibung |
---|---|---|
type | Typ des neuen Controls. | |
id | Identifier des neuen Controls. | |
attributes | Ein Dictionary ( Objekt ) aus Attributnamen und Werten. Beispiel: { 'data-tchmi-attribute2' : false Die Attributnamen können Sie aus dem HTML-Editor auslesen. Konfigurieren Sie dazu ein beliebiges Control und öffnen Sie den HTML-Editor. | |
parent [ Optional ] | Eltern-Control des neuen Controls. Wird unter anderem genutzt zur Prüfung der Zugriffsrechte, wenn diese vom Eltern-Control abhängen.
Wird ein Control dynamisch auf Applikationsebene ( CodeBehind ) erstellt um es anschließend zu einem ContainerControl (View, Content, Container, etc.) hinzuzufügen ist dieser Parameter nicht zu setzen. Die Eltern-Kind-Beziehung wird dynamisch hergestellt, wenn das Control per addChild Funktion zum entsprechenden ContainerControl hinzugefügt wird.
Wird ein Control dynamisch innerhalb eines anderen Controls erstellt, so ist dieses andere Control das logische Eltern-Control und muss bei der Erstellung des neuen Controls übergeben werden, damit Eigenschaften wie Zugriffsrechte auch auf dieses Kind-Control wirken können und das System die Möglichkeit hat dieses Kind-Control zu zerstören, wenn das Eltern-Control zerstört wird. |
Rückgabewert
Typ | Beschreibung |
---|---|
Das Control-Objekt oder |
Verfügbar ab Version 1.10 |
Beispiel – JavaScript
TcHmi.EventProvider.register('Desktop.onAttached', function (e, data) {
var myButton = TcHmi.ControlFactory.createEx(
'tchmi-button',
'MyButton',
{
'data-tchmi-top': 25,
'data-tchmi-left': 250,
'data-tchmi-width': 200,
'data-tchmi-height': 50,
'data-tchmi-text': 'MyButton',
'data-tchmi-background-color': {
'color': 'rgba(55, 55, 55, 1)'
}
}
);
var desktop = TcHmi.Controls.get('Desktop');
if (desktop && myButton) {
desktop.addChild(myButton);
}
});
Beispiel – TypeScript
TcHmi.EventProvider.register('Desktop.onAttached', function (e, data) {
let myButton = TcHmi.ControlFactory.createEx(
'tchmi-button',
'MyButton',
{
'data-tchmi-top': 25,
'data-tchmi-left': 250,
'data-tchmi-width': 200,
'data-tchmi-height': 50,
'data-tchmi-text': 'MyButton',
'data-tchmi-background-color': {
'color': 'rgba(55, 55, 55, 1)'
}
}
);
let desktop = TcHmi.Controls.get<TcHmi.Controls.System.TcHmiView>('Desktop');
if (desktop && myButton) {
desktop.addChild(myButton);
}
});