Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Treeview for DOS (FPD25)
Message
De
07/08/2001 06:19:04
 
Information générale
Forum:
Visual FoxPro
Catégorie:
FoxPro 2.x
Divers
Thread ID:
00537703
Message ID:
00540560
Vues:
22
This message has been marked as the solution to the initial question of the thread.
Bhavbhuti,

I don't have the dos version at hand (this is 2.6 Win code), so you'll have to strip out the windows specific code, but it should give you some ideas.
#REGION 0
REGIONAL m.currarea, m.talkstat, m.compstat

IF SET("TALK") = "ON"
	SET TALK OFF
	m.talkstat = "ON"
ELSE
	m.talkstat = "OFF"
ENDIF
m.compstat = SET("COMPATIBLE")
SET COMPATIBLE FOXPLUS

m.rborder = SET("READBORDER")
SET READBORDER ON

*       ÖÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ·
*       º                                                         º
*       º               Windows Window definitions                º
*       º                                                         º
*       ÓÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĽ
*

IF NOT WEXIST("_0ga0ptxhj")
	DEFINE WINDOW _0ga0ptxhj ;
		AT 0.000, 0.000 ;
		SIZE 22.000,98.400 ;
		FONT "MS Sans Serif", 8 ;
		FLOAT ;
		NOCLOSE ;
		MINIMIZE ;
		SYSTEM
ENDIF


*       ÖÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ·
*       º                                                         º
*       º           TEST/Windows Setup Code - SECTION 2           º
*       º                                                         º
*       ÓÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĽ
*

#REGION 1
DIMENSION aList[4, 5]
lnListNr = 1
DO Populate


*       ÖÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ·
*       º                                                         º
*       º               TEST/Windows Screen Layout                º
*       º                                                         º
*       ÓÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĽ
*

#REGION 1
IF WVISIBLE("_0ga0ptxhj")
	ACTIVATE WINDOW _0ga0ptxhj SAME
ELSE
	ACTIVATE WINDOW _0ga0ptxhj NOSHOW
ENDIF
@ 1.000,2.600 GET lnListNr ;
 	PICTURE "@&N" ;
	FROM aList ;
	SIZE 19.615,31.000 ;
	DEFAULT 1 ;
	FONT "MS Sans Serif", 8 ;
	VALID ListAct()

IF NOT WVISIBLE("_0ga0ptxhj")
	ACTIVATE WINDOW _0ga0ptxhj
ENDIF

READ CYCLE

RELEASE WINDOW _0ga0ptxhj

#REGION 0

SET READBORDER &rborder

IF m.talkstat = "ON"
	SET TALK ON
ENDIF
IF m.compstat = "ON"
	SET COMPATIBLE ON
ENDIF



*       ÖÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ·
*       º                                                         º
*       º    TEST/Windows Supporting Procedures and Functions     º
*       º                                                         º
*       ÓÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĽ
*

#REGION 1
PROCEDURE Populate

***: 1 = Text
***: 2 = ID
***: 3 = Level
***: 4 = Expandable
***: 5 = Expanded

STORE "[+] Node 1" TO aList[1, 1]
STORE "[+] Node 2" TO aList[2, 1]
STORE "[-] Node 3" TO aList[3, 1]
STORE "[+] Node 4" TO aList[4, 1]

STORE 1 TO aList[1, 2]
STORE 2 TO aList[2, 2]
STORE 3 TO aList[3, 2]
STORE 4 TO aList[4, 2]

STORE 1 TO aList[1, 3]
STORE 1 TO aList[2, 3]
STORE 1 TO aList[3, 3]
STORE 1 TO aList[4, 3]

STORE .T. TO aList[1, 4]
STORE .T. TO aList[2, 4]
STORE .F. TO aList[3, 4]
STORE .T. TO aList[4, 4]

STORE .F. TO aList[1, 5]
STORE .F. TO aList[2, 5]
STORE .F. TO aList[3, 5]
STORE .F. TO aList[4, 5]

RETURN


FUNCTION ListAct

DO CASE
***: Level 1, expanded.
CASE aList[lnListNr, 3] = 1 AND aList[lnListNr, 5]
	STORE "[+] " + SUBSTR(aList[lnListNr, 1], 5) TO aList[lnListnr, 1]
	m.id = aList[lnListNr, 2]

	STORE .F.	TO aList[lnListNr, 5]
	i = lnListNr + 1
	DO WHILE aList[i, 2] = m.id AND i <= ALEN(aList, 1)
		IF i > ALEN(aList, 1)
			EXIT
		ENDIF
		=ADEL(aList, i)
		DIMENSION aList(ALEN(aList, 1) - 1, ALEN(aList, 2))
		IF i > ALEN(aList, 1)
			EXIT
		ENDIF
	ENDDO

***: Level 1, expandable, not expanded
CASE aList[lnListNr, 3] = 1 AND aList[lnListNr, 4] AND !aList[lnListNr, 5]

	m.tmpnr = lnListNr
	m.id = aList[lnListNr, 2]

	STORE "[-] " + SUBSTR(aList[lnListNr, 1], 5) TO aList[lnListNr, 1]
	STORE .T. TO aList[lnListNr, 5]

	DO CASE
	CASE m.id = 1

		DO ExpandOne
		STORE "    " + "Child 1" TO aList[lnListNr, 1]
		STORE m.id TO aList[lnListNr, 2]

		DO ExpandOne
		STORE "    " + "Child 2" TO aList[lnListNr, 1]
		STORE m.id TO aList[lnListNr, 2]

	CASE m.id = 2
		DO ExpandOne
		STORE "    " + "Child 3" TO aList[lnListNr, 1]
		STORE m.id TO aList[lnListNr, 2]

	CASE m.id = 4
		DO ExpandOne

		STORE "    " + "Child 4" TO aList[lnListNr, 1]
		STORE m.id TO aList[lnListNr, 2]

	ENDCASE

	lnListNr = m.tmpnr

ENDCASE

_CUROBJ = _CUROBJ
SHOW GET lnListNr
RETURN


PROCEDURE ExpandOne

lnListNr = lnListNr + 1
DIMENSION aList[ALEN(aList,1) + 1, ALEN(aList,2)]
=AINS(aList, lnListNr)

STORE 2		TO aList[lnListNr, 3]
STORE .F.	TO aList[lnListNr, 4]
STORE .F.	TO aList[lnListNr, 5]

RETURN
>Is there a TreeView sort of code available for DOS (FPD25) programming. I
>had once come across such a programming but have lost it since in the IO
>(Information Overload).
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform