Como usar o Delphi para criar um Windows Explorer personalizado

click fraud protection

O Windows Explorer é o que você usa no sistema operacional Windows para procurar arquivos e pastas. Você pode criar uma estrutura semelhante com o Delphi para que o mesmo conteúdo seja preenchido na interface do usuário do seu programa.

Caixas de diálogo comuns são usadas no Delphi para abra e salve um arquivo em um aplicativo. Se você quiser usar gerenciadores de arquivos personalizados e caixas de diálogo de navegação em diretório, precisará lidar com os componentes Delphi do sistema de arquivos.

O grupo de paletas VCL do Windows 3.1 inclui vários componentes que permitem criar sua própria caixa de diálogo personalizada "Abrir arquivo" ou "Salvar arquivo": TFileListBox, TDirectoryListBox, TDriveComboBoxe TFilterComboBox.

Navegando em arquivos

Os componentes do sistema de arquivos permitem selecionar uma unidade, ver a estrutura hierárquica de diretórios de um disco e ver os nomes dos arquivos em um determinado diretório. Todos os componentes do sistema de arquivos foram projetados para trabalhar juntos.

instagram viewer

Por exemplo, seu código verifica o que o usuário fez para, por exemplo, um DriveComboBox e passa essas informações para um DirectoryListBox. As alterações no DirectoryListBox são então passadas para um FileListBox no qual o usuário pode selecionar os arquivos necessários.

Criando o formulário de caixa de diálogo

Começar de novo Aplicação Delphi e selecione a guia Win 3.1 do Paleta de componentes. Em seguida, faça o seguinte:

  • Coloque um componente TFileListBox, TDirectoryListBox, TDriveComboBox e TFilterComboBox em um formulário, mantendo todos os seus nomes padrão
  • Adicione um TEdit (chamado "FileNameEdit") e um TLabel (chame de "DirLabel").
  • Inclua alguns rótulos com legendas, como "Nome do arquivo", "Diretório", "Listar arquivos do tipo" e "Unidades".

Para mostrar o caminho atualmente selecionado como uma seqüência de caracteres em uma legenda de componentes DirLabel, atribua o nome do Label às propriedades DirectoryListBox Propriedade DirLabel.

Se você deseja exibir o nome do arquivo selecionado em um EditBox (FileNameEdit), é necessário atribuir o Nome do objeto Editar (FileNameEdit) ao arquivo FileListBox. Propriedade FileEdit.

Mais linhas de código

Quando você possui todos os componentes do sistema de arquivos no formulário, basta definir o DirectoryListBox. Propriedade da unidade e o FileListBox. Propriedade de diretório para que os componentes se comuniquem e mostrem o que o usuário deseja ver.

Por exemplo, quando o usuário seleciona uma nova unidade, o Delphi ativa o DriveComboBox OnChange manipulador de eventos. Faça com que fique assim:

 procedimento TForm1.DriveComboBox1Change (Sender: TObject);
beginDirectoryListBox1.Drive: = DriveComboBox1.Drive;
fim;

Este código altera a exibição no DirectoryListBox ativando sua Em mudança Manipulador de eventos:

 procedimento TForm1.DirectoryListBox1Change (Sender: TObject);
beginFileListBox1.Directory: = DirectoryListBox1.Directory;
fim;

Para ver qual arquivo o usuário selecionou, você precisa usar o OnDblClick evento do FileListBox:

 procedimento TForm1.FileListBox1DblClick (Sender: TObject);
beginShowmessage ('Selected:' + FileListBox1.FileName);
fim;

Lembre-se de que a convenção do Windows é dar um clique duplo para escolher o arquivo, não um único clique. Isso é importante quando você trabalha com um FileListBox, porque usar uma tecla de seta para percorrer um FileListBox chamaria qualquer manipulador OnClick que você escreveu.

Filtrando a exibição

Use um FilterComboBox para controlar o tipo de arquivos que são exibidos em um FileListBox. Depois de definir a propriedade FileList do FilterComboBox como o nome de um FileListBox, defina a propriedade Filter para os tipos de arquivo que você deseja exibir.

Aqui está um filtro de amostra:

 FilterComboBox1.Filter: = 'Todos os arquivos (*. *) | *. * | Arquivos de projeto (* .dpr) | * .dpr | Unidades Pascal (* .pas) | * .pas ';

Dicas e sugestões

Definindo o DirectoryListBox. Propriedade da unidade e o FileListBox. A propriedade de diretório (nos manipuladores de eventos do OnChange escritos anteriormente) em tempo de execução também pode ser feita em tempo de design. Você pode realizar esse tipo de conexão no tempo de design, definindo as seguintes propriedades (no Inspetor de objetos):

DriveComboBox1.DirList: = DirectoryListBox1
DirectoryListBox1.FileList: = FileListBox1

Os usuários podem selecionar vários arquivos em um FileListBox se a propriedade MultiSelect for True. O código a seguir mostra como criar uma lista de várias seleções em um FileListBox e mostrá-lo em um SimpleListBox (algum controle ListBox "comum").

 var k: número inteiro; ...
com FileListBox1 do
se SelCount> 0, então
para k: = 0 em Itens. Contagem-1 do
se selecionado [k] então
SimpleListBox. Itens. Adicionar (Itens [k]);

Para exibir nomes de caminhos completos que não são encurtados com reticências, não atribua um nome de objeto Label à propriedade DirLabel de um DirectoryListBox. Em vez disso, insira um Label em um formulário e defina sua propriedade legenda no evento OnChange do DirectoryListBox como DirectoryListBox. Propriedade de diretório.

instagram story viewer