4D View v16

PV SET DRAG SIGNATURES

Accueil

 
4D View v16
PV SET DRAG SIGNATURES

PV SET DRAG SIGNATURES 


 

PV SET DRAG SIGNATURES ( zone ; tabSignatures ) 
Paramètre Type   Description
zone  Entier long in Zone 4D View
tabSignatures  Tableau chaîne in Tableau des signatures

La commande PV FIXER SIGNATURES GLISSER définit le contenu du tableau tabSignatures comme signatures de "glisser" pour la zone.

Les signatures sont des chaînes alphanumériques dont le contenu est libre. La longueur maximale d'une signature est de 32 caractères.

Ce sont les propriétés de la zone, définies au moyen de la commande PV FIXER PROPRIETE ZONE, qui permettent d'indiquer les possibilités d'une zone 4D View en matière de glisser-déposer :

Une fois le glisser-déposer autorisé, il pourra intervenir entre deux zones (qui peuvent être la même) à la seule condition qu'elles possèdent au moins une signature commune, de glisser pour la zone source et de déposer pour la zone cible.

L'événement de glisser ou de déposer sera, quant à lui, intercepté par la commande PV APPELER SUR EVENEMENT.

Exemple  

L'exemple ci-dessous fournit une illustration de glisser-déposer entre deux zones 4D View. Commençons par paramétrer les signatures et le comportement des zones, par exemple lors du chargement du formulaire :

 ARRAY TEXT($TabSignaturesGD;1)
 $TabSignaturesGD{1}:="Signature_1"
 
 PV SET AREA PROPERTY(ZoneSource;pv drag trigger;pv trigger on alt click`alt-clic pour glisser
 PV SET AREA PROPERTY(ZoneSource;pv drag allowed;pv DD multiple cells)
 PV ON EVENT(ZoneSource;pv on drag;"MéthodeGlisserDéposer")
 PV SET DRAG SIGNATURES(ZoneSource;$TabSignaturesGD)
 
 PV SET AREA PROPERTY(ZoneCible;pv drop allowed;pv DD single cell+
 pv DD adjacent cells+pv DD multiple cells)
 PV SET AREA PROPERTY(ZoneCible;pv drop mode;pv drop replace only)
 PV ON EVENT(ZoneCible;pv on drop;"MéthodeGlisserDéposer")
 PV SET DROP SIGNATURES(ZoneCible;$TabSignaturesGD`Mêmes signatures que glisser

La méthode projet MéthodeGlisserDéposer sera appelée lors d'un glisser avec alt-clic ou d'un déposer sur la zone cible :

 C_LONGINT($1`Référence de la zone 4D View
 C_LONGINT($2`Événement
 C_LONGINT($3`Code de la touche (modifier)
 C_LONGINT($4`Numéro de la colonne
 C_LONGINT($5`Numéro de la ligne
 C_LONGINT($6`Code ASCII de la touche
 
 C_POINTER(PtrZoneSource;PtrZoneCible`Pas de locales pour les conserver entre deux rétro-appels
 C_BLOB($blob`Presse-papiers temporaire du glisser-déposer
 C_LONGINT($colonneCourante;$ligneCourante`Coordonnées de la cellule courante
 C_LONGINT($colonneDest;$ligneDest`Coordonnées de la cellule visée par le déposer
 
 Case of
    :($2=pv on drag)
       PV GET DRAG SOURCE($1;PtrZoneSource) `D'où venons-nous ?
 
    :($2=pv on drop)
       PV GET DROP TARGET($1;PtrZoneCible) `Où allons-nous ?
 
       $blob:=PV Copy to blob(PtrZoneSource->) `Copie dans le presse papiers
       $colonneDest:=PV Get drop info(PtrZoneCible->;pv drop column`Coordonnées...
       $ligneDest:=PV Get drop info(PtrZoneCible->;pv drop row`...de destination
       PV GET CURRENT CELL(PtrZoneCible->;$colonneCourante;$ligneCourante)
       PV GOTO CELL(PtrZoneCible->;$colonneDest;$ligneDest`Collons à l'endroit désigné
       PV PASTE FROM BLOB(PtrZoneCible->;$blob;1;1;1;1)
  `Rétablissement de la cellule courante une fois l'opération réalisée
       PV GOTO CELL(PtrZoneCible->;$colonneCourante;$ligneCourante)
 End case



Voir aussi  

PV GET DRAG SIGNATURES
PV SET DROP SIGNATURES

 
PROPRIÉTÉS 

Produit : 4D View
Thème : PV Glisser déposer
Numéro : 15935

 
HISTORIQUE 

Créé : 4D View 6.8

 
UTILISATION DE L'ARTICLE

4D View - Langage ( 4D View v16)