Você está aqui: Delphi ::: VCL - Visual Component Library ::: TEdit |
Como definir o conteúdo de um TEdit do Delphi em tempo de execução usando a função SendMessage() da API do Windows e a mensagem WM_SETTEXTQuantidade de visualizações: 11235 vezes |
Embora o Delphi já nos forneça as ferramentas necessárias para definir o conteúdo de um TEdit em tempo de execução, é importante saber como realizar esta tarefa usando a API do Windows. Para isso, podemos usar a função SendMessage() em combinação com a mensagem WM_SETTEXT. 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'; Note que precisamos de um HWND (Handle) para a caixa de texto. Feito isso só precisamos enviar a mensagem WM_SETTEXT juntamente com o conteúdo a ser exibido no controle. 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 texto: String; begin // conteúdo a ser definido para a caixa de texto texto := 'Veja isso'; // vamos definir o conteúdo usando a função SendMessage // fornecendo a mensagem WM_SETTEXT SendMessage(Edit1.Handle, WM_SETTEXT, 0, Integer(PChar(texto))); end; Veja que o parâmetro wParam da função SendMessage não é usado quando a mensagem é WM_SETTEXT. Desta forma só precisamos fornecer o valor 0. |
Link para compartilhar na Internet ou com seus amigos: |
Delphi ::: Dicas & Truques ::: Data e Hora |
Como retornar o dia do mês para uma determinada data em Delphi usando as funções DayOfTheMonth() e DayOf()Quantidade de visualizações: 17598 vezes |
Em algumas situações precisamos extrair apenas o dia do mês de uma determinada data. Para isso podemos usar as funções DayOfTheMonth() e DayOf(), ambas contidas na unit DateUtils. Estas funções retornam um valor inteiro na faixa de 1 a 31. Veja, por exemplo, como obter o dia do mês da data atual:---------------------------------------------------------------------- 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 hoje: TDateTime; dia_mes: integer; begin // não esqueça de incluir DateUtils no uses // vamos receber a data de hoje hoje := Now; // vamos obter o dia do mês dia_mes := DayOf(hoje); // vamos exibir o resultado ShowMessage('O dia do mês é: ' + IntToStr(dia_mes)); end; É importante notar que ambas as funções DayOfTheMonth() e DayOf() esperam um valor do tipo TDateTime representando a data cujo mês queremos extrair. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Delphi ::: Dicas & Truques ::: Strings e Caracteres |
Como usar a função ReverseString() do Delphi para inverter o texto de uma palavra ou frase em Delphi - Invertendo o conteúdo de uma string usando DelphiQuantidade de visualizações: 25749 vezes |
Em algumas situações precisamos inverter o conteúdo de uma string, ou seja, alterar a ordem de seus caracteres de forma que a string fique de trás para frente. Em Delphi isso pode ser feito com o auxílio da função ReverseString(). Esta função recebe uma string e devolve outra string invertida. Veja um exemplo: ---------------------------------------------------------------------- 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 nome: string; // declara uma variável do tipo string begin nome := 'Osmar J. Silva'; // vamos inverter o conteúdo da string nome := ReverseString(nome); // vamos exibir o resultado ShowMessage(nome); end; Não se esqueça de adicionar a unit StrUtils na cláusula uses de seu formulário. Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Delphi ::: Data Controls (Controles de Dados) ::: TDBGrid |
Como navegar (percorrer) pelas células do TDBGrid do Delphi usando a tecla EnterQuantidade de visualizações: 12109 vezes |
Há situações nas quais queremos que os usuários de nossas aplicações Delphi sejam capazes de pressionar a tecla Enter para passar (ou saltar) pelas células dos controles DBGrid. A navegação padrão é com a tecla Tab e/ou as teclas de direção. Nesta dica eu mostro como isso pode ser feito. Suponha que você tem um componente TDBGrid com o nome "DBGrid1". Vá ao seu evento OnKeyPress e modifique-o para o código abaixo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm3.DBGrid1KeyPress(Sender: TObject; var Key: Char); begin // o usuário pressionou a tecla Enter? if Key = #13 then begin // ainda não estamos na última coluna if DBGrid1.Columns.Grid.SelectedIndex < DBGrid1.Columns.Count - 1 then // vamos passar para a próxima célula DBGrid1.Columns[DBGrid1.Columns.Grid.SelectedIndex + 1].Field.FocusControl else begin // vamos passar para o próximo registro da tabela DBGrid1.DataSource.DataSet.Next; DBGrid1.Columns[0].Field.FocusControl; end; end; end; Execute a aplicação e experimente o efeito. É claro que a navegação com a tecla Enter só funciona em uma direção (tal qual a tecla Tab). Para voltar para as células anteriores você ainda terá que acionar as teclas de direção. Note o uso do método Next da classe TDataSet para forçarmos o foco a ir para a próxima linha do TDBGrid. Esta dica foi escrita e testada no Delphi 2009. |
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
Dicas e truques de outras linguagens |
AutoLISP - Como desenhar uma linha no AutoCAD usando AutoLISP - Dois pontos geométricos e o comando LINE C - Como calcular a energia cinética de um corpo dado sua massa e sua velocidade usando a linguagem C |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento 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 |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades 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 |