[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Konia z rzedem temu, ktory wyjasni...
On 7 Nov 97 at 16:54, Tomasz Fidecki wrote:
> Wlasnie.
> Pod Windows nie dziala w ogole, w trybie znakowym robi zbyt duzo. Dwa
> obiekty typu toggle-box, w momencie zmiany stanu jednego, chce, aby stan
> drugiego zmienial sie sam.
Polecam uruchomić programik w postaci nieco zmodyfikowanej (poniżej),
okazuje się że przebieg programu w obu trybach jest taki sam. Za każdym
razem wykonywany jest jeden raz trigger dla a i jeden raz trigger dla b
podejrzewam, że to są te mechanizmy obrony przed rekurencją, które pewnie
można znaleźć w dokumentacji, jeśli się wczytać). Różnica dotyczy tego, że w
wersji znakowej komenda "apply 'value-changed' to b" powoduje zmianę warości
wyświetlanej, a a wersji graficznej - nie. I tu jest różnica.
/* --------------------------------------------------------------- */
DEF VAR a AS LOGICAL VIEW-AS TOGGLE-BOX INIT yes.
DEF VAR b AS LOGICAL VIEW-AS TOGGLE-BOX.
DEF FRAME f
a b.
ON VALUE-CHANGED OF a in frame f do:
message "aaa" view-as alert-box.
APPLY "VALUE-CHANGED" TO b in frame f.
end.
ON VALUE-CHANGED OF b in frame f do:
message "bbb" view-as alert-box.
APPLY "VALUE-CHANGED" TO a in frame f.
end.
DISPLAY a b WITH FRAME f.
ENABLE a b WITH FRAME f.
WAIT-FOR WINDOW-CLOSE OF DEFAULT-WINDOW.
/* ------------------------------------------------------- */
> Zalozenie jest takie, ze nie chce operowac na zywych zmiennych, lecz
> jedynie na ich wartosciach z bufora ekranu. Rozwiazanie typu:
>
> ON VALUE-CHANGED OF a DO:
> b = NOT b.
> DISPLAY b WITH FRAME f.
> END.
> mnie nie interesuje. Jak sie maja do tego tzw "mechanizmy ochrony przed
> rekursja" wbudowane w Progressa?
>
> Pozdrawiam.
>
> Tomasz Fidecki phone (voice) +48 22 6404728
> Financial Services LTD mailto:tomek@fsl.com.pl
> Marynarska 21
> 02-674 Warsaw Poland
>
-----------------------------------------------------
Pawel Dobrzynski, CSBI Progress Department
Computer Systems for Business International SA
ul. Plowiecka 1, PL 04-501 Warszawa, POLAND
phone: (+48-22) 673-16-80 fax: (+48-22) 612-31-22
http://www.csbi.waw.pl/