Téléchargement des produits


Version anglaise


 

Voici un exemple de code source permettant de transférer des informations entre deux listes, OBJ_SOURCE et OBJ_CIBLE. COL1 et COL2 sont des colonnes d'OBJ_SOURCE, COL3 appartient à OBJ_CIBLE.

La gestion de trois événements est nécessaire :

 

/* Variables utilisées

num_bin_4 CodeRetour

num_bin_4 ActionFaite

bool FormatDispo

num_bin_4 NbDonnees

num_bin_4 Indice

 

OBJ_SOURCE:GD_DebutGlissement

/* on autorise le glisser-déposer avec le bouton gauche (par exemple)

si obj_source:gd_etat_souris = _GD_BTN_GAUCHE

/* on vide les données temporaires (par précaution)

appeler_methode obj_source gd_vider_donnees CodeRetour

 

/* on fixe les données à transférer

lecture_lst obj_source:liste *select

appeler_methode obj_source gd_ecrire_donnees col1: 1 CodeRetour

appeler_methode obj_source gd_ecrire_donnees col2: 1 CodeRetour

fin_lecture_lst

 

/* on démarre le mécanisme de glisser-déposer, en autorisant une copie

/* et un déplacement des données

appeler_methode obj_source gd_executer_glissement 'MonFormat'  -

_GD_ACTION_COPIE_DEPLACE ActionFaite CodeRetour

 

/* si l'utilisateur a choisi un déplacement, on supprime les données

/* dans l'objet source

si ActionFaite = _GD_ACTION_DEPLACEMENT

lecture_lst obj_source:liste *select

supprimer_elt obj_source:liste

fin_lecture_lst

fin

fin

 

OBJ_CIBLE:GD_SurvolGlissement

/* sur cet événement, on doit indiquer quelle serait l'action effectuée

/* si l'utilisateur relâchait la souris, à travers la propriété

/* gd_action_depose

 

/* initialisation par défaut

obj_cible:gd_action_depose = _GD_ACTION_AUCUNE

 

/* on teste si le format des données est géré par la cible

appeler_methode obj_cible gd_donnees_disponibles 'MonFormat' FormatDispo CodeRetour

si FormatDispo

/* on prend en compte les actions permises par la source

choix_selon obj_cible:gd_actions_permises

si_valeur _GD_ACTION_COPIE _GD_ACTION_DEPLACEMENT

 /* l'utilisateur n'a pas le choix

obj_cible:gd_action_depose = obj_cible:gd_actions_permises

si_valeur _GD_ACTION_COPIE_DEPLACE

/* on prend en compte l'état des touches avec la convention classique :

/* si Ctrl appuyé, l'utilisateur veut une copie des données, sinon il veut

/* un déplacement

si obj_cible:gd_etat_clavier = _GD_TOUCHE_CTRL

 obj_cible:gd_action_depose = _GD_ACTION_COPIE

sinon

 obj_cible:gd_action_depose = _GD_ACTION_DEPLACEMENT

fin

fin_choix_selon

fin

 

OBJ_CIBLE:GD_Depose

/* Lecture et traitement des données transférées

NbDonnees = 1

Indice = 1

appeler_methode obj_cible gd_lire_donnees 'MonFormat' col3: Indice NbDonnees CodeRetour

tant_que NbDonnees > 0

inserer_elt obj_cible:liste

Indice = Indice + 1

appeler_methode obj_cible gd_lire_donnees 'MonFormat' col3: Indice NbDonnees CodeRetour

Refaire

 

Retour

↑ Haut de page


  • Aucune étiquette