RESOURCE LIST
RESOURCE LIST ( resType ; resNums ; resNoms {; resFichier} )
Paramètre | Type | Description | |
---|---|---|---|
resType | Text | → | Type de ressource (4 caractères) |
resNums | Integer array | ← | Numéros des ressources de ce type |
resNoms | Text array | ← | Noms des ressources de ce type |
resFichier | Time | → | Numéro de référence de fichier de ressources ou tous les fichiers de ressources ouverts si ce paramètre est omis |
Cette commande n'est pas thread-safe, elle ne peut pas être utilisée dans du code préemptif.
Description
La commande RESOURCE LIST remplit les tableaux resNums et resNoms avec les numéros et les noms des ressources dont vous avez passé le type dans resType.
Important : Vous devez passez dans resType une chaîne de 4 caractères.
Si vous passez un numéro de référence de fichier de ressources valide dans le paramètre optionnel resFichier, seules les ressources présentes dans ce fichier seront listées. Si vous ne passez pas le paramètre resFichier, toutes les ressources de tous les fichiers de ressources ouverts seront listées.
Si vous ne pré-déclarez pas les tableaux resNums et resNoms avant d'appeler RESOURCE LIST, la commande créera par défaut le tableau resNums avec le type Entier long et resNoms avec le type Texte. Si vous pré-déclarez les tableaux, vous devez attribuer le type Entier long à resNums, mais pouvez attribuer le type Alpha ou Texte à resNoms.
Après l'appel, vous pouvez tester le nombre de ressources qui ont été trouvées en appliquant la commande Size of array au tableau resNums ou resNoms.
Exemple 1
L'exemple suivant remplit les tableaux $alResNum et $atResNom avec les numéros et les noms des ressources de type Listes de chaînes présentes dans le fichier de structure de la base :
If(Sous Windows)
$vhStructureResFile:=Open resource file(Replace string(Structure file;".4DB";".RSR"))
Else
$vhStructureResFile:=Open resource file(Structure file)
End if
If(OK=1)
RESOURCE LIST("STR#";$alResNum;$atResNom;$vhStructureResFile)
End if
Exemple 2
L'exemple suivant copie dans la bibliothèque d'images de la base les ressources image présentes dans tous les fichiers de ressources ouverts :
RESOURCE LIST("PICT";$alResNum;$atResNom)
Open window(50;50;550;120;5;"Copie des ressources PICT...")
For($vlElem;1;Size of array($alResNum))
GET PICTURE RESOURCE($alResNum{$vlElem};$vgImage)
If(OK=1)
$vsNom:=$atResNom{$vlElem}
If($vsNom="")
$vsNom:="PICT resID="+String($alResNum{$vlElem})
End if
ERASE WINDOW
GOTO XY(2;1)
MESSAGE("Ajout de l'image “"+$vsNom+"” à la bibliothèque d'images de la base.")
SET PICTURE TO LIBRARY($vgImage;$alResNum{$vlElem};$vsNom)
End if
End for
CLOSE WINDOW