[Ajuda] Como salvar só o nome da Imagem

Delphi

08/11/2013

Olá amigos,

Tenho um campo DBEdit para salvar o caminho das imagens que vou utilizar no meu projeto.
Gostaria de abreviar os nomes e mostrar somente o nome da imagem e extensão.
Por exemplo: Vamos supor que a imagem esteja em:
C:\Projeto\Itens\Imagens\Carimbo.png

Gostaria de mostrar no DBEdit apenas o nome da imagem e a extensão: Carimbo.png

Alguém sabe como posso fazer isto?

Uso Delphi XE4
Banco FireBird
Ligação com Interbase
Form - Contendo:
Três campos (Codigo, Nome e Imagem),
Componentes: (um Image, Um DBNavigator, um Button e um OpenpictureDialog).

DataModule Contendo:
(IBDtaBase, IBTable, IBTable_Cod, IBTransaction e um DataSource)

Segue abaixo o código completo para vocês poderem ver:
unit Utabtit; 

interface 

uses 
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, Vcl.Mask, 
  Vcl.DBCtrls, Vcl.ExtDlgs, db, jpeg, acPNG; 

type 
  TForm1 = class(TForm) 
    Image1: TImage; 
    GroupBox1: TGroupBox; 
    DBEdit1: TDBEdit; 
    DBEdit2: TDBEdit; 
    DBEdit3: TDBEdit; 
    Label1: TLabel; 
    Label2: TLabel; 
    Label3: TLabel; 
    Button1: TButton; 
    OpenPictureDialog1: TOpenPictureDialog; 
    DBNavigator1: TDBNavigator; 
    procedure Button1Click(Sender: TObject); 
    procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn); 
    procedure FormShow(Sender: TObject); 
  private 
    { Private declarations } 
  public 
    { Public declarations } 
  end; 

var 
  Form1: TForm1; 

implementation 

{$R *.dfm} 

uses UDaMo; 

procedure TForm1.Button1Click(Sender: TObject); 
Begin 
If OpenPictureDialog1.Execute then 
Begin 
Image1.Picture.LoadFromFile(openpicturedialog1.FileName); 
DataModule2.IBTable1.edit; 
DataModule2.IBTable1TTI_IMGITENS.value:=(openpicturedialog1.FileName); 
End; 
End; 

procedure TForm1.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn); 
var 
ultcod:integer; 
Begin 
if DataModule2.DataSource1.state in [dsInsert] then 
Begin 
DataModule2.IBTable_Cod.Open; 
DataModule2.IBTable_Cod.last; 
ultcod:=DataModule2.IBTable_CodTTI_CODIGO.value+1; 
DataModule2.IBTable1TTI_CODIGO.value:=ultcod; 
DataModule2.IBTable_Cod.close; 
DBEdit2.SetFocus; 
DataModule2.IBTable1TTI_ImgItens.value:=''; 
Image1.PICTURE.ASSIGN(NIL); 
end 
else 
Image1.picture.loadfromfile (datamodule2.IBTable1TTI_IMGITENS.Value); 

end; 


procedure TForm1.FormShow(Sender: TObject); 
begin 
datamodule2.IBTable1.open; 
Image1.picture.loadfromfile (datamodule2.IBTable1TTI_IMGItens.Value); 
end; 

end.


Um abraço a todos e Muito obrigado!
Jore Maximus

Jore Maximus

Curtidas 0

Respostas

Marcos Oliveira

Marcos Oliveira

08/11/2013

Bom dia!

Use o comando ExtractFileName('Caminho Completo do arquivo') que ela irá te retornar somente o nome do arquivo.

Att,

Marcos
GOSTEI 0
Jore Maximus

Jore Maximus

08/11/2013

Olá Marcos é assim?

DataModule1.IBTab_TesteTE_IMGITENS.value:=ExtractFileName(openpicturedialog1.FileName);

Pois este esta dando erro!
Cannot Open File "C:\Teste\Win32\Debug\1.png". O sistema não pode encontrar o arquivo especificado.

Um abraço!
GOSTEI 0
POSTAR