Dialog p/ capturar diretorio

Delphi

04/07/2003

Dialog p/ capturar diretorio

Alguem sabe :

1) Como fazer o OpenDialog p/ capturar um diretorio , nao arquivo ?

2) Algum Dialog pronto que faça isto ?


Motta

Motta

Curtidas 1

Melhor post

Thaisandrade

Thaisandrade

04/07/2003

Pode usar a função SelectDirectory (uses FileCtrl).

procedure TForm1.Button1Click(Sender: TObject);
var
Dir: string;
begin
Dir := ´C:\TESTE´;
if SelectDirectory(Dir, [sdAllowCreate, sdPerformCreate, sdPrompt],SELDIRHELP) then
Label1.Caption := Dir;
end;


GOSTEI 2

Mais Respostas

Alexandremarcondes

Alexandremarcondes

04/07/2003

Os componentes do delphi-jedi (JCL / JVCL) têm dois diálogos que podem ser úteis para você, prontos, se você não precisar de CLX.

[url]http://www.delphi-jedi.org[/url]

Espero que te ajude ...


GOSTEI 1
Motta

Motta

04/07/2003

Baixei a Jedi, mas não instalei, o meu download já deve até estar caduco !!

Grato !!


GOSTEI 1
Weber

Weber

04/07/2003

Ressuscitando este tópico venho aqui com a mesma dúvida, como fazer um OpenDialog selecionar apenas um diretório quando se clicar em abrir em sua janela.

A rotina indicada por Motta até funciona, mas a janela que se abre é muito “feia”.
Não estou querendo usar componentes de terceiros (Jed, Rx, etc).

Alguém tem alguma idéia de como posso fazer para que seja possível um OpenDialog comum selecionar diretórios?


GOSTEI 1
Motta

Motta

04/07/2003

Eu fiz uma , mas a tela é realmente mais feia que capotagem de caminhão de lixo, mas como era um troço muito isolado me serviu na época (depois nunca mais usei).

A pouca vantagem e que usa TDriveComboBox e TDirectoryListBox 2 comp. padrões (Win 3.1 !!)

{Dialog para capturar diretório
 Chame DialogDir}
unit objDialogDir;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, FileCtrl, Buttons;

type
  TfrmDialogDir = class(TForm)
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    btnOK: TBitBtn;
    btnCancela: TBitBtn;
    DriveComboBox: TDriveComboBox;
    DirectoryListBox: TDirectoryListBox;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

function DialogDir(Title : string = ´Escolha o diretório´;InitialDir : string = ´c:´):string;

var
  frmDialogDir: TfrmDialogDir;

implementation

{$R *.DFM}

function DialogDir(Title : string = ´Escolha o diretório´;InitialDir : string = ´c:´):string;
begin
  Result := ´´;
  with TfrmDialogDir.Create(nil) do
  try
    DirectoryListBox.Directory := InitialDir;
    Caption := Title;
    ShowModal;
    if ModalResult = mrOk then
      Result := DirectoryListBox.Directory;
  finally
    Free;
  end;
end;

end.



GOSTEI 1
Weber

Weber

04/07/2003

Valeu Motta.
Acho que a saida vai ser criar a minha própria tela OpenDialog


GOSTEI 1
Marcio.theis

Marcio.theis

04/07/2003

Eu utilizo um componente chamado OpenDirectory, que pode ser baixado através deste [url=http://www.datastead.net/opendir/index.htm]Site[/url].


GOSTEI 1
Weber

Weber

04/07/2003

Valeu /]/]@t, mas não posso utilizar componentes de terceiros somente posso utilizar componentes nativos do delphi.


GOSTEI 1
Massuda

Massuda

04/07/2003

Não sei se vai agradar esteticamente, mas experimente dar uma olhada na função [url=http://www.delphibasics.co.uk/RTL.asp?Name=SelectDirectory]SelectDirectory[/url] da unit FileCtrl.


GOSTEI 1
Weber

Weber

04/07/2003

Resolvi (pelo menos temporariamente) meu problema. Fiz meu proprio OpenDialog.

Eu estava precisando de um OpenDialog que fosse possivel selecionar tanto pastas quanto arquivos e até mesmo multselect de pastas e arquivos.
O que eu fiz foi somente um form com ShellList e ShellCombo mas ja resolveu meu problema.


GOSTEI 1
Motta

Motta

04/07/2003

Não sei se vai agradar esteticamente, mas experimente dar uma olhada na função [url=http://www.delphibasics.co.uk/RTL.asp?Name=SelectDirectory]SelectDirectory[/url] da unit FileCtrl.


Putz , quem não sabe pesquisar help se lasca, por não saber achar a function SelectDirectory, fiz um form à tóa...


GOSTEI 1
Andrew Vargas

Andrew Vargas

04/07/2003

Declare uses FileCtrl.
Implemente isso no Clicar do botão:

var
selDir : string;
begin
SelectDirectory('Selecione uma pasta', 'C:\', selDir);
end;

Para colocar o diretório em um Edit, basta criá-lo e implementar também no botão a seguinte linha:
Edit1.Text:= selDir

Eu também demorei um monte pra achar uma função como esse que não tivesse um visual feio
GOSTEI 2
Alex

Alex

04/07/2003

Funciona!!!
GOSTEI 1
Bernelio

Bernelio

04/07/2003

pessoal, utilizem este comando abaixo, funciona e fica bem melhor na apresentação!

shellexecute(0, nil, pchar( 'c:\sistema\boleto\' ), nil, nil, SW_SHOWNORMAL);

abs
Bernélio
GOSTEI 0
Romeu Sebastiao

Romeu Sebastiao

04/07/2003

ExtractFilePath(OpenDlg1.FileName);
Simples assim.
GOSTEI 1
POSTAR