Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Renanbg

[Resolvido] Listar diretorio em dbedit

Recommended Posts

Olá pessoal

 

para listar um diretorio em um dbedit eu uso um componente chamado opendirectory e o codigo abaixo

 

if OpenDirectory1.Execute then
DBEdbanco.Text:=OpenDirectory1.DrivePath + '\*.*';

funciona bem, mas se o caminho que desejo listar ali é da rede não da certo, como por exemplo

 

\\servidor\c\pasta

vai aparecer apenas

 

\*.*

Alguma sugestão de fazer isso com componentes nativos do delphi ou qualquer outra forma?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu utilizo esta função para pegar caminhos mapeados da rede:

 

function RetornaEnderecoMapeado(endereco_arq:string):string;
var
  Caminho, Drive,local  : String;
  Tamanho : Cardinal;
begin
  Caminho:= ################################################################################
###############################;
  SetLength(Caminho,255);
  Tamanho:=255;
  local:=copy(endereco_arq,3,length(endereco_arq));

  drive:=copy(endereco_arq,1,2);
	if(drive[2]<>':')then
	begin
	   result:=endereco_arq;
	end
	else
	if WNetGetConnection(PChar(Drive),PChar(Caminho),Tamanho) = NO_ERROR then
	 begin
	  Result:=trim(copy(Caminho,1,pos(#0,caminho)))+local;
	 end
	 else
	  Result:=trim('\\'+GetIPAddress+'\'+ReplaceStr(':','$',Drive)+local);
end;

E na chamada eu faço assim:

 

Edit1.Text:=RetornaEnderecoMapeado('P:\Dados\teste.txt');

O que me retornaria algo do tipo:

 

\\pc1\Dados\teste.txt

Ps.: eu tenho os endereços de rede que uso mapeados na máquina.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade não é isso que procuro, pq ali pelo que vi você coloca ja na chamada o caminho

 

gostaria de algo semelhante a um opendialog, onde eu abri-se um diretorio e ele deixasse o caminho gravado no edit

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigos, resolvido

 

Deixo aqui a solução para caso mais alguem tenha essa duvida

 

uses FileCtrl;

 

procedure TForm1.Button1Click(Sender: TObject);
var
S: string;
begin
//Estilo Win 16
SelectDirectory(S, [sdAllowCreate, sdPerformCreate, sdPrompt],1);
Label1.Caption := S;
//Estilo Win 32
SelectDirectory('Selecionar Pasta','',S);
Label2.Caption := S;
end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.