5.2      Kontrola położenia i rozmiaru okien

 

Miejsce otwarcia nowych okien jest deklarowane bezpośrednio w akcjach OpenWindow i OpenDiagram. Pozycja może być deklarowana na cztery sposoby:

a.       Współrzędne podane bezpośrednio

b.      Współrzędne wynikające z definicji okna – stała $Default

c.       Współrzędne wynikające z aktualnej pozycji myszki – stała $CursorLocation

d.      Współrzędne wynikające z pozycji okna, z którego wykonano akcję otwarcia – stała $ActiveLocation

 

We wszystkich wariantach wywołania akcji otwarcia, jeżeli dojdzie do wykrycia sytuacji, że właściwe okno jest już otwarte, to nastąpi korekta pozycji istniejącego okna zgodnie z podanymi parametrami współrzędnych.

Przykład 1

OpenDiagram(machine,”mid=8”,stacyjka,$Normal, $ActiveLocation, $ActiveLocation,”FixedSize”, $Closable)

Akcja otwiera diagram machine w miejscu okna, z którego akcja została zainicjowana. Dodatkowo parametr $Closable spowoduje, że to okno zostanie zamknięte. Takie użycie akcji pozwala na uzyskanie efektu samowymieniających się okien – nawet po zmianie przez użytkownika pozycji pierwszego okna, drugie zostanie otwarte w jego miejscu. Podobny efekt można uzyskać stosując wymianę diagramu w panelu okna stale otwartego.

Tryby $CursorLocation i $ActiveLocation w sposób naturalny otwierają okno na ekranie aktualnie używanym. Tryb $Default używa monitora z góry określonego. W trybie współrzędnych podawanych bezpośrednio można dynamicznie wyliczać właściwą pozycję.

Przykład 2.

OpenWindow(okno1,info,machine,”mid=8”,false,XOnScreen(0,0),YOnScreen(100,0),$None)

Użycie funkcji  XOnScreen i YOnScreen pozwala wyliczyć pozycję w zależności od wybranego monitora. Drugi parametr obu funkcji określa numer monitora (0 oznacza monitor kursora myszki). Pokazana akcja otworzy okno na monitorze kursora myszki, przy lewej krawędzi ekranu, od linii numer 100.

Rozmiar otwieranych okien wynika z rozmiaru predefiniowanego okna (OpenWindow)  lub rozmiary diagramu (OpenDiagram). Można jednak zmienić rozmiar  po operacji otwarcia okna przy pomocy akcji SetWindowSize.