I would be grateful if anyone could rectify the following code to enable the dynamic update of the listbox. As you can see, I have attempted to use WINDOWS_UPDATE@ on the screen variables but this makes no difference.
PROGRAM TEST
WINAPP
C
C Choosing IAPPLES or IGREEK will only update the 1st
C array element in CITEMS. Why is this ?
C
IMPLICIT REAL8 (A-H, O-Z)
IMPLICIT INTEGER2 (J)
C
INCLUDE <WINDOWS.INS>, NOLIST
C
EXTERNAL RB_FUNC
INTEGER RB_FUNC
C
CHARACTER CITEMS(10)*20
C
COMMON / TEST_LS / NONE, IAPPLES, IGREEK,
* ITEM, NITEMS, CITEMS, IGREY
C
NONE = 1
IAPPLES = 0
IGREEK = 0
C
I = RB_FUNC()
C
I = WINIO@('%3ga&', NONE, IAPPLES, IGREEK) I = WINIO@('Fill list box with :&') I = WINIO@('%ff%2ta%^rb[none]&', NONE, RB_FUNC) I = WINIO@('%ff%2ta%^rb[Apples]&', IAPPLES, RB_FUNC) I = WINIO@('%ff%2ta%^rb[Greek]&', IGREEK, RB_FUNC) I = WINIO@('%ff %ffList box :&') I = WINIO@('%ff%2ta%~ls', CITEMS, NITEMS, ITEM, IGREY)
C
END
INTEGER FUNCTION RB_FUNC()
C -------------------------- C IMPLICIT REAL8 (A-H, O-Z) IMPLICIT INTEGER2 (J) C INCLUDE <WINDOWS.INS>, NOLIST C CHARACTER CITEMS(10)*20 C COMMON / TEST_LS / NONE, IAPPLES, IGREEK, * ITEM, NITEMS, CITEMS, IGREY C ITEM = 1 CITEMS = ' ' IGREY = 1 C IF (NONE.GT.0) THEN NITEMS = 1 CITEMS(1) = 'none' IGREY = 0 ELSEIF (IAPPLES.GT.0) THEN NITEMS = 4 CITEMS(1) = 'Braeburn' CITEMS(2) = 'Bramley' CITEMS(3) = 'Cox Pippin' CITEMS(4) = 'Granny Smith' ELSEIF (IGREEK.GT.0) THEN NITEMS = 3 CITEMS(1) = 'Alpha' CITEMS(2) = 'Beta' CITEMS(3) = 'Gamma' ENDIF C C Following WINDOW_UPDATEs make no difference... C C CALL WINDOW_UPDATE@(NITEMS) C CALL WINDOW_UPDATE@(ITEM) C DO N = 1, 10 C CALL WINDOW_UPDATE@(CITEMS(N)) C ENDDO C RB_FUNC = 1 C END