Erweiterte Programmierung


Modale Dialoge öffnen Sie mit der Methode "ShowDialog". Sie müssen lediglich ein Design der Kategorie "Teilansicht" ("Global.ACUsages.DULayout") hinzufügen. Übergeben Sie den Designnamen im zweiten Parameter:

ShowDialog(this, "MyDesignName");

Der Dialog erhält den Datenkontext bzw. BSOACComponent von der übergebenen Instanz die im ersten Parameter übergeben wurde. In der Regel ist das die this-Referenz.

Das folgende Beispiel zeigt ein Design mit drei Tasten, das per ShowDialog angezeigt werden soll:

 

Die letzte Taste ist mit der Methode "CloseTopDialog" verbunden, die bereits in der ACComponent-Klasse selbst deklariert ist. Sie sorgt dafür, dass der oberste modale Dialog geschlossen wird.

Die anderen zwei Methoden sind im Geschäftsobjekt selbst deklariert:

 

Innerhalb dieser Methoden wird wiederum "CloseTopDialog" aufgerufen. Zusätzlich wird in der lokalen Eigenschaft "DialogResult" gespeichert, welche Taste der Benutzer gedrückt und welches Material er in der ComboBox ausgewählt hat. Sie werden sich jetzt fragen, wozu SelectedMaterial nochmals explizit in die Eigenschaft "DialogResult.ReturnValue" kopiert wird? Ja, dies macht innerhalb des Geschäftsobjektes selbst keinen Sinn, jedoch wird DialogResult in der folgenden Methode zurückgegeben:

 

Diese Methode ist eine Hilfsmethode um einen Filter auf bestimmte Materialien zu filtern. Mit der Search()-Methode werden die Datensätze von der Datenbank geholt. Danach der modale Dialog geöffnet, damit der Anwender ein Material in der Combobox auswählen kann. Nachdem eine der Tasten gedrückt worden ist, wird der Dialog geschlossen und das Programm gibt dann den "DialogResult" in der letzten Programmzeile zurück.

Vielleicht ahnen Sie jetzt wozu diese Methode benötigt wird:

 

"OpenMaterialBSO" ist eine Methode aus einem anderen Geschäftsobjekt, das eine Materialauswahl benötigt. Dafür instanziiert es als Kindinstanz das obige Geschäftsobjekt und ruft die Methode "ShowDialogSelectMaterial" auf.


Sie können Designs auch als nicht modalen Dialog öffnen. Dabei wird ein dockbares Fenster geöffnet, das zum ersten umgebenden DockingManager gehört.

 ShowWindow(this, "Progress", false,
Global.VBDesignContainer.DockableWindow,
Global.VBDesignDockState.FloatingWindow,
Global.VBDesignDockPosition.Right);

Wie auch beim Öffnen eines modalen Dialoges, übergeben Sie die Referenz zu eine ACComponent-Instanz (meist der this-Zeiger) und den Namen des Designs, das angezeigt werden soll.

Die letzten drei Parameter geben an, wo der DockingManger das Fenster anzeigen soll.


Inputboxen stellen eine einfache Alternative zu modalen Dialogen dar. Für Inputboxen benötigen Sie kein explizites Design und sie werden mittels der Message-Klasse geöffnet:

 

Der erste Parameter ist ein Aufforderungstext. Der zweite ein Standard-Wert der vorgeschlagen wird. 

Falls der Anwender mehrere Werte eingeben soll, dann verwenden Sie die Methode "InputBoxValues":

 

Der erste Parameter ist die Dialogüberschrift. Der zweite Parameter eine Liste von Vorschlagwerten und der dritte Parameter enthält die Parameterbeschriftungen. Die Anzahl der Elemente muss hierbei mit der Anzahl der Vorschlagwerte übereinstimmen.