Você está aqui: Delphi ::: VCL - Visual Component Library ::: TEdit

Como retornar a quantidade de caracteres no texto de um TEdit do Delphi usando a função SendMessage() da API do Windows e a mensagem WM_GETTEXTLENGTH

Quantidade de visualizações: 10861 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++:

Este trecho de código ou resolução de exercício faz parte do Super Pack 12.000 Dicas e Truques de Programação e 1.500 Exercícios Resolvidos em Java, Python, VisuAlg, Portugol, Delphi, C#, C, C++, VB.NET, Golang, Pascal, Ruby, PHP, e várias outras linguagens.

Aprenda a programar resolvendo problemas do mundo real. Tudo em português, com comentários em português.

Quero Ser Apoiador(a)


No arquivo Windows.pas podemos encontrar o protótipo e corpo desta função convertidos para Object Pascal:

Este trecho de código ou resolução de exercício faz parte do Super Pack 12.000 Dicas e Truques de Programação e 1.500 Exercícios Resolvidos em Java, Python, VisuAlg, Portugol, Delphi, C#, C, C++, VB.NET, Golang, Pascal, Ruby, PHP, e várias outras linguagens.

Aprenda a programar resolvendo problemas do mundo real. Tudo em português, com comentários em português.

Quero Ser Apoiador(a)


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:

Este trecho de código ou resolução de exercício faz parte do Super Pack 12.000 Dicas e Truques de Programação e 1.500 Exercícios Resolvidos em Java, Python, VisuAlg, Portugol, Delphi, C#, C, C++, VB.NET, Golang, Pascal, Ruby, PHP, e várias outras linguagens.

Aprenda a programar resolvendo problemas do mundo real. Tudo em português, com comentários em português.

Quero Ser Apoiador(a)


Ao executar este exemplo teremos uma mensagem com um conteúdo parecido com:

O edit contém 10 caracteres.

Link para compartilhar na Internet ou com seus amigos:

Delphi ::: VCL - Visual Component Library ::: TStringGrid

Como usar o controle TStringGrid em suas aplicações Delphi - O componente TStringGrid do Delphi

Quantidade de visualizações: 19043 vezes
Um objeto da classe TStringGrid representa um controle de grid que pode ser usado em suas aplicações Delphi para simplificar o processo de se lidar com strings e objetos associados a esta. Veja a posição desta classe na hierarquia de classes do Delphi:

System.TObject
  Classes.TPersistent
    Classes.TComponent
      Controls.TControl
        Controls.TWinControl
          Controls.TCustomControl
            Grids.TCustomGrid
              Grids.TCustomDrawGrid
                Grids.TDrawGrid
                  Grids.TStringGrid


Esta classe implementa também as interfaces IInterfaceComponentReference e IInterface.

O uso mais frequente de um controle TStringGrid é quando queremos apresentar um conteúdo texto em um formato tabular. Este controle fornece muitas propriedades para controlar a aparência da grid, assim como eventos e métodos que tiram vantagem da organização tabular da grid ao responder às ações do usuário.

Para adicionar um controle TStringGrid ao seu formulário você só precisa acessar a aba Additional no Tool Palette, clicar no controle e arrastá-lo para a posição desejada no formulário. Por padrão, um controle TStringGrid contém 5 linhas e 5 colunas. Novas linhas e novas colunas podem ser adicionadas por meio das propriedades RowCount e ColCount da classe TCustomGrid.

Cada célula da grid pode ter seu valor definido ou acessado usando-se a propriedade Cells. Veja um trecho de código no qual definimos o conteúdo da célula situada na segunda linha da primeira coluna do TStringGrid:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
begin
  // vamos definir o conteúdo da célula na segunda linha
  // da primeira coluna da grid
  StringGrid1.Cells[0, 1] := 'Osmar J. Silva';
end;

Um controle TStringGrid introduz a possibilidade de associar um objeto com cada string na grid. Estes objetos podem encapsular quaisquer informações ou comportamento representado pelas strings apresentadas ao usuário.

Se as strings a serem apresentadas na grid representarem valores de campos dos registros de um conjunto de dados (dataset), devemos usar um TDBGrid em vez de um TStringGrid.


Delphi ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como calcular o coeficiente angular de uma reta em Delphi dados dois pontos no plano cartesiano

Quantidade de visualizações: 1242 vezes
O Coeficiente Angular de uma reta é a variação, na vertical, ou seja, no eixo y, pela variação horizontal, no eixo x. Sim, isso mesmo. O coeficiente angular de uma reta tem tudo a ver com a derivada, que nada mais é que a taxa de variação de y em relação a x.

Vamos começar analisando o seguinte gráfico, no qual temos dois pontos distintos no plano cartesiano:



Veja que o segmento de reta AB passa pelos pontos A (x=3, y=6) e B (x=9, y=10). Dessa forma, a fórmula para obtenção do coeficiente angular m dessa reta é:

\[\ \text{m} = \frac{y_2 - y_1}{x_2 - x_1} = \frac{\Delta y}{\Delta x} = tg \theta \]

Note que __$\Delta y__$ e __$\Delta x__$ são as variações dos valores no eixo das abscissas e no eixo das ordenadas. No triângulo retângulo que desenhei acima, a variação __$\Delta y__$ se refere ao comprimento do cateto oposto e a variação __$\Delta y__$ se refere ao comprimento do cateto adjascente.

Veja agora o trecho de código na linguagem Delphi que solicita as coordenadas x e y dos dois pontos, efetua o cálculo e mostra o coeficiente angular m da reta que passa pelos dois pontos:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm4.Button2Click(Sender: TObject);
var
  x1, y1, x2, y2, m: Double;
begin
  // x e y do primeiro ponto
  x1 := 3;
  y1 := 6;

  // x e y do segundo ponto
  x2 := 9;
  y2 := 10;

  // agora vamos calcular o coeficiente angular
  m := (y2 - y1) / (x2 - x1);

  // e mostramos o resultado
  Memo1.Lines.Add('O coeficiente angular é: ' +
    FloatToStr(m));
end;

Ao executar este código em linguagem Delphi nós teremos o seguinte resultado:

O coeficiente angular é: 0,666666666666667

Veja agora como podemos calcular o coeficiente angular da reta que passa pelos dois pontos usando o Teorema de Pitágoras. Note que agora nós estamos tirando proveito da tangente do ângulo Theta (__$\theta__$), também chamado de ângulo Alfa ou Alpha (__$\alpha__$):

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm4.Button2Click(Sender: TObject);
var
  x1, y1, x2, y2, tangente: Double;
  cateto_oposto, cateto_adjascente, tetha: Double;
begin
  // incluir a unit Math

  // x e y do primeiro ponto
  x1 := 3;
  y1 := 6;

  // x e y do segundo ponto
  x2 := 9;
  y2 := 10;

  // vamos obter o comprimento do cateto oposto
  cateto_oposto := y2 - y1;
  // e agora o cateto adjascente
  cateto_adjascente := x2 - x1;
  // vamos obter o ângulo tetha, ou seja, a inclinação da hipetunesa
  // (em radianos, não se esqueça)
  tetha := ArcTan2(cateto_oposto, cateto_adjascente);
  // e finalmente usamos a tangente desse ângulo para calcular
  // o coeficiente angular
  tangente := Tan(tetha);

  // e mostramos o resultado
  Memo1.Lines.Add('O coeficiente angular é: ' +
    FloatToStr(tangente));
end;

Ao executar este código você verá que o resultado é o mesmo. No entanto, fique atento às propriedades do coeficiente angular da reta:

1) O coeficiente angular é positivo quando a reta for crescente, ou seja, m > 0;

2) O coeficiente angular é negativo quando a reta for decrescente, ou seja, m < 0;

3) Se a reta estiver na horizontal, ou seja, paralela ao eixo x, seu coeficiente angular é zero (0).

4) Se a reta estiver na vertical, ou seja, paralela ao eixo y, o coeficiente angular não existe.


Delphi ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas

Como calcular o seno de um número ou ângulo em Delphi usando a função Sin()

Quantidade de visualizações: 12708 vezes
Em geral, quando falamos de seno, estamos falando do triângulo retângulo de Pitágoras (Teorema de Pitágoras). A verdade é que podemos usar a função seno disponível nas linguagens de programação para calcular o seno de qualquer número, mesmo nossas aplicações não tendo nenhuma relação com trigonometria.

No entanto, é sempre importante entender o que é a função seno. Veja a seguinte imagem:



Veja que temos um triângulo retângulo com as medidas já calculadas para a hipotenusa e os dois catetos, assim como os ângulos entre eles.

Assim, o seno é a razão entre o cateto oposto (oposto ao ângulo theta) e a hipotenusa, ou seja, o cateto oposto dividido pela hipotenusa. Veja a fórmula:

\[\text{Seno} = \frac{\text{Cateto oposto}}{\text{Hipotenusa}} \]

Então, se dividirmos 20 por 36.056 (na figura eu arredondei) nós teremos 0.5547, que é a razão entre o cateto oposto e a hipotenusa (em radianos).

Agora, experimente calcular o arco-cosseno de 0.5547. O resultado será 0.9828 (em radianos). Convertendo 0.9828 radianos para graus, nós obtemos 56.31º, que é exatamente o ângulo em graus entre o cateto oposto e a hipotenusa na figura acima.

Pronto! Agora que já sabemos o que é seno na trigonometria, vamos entender mais sobre a função Sin() da linguagem Delphi. Esta função, incorporada por padrão à linguagem, recebe um valor numérico (Extended) e retorna um valor Extended, ou seja, também numérico) entre -1 até 1 (ambos inclusos). 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);
begin
  Memo1.Lines.Add('Seno de 0 = ' + FloatToStr(Sin(0)));
  Memo1.Lines.Add('Seno de 1 = ' + FloatToStr(Sin(1)));
  Memo1.Lines.Add('Seno de 2 = ' + FloatToStr(Sin(2)));
end;

Ao executar este código Delphi nós teremos o seguinte resultado:

Seno de 0 = 0
Seno de 1 = 0,841470984807897
Seno de 2 = 0,909297426825682

Note que calculamos os senos dos valores 0, 1 e 2. Observe como os resultados conferem com a curva da função seno mostrada abaixo:




Desafios, Exercícios e Algoritmos Resolvidos de Delphi

Veja mais Dicas e truques de Delphi

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware 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 funcionalidadesControle 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
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 17 usuários muito felizes estudando em nosso site.