Saltar para o conteúdo principal
Versão: 20 R7 BETA

RESOURCE LIST

RESOURCE LIST ( resTipo ; resNum ; resNomes {; resArquivo} )

ParâmetroTipoDescrição
resTipoTextTipo de resource de 4 caracteres
resNumInteger arrayNº de resources para recursos desse tipo
resNomesText arrayNomes de resouces para recursos desse tipo
resArquivoTimeNúmero de referência do arquivo Resource, ou todos os arquivos de referência abertos, se omitido

Esse comando não é seguro para thread e não pode ser usado em código adequado.

Descrição

O comando RESOURCE LIST preenche os arrays resNum e resNomes com os números e os nomes dos recursos cujo tipo se passa em resTipo.

Importante: deve passar uma cadeia de 4 caracteres em resTipo.

Se passa um número de referência de arquivo de recursos válido no parâmetro opcional resArquivo, apenas os recursos presentes nesse arquivo são listados. Se não passa resArquivo, todos os recursos dos arquivos de recursos abertos são listados.

Se pré-declara os arrays antes de chamar a RESOURCE LIST, deve pré-declarar resNum como um array de tipo Inteiro longo e resNomes como um array de tipo Alfa ou Texto. Se não pré-declara os arrays, o comando cria resNum como um array de tipo Inteiro longo e resNomes como um array de tipo Texto.

Depois da chamada, pode testar o número de recursos encontrados aplicando o comando Size of Array ao array resNum ou resNomes.

Exemplo 1

O exemplo a seguir preenche os arrays $alResNum e $atResNom com os números e os nomes de recursos de tipo lista de cadeias presentes no arquivo de estrutura do banco:

 If(On Windows)
    $vhEstruturaResArquivo:=Open resource file(Replace string(Structure file;".4DB";".RSR"))
 Else
    $vhEstruturaResArquivo:=Open resource file(Structure file)
 End if
 If(OK=1)
    RESOURCE LIST("STR#";$alResNum;$atResNom;$vhEstruturaResArquivo)
 End if

Exemplo 2

O exemplo a seguir copia os recursos imagem presentes em todos os arquivos de recursos abertos na biblioteca de imagens do banco:

 RESOURCE LIST("PICT";$alResNum;$atResNom)
 Open window(50;50;550;120;5;"Cópia dos recursos PICT...")
 For($vlElem;1;Size of array($alResNum))
    GET PICTURE RESOURCE($alResNum{$vlElem};$vgImagem)
    If(OK=1)
       $vsNome:=$atResNom{$vlElem}
       If($vsNome="")
          $vsNome:="PICT resNum="+Cadeia($alResNum{$vlElem})
       End if
       ERASE WINDOW
       GOTO XY(2;1)
       MESSAGE("Adiciona a imagem “"+$vsNome+"”à biblioteca de imagens do banco.")
       SET PICTURE TO LIBRARY($vgImagem;$alResNum{$vlElem};$vsNome)
    End if
 End for
 CLOSE WINDOW

Ver também

RESOURCE TYPE LIST