Você está aqui: Delphi ::: Dicas & Truques ::: Arquivos e Diretórios |
Usando a função ForceDirectories() para criar um diretório juntamente com um ou mais subdiretóriosQuantidade de visualizações: 18376 vezes |
Em algumas situações precisamos, de uma só vez, criar um diretório e, dentro deste diretório, criar outro subdiretório. Para isso, o Delphi nos fornece a função ForceDirectories(), presente na unit SysUtils. Esta função recebe uma string contendo o diretório e subdiretórios a serem criados e returna true se a operação foi efetuada com sucesso e false em caso contrário. Veja um trecho de código no qual criamos um diretório contendo um subdiretório que, por sua vez, contém outro subdiretório: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); var diretorio: string; begin // diretório e subdiretorios que queremos criar diretorio := 'C:\arquivo de codigos\delphi\exemplos'; // vamos criar o diretório e subdiretórios if ForceDirectories(diretorio) then ShowMessage('O diretório e subdiretórios foram criados.') else ShowMessage('O diretório e subdiretórios NÃO foram criados.') end; Note que a unit FileCtrl também contém uma função chamada ForceDirectories(). Porém, esta função foi considerada ultrapassada. Dê preferência àquela da unit SysUtils. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
![]() |
Delphi ::: VCL - Visual Component Library ::: TListBox |
Como adicionar itens em uma ListBox do Delphi usando a função Add()Quantidade de visualizações: 14167 vezes |
Itens em uma TListBox podem ser adicionados usando-se o método Add() da propriedade Items, um objeto da classe TString. Este método aceita uma string representando o novo ítem e retorna um inteiro cujo valor é o índice do novo ítem. Veja o seguinte trecho de código:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); var item: String; begin // vamos adicionar um item vindo de uma variável item := 'Sou o primeiro item'; ListBox1.Items.Add(item); // vamos adicionar outro item...desta vez um literal ListBox1.Items.Add('Sou o segundo item'); end; Note que neste exemplo não fizemos uso do valor inteiro retornado pelo método Add(). Caso isso seja necessário, podemos usar código parecido com: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); var item: String; indice: Integer; begin // vamos adicionar um item vindo de uma variável // e obter o seu índice item := 'Sou o primeiro item'; indice := ListBox1.Items.Add(item); ShowMessage('O novo ítem foi inserido no índice: ' + IntToStr(indice)); end; É importante notar que, em uma TListBox não ordenada, ou seja, o valor de sua propriedade Sorted é false, o método Add() sempre adicionará o novo item no final da lista. Em uma lista ordenada, o item é inserido em uma posição determinada pela ordenação alfabética dos demais itens. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Delphi ::: VCL - Visual Component Library ::: TEdit |
Como obter a quantidade de caracteres no texto de um TEdit do Delphi usando a função SendMessage() da API do Windows e a mensagem WM_GETTEXTLENGTHQuantidade de visualizações: 10936 vezes |
Em algumas ocasiões gostaríamos de obter o tamanho do texto de um TEdit usando apenas as funções da API do Windows. Para isso podemos usar a função SendMessage() em combinação com a mensagem WM_GETTEXTLENGTH. A função SendMessage() da API do Windows possui a seguinte assinatura em C/C++: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- LRESULT SendMessage( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam ); No arquivo Windows.pas podemos encontrar o protótipo e corpo desta função convertidos para Object Pascal: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // Protótipo {$EXTERNALSYM SendMessage} function SendMessage(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; // Implementação function SendMessage; external user32 name 'SendMessageW'; Quando usamos a mensagem WM_GETTEXTLENGTH para obter a quantidade de caracteres no texto de um TEdit, o retorno da função SendMessage() é um valor inteiro contendo a quantidade de caracteres na caixa de texto. Os parâmetros wParam e lParam não são usados, ou seja, podemos fornecer o valor 0 para os mesmos. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); var tamanho: Integer; begin // vamos obter a quantidade de caracteres na caixa de texto tamanho := SendMessage(Edit1.Handle, WM_GETTEXTLENGTH, 0, 0); // vamos exibir o resultado ShowMessage('O edit contém ' + IntToStr(tamanho) + ' caracteres.'); end; Ao executar este exemplo teremos uma mensagem com um conteúdo parecido com: O edit contém 10 caracteres. |
Delphi ::: VCL - Visual Component Library ::: TListBox |
Como usar um laço for para pesquisar valores nos itens de uma ListBox do DelphiQuantidade de visualizações: 12583 vezes |
Nesta dica mostro como é possível pesquisar valores nos itens de uma ListBox. Note que, se o valor pesquisado for encontrado, nós o selecionamos na lista e informamos seu índice. Se não for encontrado nós ajustamos uma variável Boolean e avisamos do não sucesso da operação. Finalmente note que este código faz diferenciação de letras maiúsculas e minúsculas, ou seja, Osmar será diferente de OSMAR. Veja o código: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm1.Button2Click(Sender: TObject); var i: Integer; pesquisa: string; encontrou: Boolean; begin // vamos solicitar o texto a ser pesquisado na ListBox pesquisa := InputBox('Pesquisar', 'Informe o texto', ''); encontrou := false; // vamos usar um laço for para percorrer todos os itens // da ListBox for i := 0 to ListBox1.Count - 1 do begin if ListBox1.Items[i] = pesquisa then begin encontrou := true; // vamos selecionar o item encontrado ListBox1.ItemIndex := i; ShowMessage('O texto pesquisado foi encontrado ' + 'no índice ' + IntToStr(ListBox1.ItemIndex)); end; end; // não foi encontrado? if not encontrou then begin ShowMessage('O texto pesquisado não foi encontrado.'); end; end; Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
Dicas e truques de outras linguagens |
Códigos Fonte |
![]() Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
![]() Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |