OpenDialog ou OpenPictureDialog FileName Com o Caminho reduzido

Delphi

02/01/2017

Ola meu povo!

Eu to tentando pegar o nome da Imagem com a Propriedade FileName de uma TOpenPictureDialog só que em vez de vir o Caminho Completo vem reduzido
Ex:

 ImgLogo.Picture.LoadFromFile(opdParametros.FileName); // Dar erro!! 


O erro ocorre pelo motivo que (opdParametros.FileName) em vez de vir "C:\\Users\\NomeUser\\Pictures\\Nome_da_imagem.jpg" vem "Imagens\\Nome_da_imagem.jpg"
ai o Delphi não consegue achar a imagem

Eu estou utilizando Delphi 10.1 se tiver algum outro modo de fazer isso e alguém poder me ajudar...



procedure TfrmManutencaoParametros.opdParametrosSelectionChange(Sender: TObject);
var
  vDir : String;
begin
  // Muda a imagem no Quadro de imagens
  if opdParametros.FileName <> '' then
  begin
    inherited;
    vDir := ExtractFileName(opdParametros.FileName);
    vDir := ReverseString(vDir);
    delete(vDir, pos('.', vDir), length(vDir));
    vDir := ReverseString(vDir);
    if (vDir = 'gif') or (vDir = 'jpg') or (vDir = 'jpeg') or (vDir = 'bmp') or
       (vDir = 'GIF') or (vDir = 'JPG') or (vDir = 'JPEG') or (vDir = 'BMP') or
       (vDir = 'png') or (vDir = 'PNG')                                     then
    begin
      if (FileExists(Trim(DataModuleGeral.tbParametrosPASTA_BD.AsString + '\\Logo-Escritorio.'+vDir))) then
        DeleteFile(Trim(DataModuleGeral.tbParametrosPASTA_BD.AsString+'\\'+DataModuleGeral.tbParametrosIMAGEM_LOGO.AsString));

      // Se já tem arquivo definido, apresenta mensagem para usuário decidir se atualiza
      if (DataModuleGeral.tbParametrosIMAGEM_LOGO.AsString  ='') or
         (DataModuleGeral.tbParametrosIMAGEM_LOGO.AsString <>'') then
      begin
        DataModuleGeral.tbParametrosIMAGEM_LOGO.AsString := 'Logo-Escritorio.'+vDir;
        if not CopyFile(PChar(opdParametros.FileName), PChar(Trim(DataModuleGeral.tbParametrosPASTA_BD.AsString+'\\Logo-Escritorio.'+vDir)), False)  then
          ShowMessage('Atenção! Erro ao copiar o arquivo.')
        else
          ImgLogo.Picture.LoadFromFile(opdParametros.FileName);
      end;
    end
  end;
end;
Eduardo Silva

Eduardo Silva

Curtidas 0

Respostas

Raimundo Pereira

Raimundo Pereira

02/01/2017

Estou usando o XE7

OpenPictureDialog1.Execute();
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
GOSTEI 0
POSTAR