2.58 .connect

Dieses Attribut definiert beim Objekt application den Zustand und die Eigenschaften der Verbindung zu einem Server-Prozess. Bei den Objekten control und subcontrol definiert es den Zustand der OLE-Verbindung.

Definition

  • Datentyp

    string (application)

    boolean (control, subcontrol)

  • Zugriff

    get, set

  • changed-Ereignis

    ja

Application

Dieses Attribut definiert, dass sich die Anwendung mit einem laufenden Server-Prozess in Verbindung setzen soll, der auf dem Host gestartet worden ist.

Beim TCP/IP-Protokoll gilt für den Attributwert die Syntax

"<host>:<portnumber>"

wobei entweder der Name des Hosts oder seine IP-Adresse angegeben werden kann.

Um die Verbindung über SSL durchzuführen kann bei der Spezifikation der Verbindung über .connect das Schema "ssl://" vorangestellt werden (Beispiel .connect "ssl://myserver:0815";).

Beispiel

Ohne SSL

Mit SSL

application Appl {
  .connect "localhost:4711";
}
application Appl {
  .connect "ssl://localhost:4711";
}

Anmerkungen

Control

Dieses Attribut definiert den Zustand der Verbindung zum OLE-Client bzw. zum OLE-Server. Nur wenn eine Verbindung existiert, können die Dienstleistungen des OLE-Servers in Anspruch genommen werden.

Bei der Programmierung eines Controls im Client-Modus ist zu berücksichtigen das mit dem Setzen von .connect := true keine Verbindung zum Server geschaffen wird und das auch mit der Abfrage auf .connect = true nicht überprüft werden kann. Das Verbinden und Überprüfen zu einem Server ist erst möglich, wenn das Objekt sichtbar ist. Das Setzen/Erfragen einer Property oder Aufruf von Methoden ist damit erst möglich wenn das Objekt sichtbar ist. Dieses kann mit Hilfe des Attributs .real_visible = true überprüft werden.

Subcontrol

Der Vorgabewert für das Attribut ist false, d.h. es besteht keine Verbindung zu einem OLE-Server. Wird das Attribut auf true umgesetzt, versucht das Subcontrol, eine Verbindung zu einem OLE-Server (normalerweise eine Collection) des zum Vaterobjekt gehörenden OLE-Servers zu bekommen. Der Bezeichner des Subcontrols hat dabei dem Attributnamen des zuerst genannten OLE-Servers zu entsprechen.

Im folgenden Beispiel wird die Documents-Collection des Word-OCX konnektiert:

dialog WordClient
 
window WnFenster
{
  .title "WordClient";

  on close { exit; }

  control CoWord
  {
    .mode    mode_client;
    .name    "Word.Application";
    .visible true;
    .connect true;

    child subcontrol Documents { }
  }
}
 
on dialog start
{
  CoWord.Visible := true;
  Documents.connect := true;
  print Documents.connect;  // Sollwert true
}

Eine Verbindung kann nur dann erfolgreich aufgebaut werden, wenn der Vater realisiert und konnektiert ist und der Bezeichner des Subcontrols mit dem Namen des OLE-Server-Attributs übereinstimmt.

Wird das Attribut .connect auf false gesetzt, bricht die Verbindung zu dem konnektierten OLE-Server ab. Bei der gegenwärtigen Implementierung bleiben die Kinder eines Subcontrols dann jedoch trotzdem konnektiert!

Dies bedeutet auch: verliert das Vaterobjekt (egal ob Control oder Subcontrol) seine Verbindung wenn das Attribut bereits den Wert true hat, bleibt die Verbindung des Subcontrols trotzdem erhalten.