Imagens com seu banco de dados, usando Lazarus em sistemas desktop

O objetivo desse post é, prover uma solução para usar imagens com seu banco de dados. A técnica usada será a mesma que eu uso com PHP + PostgreSQL que é a seguinte; O usuário do sistema aponta uma imagem da maquina local e de posse dessa informação “caminho + nome” da imagem é feito um upload da mesma para uma pasta no servidor web, dessa forma o banco de dados não fica enorme e você oferece mais esse recurso em seus sistemas.
Como nesse exemplo vou usar a maquina local, a ideia é copiar o arquivo de imagem para uma pasta específica onde o sistema está rodando.

  1. Crie uma pasta para salvar seu novo projeto, aproveite a oportunidade  e dentro dessa pasta crie uma outra pasta com o nome de imagens, para servir como “depósito” das imagens importadas;
  2. Usando a versão Lazarus 1.6.4 (Free Pascal)
  3. Crie um novo projeto e salve na pasta criada com o nome de “gerImagens” por exemplo;
  4. No formulário principal coloque um botão e um componente OpenPictureDialog;
  5. Troque o nome do botão para btnImportar, e coloque no evento clique do mesmo o seguinte código para testar se esta tudo ok.
    procedure Tprincipal.btnImportaClick(Sender: TObject);
    var arqCompleto : string;  : string;
    begin
         if OpenPictureDialog1.Execute then
            begin
              arqCompleto := OpenPictureDialog1.Filename;
              ShowMessage('Nome completo: ' + arqCompleto);
              ShowMessage('Nome:' + ExtractFileName(arqCompleto));
            end;
    end;
  6. Salve e teste, se estiver tudo certo ao escolher uma imagem qualquer do seu computador você verá o nome dessa imagem, com caminho completo, e mais uma caixa de texto apenas o nome da imagem e a sua extensão;
  7.  Vamos em frente; Inclua dois label no projeto, e coloque os nomes de lblOrigem e lblDestino;
  8. Altere o código do botão Importar para:
    procedure Tprincipal.btnImportaClick(Sender: TObject);
    var arqCompleto, arquivo, destino : string;
    
    begin
       if OpenPictureDialog1.Execute then
          begin
            arqCompleto := OpenPictureDialog1.Filename;
            arquivo     := ExtractFileName(arqCompleto);
            destino     := SysUtils.ExtractFilePath(ParamStr(0)) +'imagens\'+arquivo;
    
            lblOrigem.Caption:= 'Origem: '+ arqCompleto;
            lblDestino.Caption:= 'Destino: '+  destino;
    
            if not CopyFile(arqCompleto,destino, true) then  // true = mesmo se existir
              begin
                 ShowMessage('Erro ao copiar: '+ #13 + arqCompleto + #13+ 'para: ' +#13+ destino);
              end;
    
          end
    
    end;

    importar

  9. Você deve ter uma imagem mais ou menos como essa, e pesquisando na pasta imagens que nós criamos no início do projeto, deve estar lá, uma cópia de todas as imagens importadas.

Conclusão:  Com esses dados, origem, destino, nome do arquivo, já podemos armazenar no nosso SGBD preferido o caminho para as imagens e assim disponibilizar mais esse recurso em nossos sistemas desktop.

Sobre Carlos Susviela

Programador (Desktop / web) WebDeveloper (Sistemas e páginas internet) Técnico Informática / Criptomoedas http://www.PowerInformatica.com.br --------------------------- Torcedor: S.C. Internacional / RS / Brasil
Esse post foi publicado em Banco de Dados, Computadores e a Internet, Programação, Programação Lazarus e marcado , , , , . Guardar link permanente.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s