version 6.0
ECRIRE PROPRIETES RESSOURCE (resType; resNum; resAttr{; resFichier})
Paramètre | Type | Description | |
resType | Alpha | Type de ressource (4 caractères) | |
resNum | Numérique | Numéro de référence de ressource (ID) | |
resAttr | Numérique | Nouveaux attributs de la ressource | |
resFichier | RefDoc | Numéro de référence du fichier de ressource ou | |
Tous les fichiers de ressources ouverts si omis |
Description
ECRIRE PROPRIETES RESSOURCE modifie les attributs de la ressource dont le type est passé dans le paramètre resType et le numéro de référence dans resNum.
Si vous ne passez pas le paramètre resFichier, la ressource est recherchée dans les fichiers de ressources ouverts. Si vous passez un numéro de référence de fichier de ressource dans le paramètre resFichier, la ressource n'est recherchée que dans ce fichier.
Si la ressource n'existe pas, ECRIRE PROPRIETES RESSOURCE ne fait rien et la variable OK prend la valeur 0 (zéro).
La valeur numérique passée dans resAttr doit être considérée comme une valeur binaire dont chaque bit a une signification particulière. Les constantes ci-dessous sont fournies par 4D :
Constante | Type | Valeur |
Masque ressource heap système | Entier long | 64 |
Bit ressource heap système | Entier long | 6 |
Masque ressource purgeable | Entier long | 32 |
Bit ressource purgeable | Entier long | 5 |
Masque ressource verrouillée | Entier long | 16 |
Bit ressource verrouillée | Entier long | 4 |
Masque ressource protégée | Entier long | 8 |
Bit ressource protégée | Entier long | 3 |
Masque ressource préchargée | Entier long | 4 |
Bit ressource préchargée | Entier long | 2 |
Masque ressource modifiée | Entier long | 2 |
Bit ressource modifiée | Entier long | 1 |
A l'aide de ces constantes, vous pouvez définir la valeur d'attributs de ressources que vous voulez. Référez-vous aux exemples proposés à la fin de cette section.
Les attributs de ressources et leurs effets sont décrits ci-dessous :
Heap système
Si cet attribut est utilisé, la ressource sera chargée dans la mémoire système au lieu de la mémoire de 4D. Vous ne devez pas utiliser cet attribut, sauf si vous êtes absolument sûr de savoir très exactement ce que vous faites.
Purgeable
Lorsque cet attribut est utilisé, la ressource chargée peut à tout moment être purgée (c'est-à-dire supprimée) de la mémoire si de la place mémoire est nécessaire pour l'allocation d'autres données. Comme de toute manière vous chargez des ressources dans des BLOBs 4D, nous vous conseillons de rendre purgeables toutes vos propres ressources afin d'optimiser l'utilisation de la mémoire. Notez cependant que si une ressource est fréquemment appelée lors d'une session de travail, il peut être intéressant de la rendre non purgeable afin de réduire les accès disque dûs au rechargement de la ressource purgée.
Verrouillée
Si cet attribut est utilisé, la ressource ne peut pas être déplacée lorsqu'elle est chargée en mémoire. Une ressource verrouillée ne peut pas être purgée même si elle est purgeable. Le verrouillage d'une ressource a l'effet indésirable de fragmenter la mémoire. Vous ne devez pas utiliser cet attribut, sauf si vous êtes absolument sûr de savoir très exactement ce que vous faites.
Protégée
Si cet attribut est utilisé, vous ne pouvez plus modifier le nom, le numéro de référence (ID) ou le contenu de la ressource. Il n'est également plus possible de supprimer cette ressource. Vous pouvez toutefois appeler la commande ECRIRE PROPRIETES RESSOURCE pour supprimer cet attribut, puis modifier ou supprimer la ressource. La plupart du temps, vous n'aurez pas à utiliser cet attribut.
Note : Cet attribut est sans effet sous Windows.
Préchargée
Si cet attribut est utilisé, la ressource est automatiquement chargée en mémoire et le fichier dans lequel elle se trouve est ouvert. Cet attribut est utile pour optimiser le chargement des ressources lors de l'ouverture d'un fichier de ressources. Cependant, la plupart du temps, vous n'aurez pas besoin de cet attribut.
Modifiée
Si cet attribut est utilisé, la ressource reçoit une marque signifiant "doit être sauvegardée sur disque" lorsque le fichier de ressources dans lequel elle se trouve est refermé. Comme la commande de 4D ECRIRE RESSOURCE gère en interne l'écriture et la ré-écriture des ressources, vous ne devez pas utiliser cet attribut, sauf si vous êtes absolument sûr de savoir très exactement ce que vous faites.
En résumé, à moins d'être certain de savoir ce que vous faites, vous n'utiliserez généralement que l'attribut purgeable, et peut-être plus rarement les attributs préchargée et protégée.
ATTENTION : Il est déconseillé de modifier les noms des ressources appartenant à 4D ou aux fichiers système. Cette opération peut provoquer des erreurs systèmes.
Exemples
(1) Référez-vous à l'exemple de la fonction Lire nom ressource.
(2) L'exemple suivant rend la ressource 'STR#' ID=17000 purgeable et laisse les autres attributs inchangés :
$vlAttrRes:=Lire proprietes ressource ('STR#';17000;$vhFichierRes) ECRIRE PROPRIETES RESSOURCE('STR#';17000;$vlAttrRes ?+ Bit ressource purgeable;$vhMonFichRes)
(3) L'exemple suivant rend la ressource 'STR#' ID=17000 préchargée et non-purgeable :
ECRIRE PROPRIETES RESSOURCE('STR#';17000;Masque ressource préchargée;$vhFichierRes)
(4) L'exemple suivant rend la ressource 'STR#' ID=17000 préchargée, mais purgeable:
ECRIRE PROPRIETES RESSOURCE('STR#';17000;Masque ressource préchargée+Masque ressource purgeable;$vhFichierRes)
Référence
Variables et ensembles système
La variable système OK prend la valeur 0 si la ressource n'existe pas, sinon elle prend la valeur 1.