Search this site
Embedded Files
Mon BBC SDL pas à pas
  • Accueil
  • BBC BASIC
  • BBC OS
  • BBC MODULES
  • RUBRIQUES
  • LIENS
Mon BBC SDL pas à pas
  • Accueil
  • BBC BASIC
  • BBC OS
  • BBC MODULES
  • RUBRIQUES
  • LIENS
  • More
    • Accueil
    • BBC BASIC
    • BBC OS
    • BBC MODULES
    • RUBRIQUES
    • LIENS

⇨ MENU ⇨ BIBLIOTHEQUE ⇨ treeview.bbc

FN_TVviewtree()

DESCRIPTION.


La fonction FN_TVviewtree() attend une action, provenant de la souris ou du clavier, sur l'arbre.




SYNTAXE.


kaction%% = FN_TVviewtree( arbre )




REMARQUES


arbre doit être l'identifiant de la variable qui a mémorisé la valeur retournée par la fonction FN_TVcreatetree().



La fonction FN_TVviewtree() est le coeur même du module treeview.bbc. L'appel de la fonction FN_TVviewtree() : 

- lance l’affichage, ou le affranchissement, de l’arbre ; 

- interrompt, bloque, le déroulement du programme et ;

- attend une action, provenant de la souris ou du clavier, sur l'arbre ;

- exécute les procédures et/ou fonctions du modules utiles pour la gestion de l'action ;

- retourne une valeur correspondante à l'action.



Rappel : de base, l'appel de la fonction FN_TVviewtree() ne retourne que deux valeurs : 1, si l'utilisateur choisi l'option Run again dans le menu ou 2, si l'utilisateur choisi l'option Quit dans le menu.




Connaitre l'identifiant de l'élément sélectionné.


Pour connaitre l'identifiant de l'élément qui a été sélectionné il faudra effectuer une modification dans le script du module.


1. Chargez le module treeview.bbc dans l'IDE du BBC BASIC.


2. Enregistrez le sous un autre nom, par exemple treeview2.bbc, de préférence dans le répertoire BBCBasic/lib de votre distribution. En général, il est déconseillé de modifier directement un fichier. Cette procédure vous permettra de toujours retrouver un script "propre" du fichier d'origine.


3. Placez vous dans la définition de la procédure PROC_TVmark(I%).


4. Recherchez la ligne : REM IF oldi%<>I% THEN param%%=data{(out%(I%))}.lparam%% : paramflag%=1


5. Supprimez l'instruction REM, afin que cette ligne soit prise en compte dans le processus du programme.


6. Enregistrez la modification, et fermez le fichier.


7. Remplacez treeview2.bbc, par le nom de votre fichier modifié, à la suite de l'instruction INSTALL dans votre script. Par exemple : INSTALL @lib$ + "treeview2.bbc", si vous avez enregistré votre fichier sous treeview2.bbc dans BBCBasic/lib.


8. Modifiez le traitement de la valeur retournée par la fonction FN_TVviewtree() après son appel.


Note : vous remarquerez rapidement, qu'un identifiant n'est retourné que s'il n'était pas déjà sélectionné dans l'arbre. Cliquer sur un élément déjà sélectionné ne retourne pas de nouvelle valeur. Seul un élément nouvellement sélectionné retournera un identifiant.



Rappel : une fonction FN_TVcreatetree() doit être appelé avant toute utilisation d'une procédure ou fonction du module treeview.bbc sur un arbre.  



La fonction FN_TVviewtree() est importée depuis le module treeview.bbc. 




EXEMPLE.


REM --- INITIALISATION GENERALE ---

INSTALL @lib$ + "treeview.bbc" : REM - importe les procedures et fonctions du modules dans le script

MODE 8 : REM - bascule la fenetre de sortie avec un mode graphique

VDU 26 : REM - restaure les paramettres de surfaces textuelle et graphique par défaut

VDU 23,23,10;0;0;0;0; : REM - optimisation du rendu des polices sous SDL

CLS : COLOUR 12 : COLOUR 142 : REM - modifie les couleurs de la surface textuelle

CLG : GCOL 12 : GCOL 142 : REM - modifie les couleurs de la surface graphique


REM --- Creation d'un arbre ---

TRV_Arbre%% = FN_TVcreatetree( @lib$ + "DejaVuSans" , 12 ) : REM - cree un nouvel arbre avec une police specifique

PROC_Elements( TRV_Arbre%% ) : REM - appel la procédure qui placera les elements dans l'arbre


REM --- Gestion des actions sur l'arbre ---

REPEAT : REM - debute un boucle pour la survaillance des actions sur l'arbre

kelement%% = FN_TVviewtree( TRV_Arbre%% ) : REM - attend une action sur l'arbre pour continuer le programme

VDU 4 : PRINT TAB( 0 , 20 ) "Identifiant : " ; kelement%% : REM - affiche la valeur retournee par FN_TVviewtree()

PRINT "Appuyez sur entree pour continuer ..." : kpause$ = GET$

PRINT TAB( 0 , 20 ) "En attente ..." + STRING$( 20 , " " ): PRINT STRING$( 70 , " " )

UNTIL kelement%% = 2 : REM - sort de la boucle de la surveillance de l'arbre


REM --- Fin du programme ---

CLS : CLG : REM - efface l'arbre

PRINT ' "Test du module treeview.bbc termine."

PRINT " Au revoir."

END




REM --- DEFINITIONS DES PROCEDURES PERSONNALISEES ---


DEF PROC_Elements( TRV_Arbre%% ) 

LOCAL klevel1%% , klevel2%% , klevel3%% 


klevel1%% = FN_TVinsertitem( TRV_Arbre%% , 0 , "Niveau 01", 10 )

klevel2%% = FN_TVinsertitem( TRV_Arbre%% , klevel1%% , "Niveau 01 A" , 1010 )

klevel2%% = FN_TVinsertitem( TRV_Arbre%% , klevel1%% , "Niveau 01 B" , 1020 )

klevel2%% = FN_TVinsertitem( TRV_Arbre%% , klevel1%% , "Niveau 01 C" , 1030 )

klevel3%% = FN_TVinsertitem( TRV_Arbre%% , klevel2%% , "Niveau 01 Ca" , 103010 )

klevel3%% = FN_TVinsertitem( TRV_Arbre%% , klevel2%% , "Niveau 01 Cb" , 103020 )

klevel3%% = FN_TVinsertitem( TRV_Arbre%% , klevel2%% , "Niveau 01 Cc" , 103030 )

klevel3%% = FN_TVinsertitem( TRV_Arbre%% , klevel2%% , "Niveau 01 Cd" , 103040 )

klevel2%% = FN_TVinsertitem( TRV_Arbre%% , klevel1%% , "Niveau 01 D" , 1040 )


klevel1%% = FN_TVinsertitem( TRV_Arbre%% , 0 , "Niveau 02" , 20 )

klevel2%% = FN_TVinsertitem( TRV_Arbre%% , klevel1%% , "Niveau 02 A" , 2010 )

klevel2%% = FN_TVinsertitem( TRV_Arbre%% , klevel1%% , "Niveau 02 B" , 2020 )


klevel1%% = FN_TVinsertitem( TRV_Arbre%% , 0 , "Niveau 03" , 30 )

klevel2%% = FN_TVinsertitem( TRV_Arbre%% , klevel1%% , "Niveau 03 A" , 3010 )

klevel2%% = FN_TVinsertitem( TRV_Arbre%% , klevel1%% , "Niveau 03 B" , 3020 )

klevel2%% = FN_TVinsertitem( TRV_Arbre%% , klevel1%% , "Niveau 03 C" , 3030 )

klevel2%% = FN_TVinsertitem( TRV_Arbre%% , klevel1%% , "Niveau 03 D" , 3040 )

klevel2%% = FN_TVinsertitem( TRV_Arbre%% , klevel1%% , "Niveau 03 E" , 3050 )

klevel2%% = FN_TVinsertitem( TRV_Arbre%% , klevel1%% , "Niveau 03 F" , 3060 )


ENDPROC

Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de

vos remarques, vos commentaires et de vos suggestions.

Dans la RETROGICIEL vous trouvez des suggestions simples et classiques pour

TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER

avec un exemple de résolution à télécharger pour vous inspirer.

Google Sites
Report abuse
Page details
Page updated
Google Sites
Report abuse