[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/