Saltar para o conteúdo principal
Versão: Próximo

SET PICTURE TO LIBRARY

SET PICTURE TO LIBRARY ( imagem ; refImag ; nomeImagem )

ParâmetroTipoDescrição
imagemPictureNova Imagem
refImagIntegerNúmero de referência da Biblioteca de Imagens
nomeImagemTextNovo nome da imagem

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

Descrição

O comando SET PICTURE TO LIBRARY cria uma nova imagem ou substitui uma imagem existente na biblioteca de imagens.

Antes de chamar o comando, você passa:

  • o número de referência da imagem em refImag (entre 1 e 32767 )
  • a imagem mesma em imagem.
  • o nome da imagem em nomeImagem (longitude máxima: 255 caracteres).

Se houver uma imagem na biblioteca de imagens com o mesmo número de referência, seu conteúdo será substituído e a imagem é renomeado com os valores passados em imagem e nomeImagem.

Se não houver uma imagem na biblioteca de imagens com o número de referência passado em refImag, uma nova imagem se adiciona a biblioteca de imagens.

4D Server: SET PICTURE TO LIBRARY não pode ser utilizado dentro de um método executado na máquina servidor (procedimento armazenado ou trigger). Se chama SET PICTURE TO LIBRARY em uma máquina servidor, não acontece nada, a chamada é ignorada.

Advertência: os objetos de estrutura (elementos de listas hierárquicas, linhas de menu, etc.) podem ser referidas a uma imagem da biblioteca de imagens. Seja prudente quando modifique por programação uma imagem da biblioteca de imagens.

Nota: se passa uma imagem vazia em imagem ou um valor negativo ou nulo em refImag, o comando não faz nada.

Exemplo 1

Sem importar o conteúdo atual da biblioteca de imagens, o exemplo a seguir adiciona uma nova imagem à biblioteca buscando primeiro um número de referência de uma imagem única:

 PICTURE LIBRARY LIST($alRefImag;$asNomsImag)
 Repeat
    $vlRefImag:=1+Abs(Random)
 Until(Find in array($alRefImag;$vlRefImag)<0)
 SET PICTURE TO LIBRARY(vgImagem;$vlRefImag;"Nova Imagem")

Exemplo 2

O exemplo a seguir importa na biblioteca de imagens as imagens (armazenadas em um documento em disco) criadas pelo terceiro exemplo do comando PICTURE LIBRARY LIST:

 SET CHANNEL(10;"")
 If(OK=1)
    RECEIVE VARIABLE($vsTag)
    If($vsTag="4DV6PICTURELIBRARYEXPORT")
       RECEIVE VARIABLE($vlNbImagens)
       If($vlNbImagens>0)
          For($vlImag;1;$vlNbImagens)
             RECEIVE VARIABLE($vlPicRef)
             If(OK=1)
                RECEIVE VARIABLE($vsNomImag)
             End if
             If(OK=1)
                RECEIVE VARIABLE($vgImag)
             End if
             If(OK=1)
                SET PICTURE TO LIBRARY($vgImag;$vlRefImag;$vsNomImag)
             Else
                $vlImag:=$vlNbImagens+1
                ALERT("Este arquivo parece estar danificado.")
             End if
          End for
       Else
          ALERT("Este arquivo parece estar danificado.")
       End if
    Else
       ALERT("O arquivo “"+Document+"” não é um arquivo de exportação da biblioteca de imagens.")
    End if
    SET CHANNEL(11)
 End if

Gestão de erros

Se não houver suficiente memória para adicionar a imagem à biblioteca de imagens, se gera um erro -108. Note que os erros E/S também podem ser gerados (se por exemplo o arquivo de estrutura está bloqueado). Pode interceptar estes erros com um método de gestão de erros.

Ver também

GET PICTURE FROM LIBRARY
PICTURE LIBRARY LIST
REMOVE PICTURE FROM LIBRARY