Fórum ListBox listar nome do arquivo, ocultar diretório #623829

13/11/2025

0

O que estou tentando fazer é selecionar multiplos arquivos, mas listar apenas o nome deles(sem o patch) em uma listbox.
O código abaixo faz isso, porém eu precisaria armazenar também o Patch do arquivo, para posteriormente usar ele numa outra rotina

var
  I: Integer;
begin
  if OpenDialog1.Execute then
  begin
    for I := 0 to OpenDialog1.Files.Count - 1 do
    begin
      // Adiciona (caminho + nome) ao ListBox
      ListBox1.Items.Add(OpenDialog1.Files[I]);

      // Adiciona apenas o nome do arquivo sem o caminho
      ListBox1.Items.Add(ExtractFileName(OpenDialog1.Files[I]));
    end;
  end;
end;
Renan

Renan

Responder

Posts

13/11/2025

Arthur Heinrich

O componente TListBox possui um evento OnDrawItem.

Este evento permite que você desenhe o item, ao invés de deixar que o componente faça isso automaticamente.

Desta forma, você pode adicionar o caminho completo até o arquivo, mas, no evento, ao desenhar o item, você pode extrair apenas o nome do arquivo e utilizá-lo para exibição.

Caso um item seja selecionado, embora esteja exibindo apenas o nome, o texto do item selecionado será o nome completo, com (drive+path+filename+extension), caso você o adicione desta forma.
Responder

Gostei + 0

14/11/2025

Renan

Entendi.
Vi que eu posso também armazenar o patch num objeto.

Fiz dessa forma, porém na hora de recuperar o patch, preciso tomar cuidado para que o listbox esteja selecionado ao executar o FOR, do contrario gera erro de List Index is Out Of Bonds

A principio, tudo funcionando bem
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar