Ao trabalhar com vários aplicativos Windows e Delphi, nos acostumamos a operar com um dos padrões caixa de diálogo para abrir e salvar um arquivo, localizar e substituir texto, imprimir, escolher fontes ou definir cores.
Neste artigo, examinaremos algumas das propriedades e métodos mais importantes desses diálogos, com foco especial em Aberto e Salve caixa de diálogo.
As caixas de diálogo comuns são encontradas na guia Diálogos da paleta Componente. Esses componentes aproveitam as caixas de diálogo padrão do Windows (localizadas em uma DLL no diretório \ Windows \ System). Para usar uma caixa de diálogo comum, precisamos colocar o componente (componentes) apropriado no formulário. Os componentes comuns da caixa de diálogo são não visuais (não possuem uma interface visual em tempo de design) e, portanto, são invisíveis para o usuário em tempo de execução.
TOpenDialog e TSaveDialog
As caixas de diálogo Abrir arquivo e Salvar arquivo têm várias propriedades comuns. O arquivo aberto é geralmente usado para selecionar e abrir arquivos. A caixa de diálogo Salvar arquivo (também usada como a caixa de diálogo Salvar como) é usada ao obter um nome de arquivo do usuário para salvar um arquivo. Algumas das propriedades importantes do TOpenDialog e TSaveDialog são:
- o Opções As propriedades são muito importantes para determinar a aparência final da caixa. Por exemplo, uma linha de código como:
com OpenDialog1 FazOpções: = Opções + [ofAllowMultiSelect, ofFileMustExist];
manterá as opções já definidas e permitirá que os usuários selecionem mais de um arquivo na caixa de diálogo, além de gerar uma mensagem de erro se o usuário tentar selecionar um arquivo inexistente. - o InitialDir A propriedade é usada para especificar o diretório que será usado como o diretório inicial quando a caixa de diálogo do arquivo for exibida. O código a seguir garantirá que o diretório inicial da caixa de diálogo Abrir seja o diretório de inicialização de aplicativos.
SaveDialog1.InitialDir: = ExtractFilePath (aplicativo. ExeName);
- o Filtro A propriedade contém uma lista dos tipos de arquivo entre os quais o usuário pode escolher. Quando o usuário escolhe um tipo de arquivo da lista, apenas os arquivos do tipo selecionado são exibidos na caixa de diálogo. O filtro pode ser facilmente configurado em tempo de design na caixa de diálogo Editor de filtro.
- Para criar máscaras de arquivo no código do programa, atribua um valor à propriedade Filter que consiste em uma descrição e uma máscara separadas por um caractere de barra vertical (canal). Como isso:
OpenDialog1.Filter: = 'Arquivos de texto (* .txt) | * .txt | Todos os arquivos (*. *) | *. * ';
- o Nome do arquivo propriedade. Depois que o usuário clicar no botão OK em uma caixa de diálogo, essa propriedade conterá o caminho completo e o nome do arquivo escolhido.
Executar
Para realmente criar e exibir a caixa de diálogo comum, precisamos processar o Executar método da caixa de diálogo específica em tempo de execução. Exceto para TFindDialog e TReplaceDialog, todas as caixas de diálogo são exibidas modalmente.
Todas as caixas de diálogo comuns nos permitem determinar se o usuário clica no botão Cancelar (ou pressiona ESC). Como o método Execute retorna True, se o usuário clicou no botão OK, precisamos capturar um clique no botão Cancelar para garantir que o código fornecido não seja executado.
E se OpenDialog1.Execute então ShowMessage (OpenDialog1.FileName);
Esse código exibe a caixa de diálogo Abrir arquivo e exibe um nome de arquivo selecionado após uma chamada "bem-sucedida" para executar o método (quando o usuário clica em Abrir).
Nota: Executar retorna True se o usuário clicar no botão OK, clicar duas vezes no nome de um arquivo (no caso das caixas de diálogo) ou pressionar Enter no teclado. Execute retorna False se o usuário clicou no botão Cancelar, pressionou a tecla Esc, fechou a caixa de diálogo com o botão fechar do sistema ou com a combinação de teclas Alt-F4.
Do código
Para trabalhar com a caixa de diálogo Abrir (ou qualquer outra) em tempo de execução sem colocar um componente OpenDialog no formulário, podemos usar o seguinte código:
procedimento TForm1.btnFromCodeClick (Remetente: TObject); var OpenDlg: TOpenDialog; início OpenDlg: = TOpenDialog. Criar (Self); {defina opções aqui ...}E se OpenDlg. Executar entãoinício {código para fazer algo aqui} fim; OpenDlg. Livre; fim;
Nota: Antes de chamar Execute, podemos (precisar) definir qualquer uma das propriedades do componente OpenDialog.
MyNotepad
Finalmente, é hora de fazer algumas codificações reais. A idéia por trás deste artigo (e poucas outras que estão por vir) é criar um aplicativo MyNotepad simples - Windows autônomo como o aplicativo Notepad.
Neste artigo, são apresentadas caixas de diálogo Abrir e Salvar, então vamos vê-las em ação.
Etapas para criar a interface do usuário do MyNotepad:
. Inicie o Delphi e selecione File-New Application.
. Coloque um memorando, OpenDialog, SaveDialog dois botões em um formulário.
. Renomeie Button1 para btnOpen, Button2 para btnSave.
Codificação
1. Use o Object Inspector para atribuir o seguinte código ao evento FormCreate:
procedimento TForm1.FormCreate (Remetente: TObject); iníciocom OpenDialog1 Fazinício Opções: = Opções + [ofPathMustExist, ofFileMustExist]; InitialDir: = ExtractFilePath (aplicativo. ExeName); Filtro: = 'Arquivos de texto (* .txt) | * .txt'; fim; com SaveDialog1 Fazinício InitialDir: = ExtractFilePath (aplicativo. ExeName); Filtro: = 'Arquivos de texto (* .txt) | * .txt'; fim; Memo1.ScrollBars: = ssBoth; fim;
Este código define algumas das propriedades da caixa de diálogo Abrir, conforme discutido no início do artigo.
2. Adicione este código ao evento Onclick dos botões btnOpen e btnSave:
procedimento TForm1.btnOpenClick (Remetente: TObject); inícioE se OpenDialog1.Execute entãoinício Form1.Caption: = OpenDialog1.FileName; Memo1.Lines. LoadFromFile. (OpenDialog1.FileName); Memo1.SelStart: = 0; fim; fim;
procedimento TForm1.btnSaveClick (Remetente: TObject); início SaveDialog1.FileName: = Form1.Caption; E se SaveDialog1.Execute entãoinício Memo1.Lines. Salvar em arquivo. (SaveDialog1.FileName + '.txt'); Form1.Caption: = SaveDialog1.FileName; fim; fim;
Execute seu projeto. Você não pode acreditar; os arquivos estão abrindo e salvando, como no Bloco de Notas "real"
Palavras Finais
É isso aí. Agora temos nosso próprio "pequeno" bloco de notas.