5.1.3       Otwarcie diagramu bez użycia predefiniowanego okna synoptycznego

 

Możliwe jest także bezpośrednie otwarcie diagramu synoptycznego bez wcześniejszego definiowania okna. Pozwala na to akcja OpenDiagram. W wyniku jej działania tworzone jest wewnętrznie okno tymczasowe, w którym wyświetlany jest żądany diagram.

Przykład 1.

OpenDiagram(machine,”mid=8”,stacyjka,$Normal, &CursorLocation, &CursorLocation,”FixedSize”, $None)

Akcja otwiera diagram machine z parametrem mid równym 8 w oknie utworzonym automatycznie. Rozmiar okna jest zgodny z rozmiarem diagramu, a jego położenie wynika z pozycji kursora. Tytuł okna oraz jego wygląd i zachowanie są określone bezpośrednio w treści akcji. W tym przypadku tytułem okna jest tekst stacyjka, okno ma stały rozmiar, a pozostałe parametry wyglądu są ustawione domyślnie.Podobnie jak w przypadku akcji OpenWindow, przed otwarciem nowego okna wykonywane jest sprawdzenia czy diagram z podanymi parametrami nie jest już otwarty. 

Działanie akcji jest zbliżone do akcji OpenWindow(okno1,info,machine,”mid=8”,true)  i pozwala na otwieraniu wielu okien stacyjek jednocześnie.

Podstawowa różnica pomiędzy akcjami OpenWindow i OpenDiagram polega na miejscu zdefiniowania wyglądu i zestawu dostępnych operacji systemowych okna. W pierwszym przypadku jest to określone w parametrach predefiniowanego okna, w drugim w treści akcji. Definicja w treści akcji pozwala na dynamiczne dostosowanie wyglądu okna, a w szczególności tytułu okna.

Przykład 2.

OpenDiagram(machine,”varname=”+Attribute(Name),”Zmienna “+Attribute(Name),$Normal, &CursorLocation, &CursorLocation,”FixedSize”, $None)

W tym przypadku nazwa zmiennej głównej obiektu (w kontekście którego akcja jest wykonywana) jest przekazywana do parametrów diagramu (parametr ”varname=”+Attribute(Name)). Jednocześnie nazwa zmiennej dodawana jest do tytułu stacyjki (parametr ”Zmienna “+Attribute(Name)).

Dodatkowa zaletą akcji OpenDiagram jest możliwość określenia trybu pracy. W pokazanym dotychczas trybie $Normal okno zachowuje się jak każde inne predefiniowane okno aplikacji. W trybie $Dialog tworzona jest stacyjka dialogowa – nie ma możliwości przejścia do innego okna do momentu zamknięcia stacyjki. W trybie $Temp okno jest automatycznie zamykane w chwili wyboru innego okna aplikacji.