Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

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

Como destacar URLs em um TRichEdit e abrí-las no browser quando clicadas

Quantidade de visualizações: 10868 vezes
Em algumas situações gostaríamos de destacar as URLs no texto de um TRichEdit e, quando o usuário clicar nas URLs, abrí-las no navegador. Nesta dica eu mostro como isso pode ser feito:

O primeiro passo é colocar um TRichEdit no seu formulário. Em seguida siga atentamente os passos abaixo:

a) Adicione uma declaração de procedure que sobrescreve WndProc() na seção protected do formulário. Isso é necessário para que possamos ter acesso à mensagem WM_NOTIFY da API do Windows:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

protected
  // precisamos sobrescrever a procedure WndProc
  procedure WndProc(var Message: TMessage); override;

b) Faça a implementação da procedure WndProc(var Message: TMessage):

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

procedure TForm1.WndProc(var Message: TMessage);
var
  p: TENLink; // contém informação sobre a mensagem de notificação EN_LINK
  strURL: string; // guardará a URL a ser aberta no navegador
begin
  // a mensagem é WM_NOTIFY?
  if (Message.Msg = WM_NOTIFY) then
  begin
    // o código da mensagem de notificação é EN_LINK?
    if (PNMHDR(Message.lParam).code = EN_LINK) then
    begin
      // vamos preencher a estrutura TENLink
      p := TENLink(Pointer(TWMNotify(Message).NMHdr)^);
      // o usuário pressionou o botão esquerdo?
      if (p.Msg = WM_LBUTTONDOWN) then
      begin
        // vamos selecionar o texto contendo o link
        SendMessage(RichEdit1.Handle, EM_EXSETSEL, 0, Longint(@(p.chrg)));
        // vamos obter o texto selecionado (que contém o link)
        strURL := RichEdit1.SelText;
        // finalmente vamos abrir o endereço contido no link no navegador
        ShellExecute(Handle, 'open', PChar(strURL), 0, 0, SW_SHOWNORMAL);
      end
    end
  end;

  inherited;
end;

c) Finalmente coloque o código abaixo no evento Create do formulário:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

procedure TForm1.FormCreate(Sender: TObject);
var
  mascara: Word;
begin
  // não esqueça de adicionar Richedit e ShellAPI no uses
  mascara := SendMessage(Handle, EM_GETEVENTMASK, 0, 0);
  SendMessage(RichEdit1.Handle, EM_SETEVENTMASK, 0, mascara or ENM_LINK);
  // vamos fazer com que o RichEdit detect URLs e aplique a formatação de links
  SendMessage(RichEdit1.Handle, EM_AUTOURLDETECT, Integer(True), 0);
end;

Para que você aproveite bem a dica, segue o código completo para a unit:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Richedit, ShellAPI, StdCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    RichEdit1: TRichEdit;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  protected
    // precisamos sobrescrever a procedure WndProc
    procedure WndProc(var Message: TMessage); override;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  mascara: Word;
begin
  // não esqueça de adicionar Richedit e ShellAPI no uses
  mascara := SendMessage(Handle, EM_GETEVENTMASK, 0, 0);
  SendMessage(RichEdit1.Handle, EM_SETEVENTMASK, 0, mascara or ENM_LINK);
  // vamos fazer com que o RichEdit detect URLs e aplique a formatação de links
  SendMessage(RichEdit1.Handle, EM_AUTOURLDETECT, Integer(True), 0);
end;

procedure TForm1.WndProc(var Message: TMessage);
var
  p: TENLink; // contém informação sobre a mensagem de notificação EN_LINK
  strURL: string; // guardará a URL a ser aberta no navegador
begin
  // a mensagem é WM_NOTIFY?
  if (Message.Msg = WM_NOTIFY) then
  begin
    // o código da mensagem de notificação é EN_LINK?
    if (PNMHDR(Message.lParam).code = EN_LINK) then
    begin
      // vamos preencher a estrutura TENLink
      p := TENLink(Pointer(TWMNotify(Message).NMHdr)^);
      // o usuário pressionou o botão esquerdo?
      if (p.Msg = WM_LBUTTONDOWN) then
      begin
        // vamos selecionar o texto contendo o link
        SendMessage(RichEdit1.Handle, EM_EXSETSEL, 0, Longint(@(p.chrg)));
        // vamos obter o texto selecionado (que contém o link)
        strURL := RichEdit1.SelText;
        // finalmente vamos abrir o endereço contido no link no navegador
        ShellExecute(Handle, 'open', PChar(strURL), 0, 0, SW_SHOWNORMAL);
      end
    end
  end;

  inherited;
end;

end.


Link para compartilhar na Internet ou com seus amigos:

Delphi ::: VCL - Visual Component Library ::: TEdit

Como habilitar ou desabilitar um TEdit do Delphi usando a função EnableWindow() da API do Windows

Quantidade de visualizações: 11661 vezes
Embora o Delphi já nos forneça as ferramentas necessárias para habilitar ou desabilitar 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 EnableWindow() com os valores true ou false.

A função EnableWindow() possui a seguinte assinatura em C/C++:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

BOOL EnableWindow(          
  HWND hWnd,
  BOOL bEnable
);

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

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

// Protótipo
{$EXTERNALSYM EnableWindow}
function EnableWindow(hWnd: HWND; bEnable: BOOL): BOOL; stdcall;

// Implementação
function EnableWindow; external user32 name 'EnableWindow';

Note que precisamos informar o HWND (parâmetro hWnd) para a caixa de texto e um valor BOOL. Se fornecermos false, a caixa de texto será desabilitada. Veja:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
begin
  // vamos desabilitar o TEdit usando a função EnableWindow()
  // com o valor false
  if EnableWindow(Edit1.Handle, False) = True then
    begin
      ShowMessage('A caixa de texto foi desabilitada com sucesso.');
    end;
end;

Para habilitar a caixa de texto novamente, só precisamos fornecer o valor true para o parâmetro bEnable:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
begin
  // vamos habilitar o TEdit usando a função EnableWindow()
  // com o valor true
  if EnableWindow(Edit1.Handle, True) = True then
    begin 
      ShowMessage('A caixa de texto foi habilitada com sucesso.');
    end;
end;

É importante observar que o retorno da função EnableWindow será False se tentarmos habilitar uma caixa de texto que já está habilitada ou tentarmos desabilitar uma caixa de texto que já está desabilitada.


Delphi ::: Dicas & Truques ::: Strings e Caracteres

Como obter uma substring no final de uma string usando a função AnsiRightStr() do Delphi

Quantidade de visualizações: 13193 vezes
Em algumas situações precisamos obter uma substring no final de uma string. Em Delphi isso pode ser feito por meio da função AnsiRightStr(). Esta função requer a string a partir da qual a substring será obtida e a quantidade de caracteres que comporâo a substring. O retorno será uma nova string contendo a substring obtida. Veja o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
var
  frase, substring: string;
begin
  frase := 'Programar em Delphi é muito bom';

  // vamos obter a substring "bom"
  substring := AnsiRightStr(frase, 3);

  // vamos exibir o resultado
  ShowMessage('Resultado: ' + substring);
end;

Não se esqueça de adicionar a unit StrUtils no uses do seu formulário.

Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009.


Delphi ::: Dicas & Truques ::: Matemática e Estatística

Como calcular juros simples e montante usando Delphi

Quantidade de visualizações: 13426 vezes
O regime de juros será simples quando o percentual de juros incidir apenas sobre o valor principal. Sobre os juros gerados a cada período não incidirão novos juros. Valor Principal ou simplesmente principal é o valor inicial emprestado ou aplicado, antes de somarmos os juros. Transformando em fórmula temos:

J = P . i . n

Onde:

J = juros
P = principal (capital)
i = taxa de juros
n = número de períodos

Imaginemos uma dívida de R$ 2.000,00 que deverá ser paga com juros de 5% a.m. pelo regime de juros simples e o prazo para o pagamento é de 2 meses. O cálculo em Delphi pode ser feito assim:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
var
  principal, taxa, juros: double;
  meses: integer;
begin
  principal := 2000.00;
  taxa := 0.08;
  meses := 2;

  juros := principal * taxa * meses;

  ShowMessage('O total de juros a ser pago é: '
    + FloatToStr(juros));
end;

O montante da dívida pode ser obtido das seguintes formas:

a) Montante = Principal + Juros
b) Montante = Principal + (Principal x Taxa de juros x Número de períodos)

M = P . (1 + (i . n))

Veja o código:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
var
  principal, taxa, juros, montante: double;
  meses: integer;
begin
  principal := 2000.00;
  taxa := 0.08;
  meses := 2;

  juros := principal * taxa * meses;
  montante := principal * (1 + (taxa * meses));

  ShowMessage('O total de juros a ser pago é: '
    + FloatToStr(juros));
  ShowMessage('O montante a ser pago é: '
    + FloatToStr(montante));
end;

Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009.


Delphi ::: Dicas & Truques ::: Matemática e Estatística

Como gerar um número aleatório de 0 a 10 em Delphi usando a função Random()

Quantidade de visualizações: 28042 vezes
Em algumas situações precisamos gerar números randômicos. Em Delphi isso pode ser feito com o auxílio da função Random(). Esta função aceita um valor inteiro e retorna um número aleatório maior ou igual a 0 e menor que o valor fornecido. Assim, se quisermos obter um número randômico na faixa de 0 a 10, só precisamos fornecer o valor 11 para a função Random(). Note ainda a chamada à função Randomize(), usada para iniciar o gerador de números randômicos.

Veja um exemplo no qual geramos um número aleatório na faixa de 0 a 10:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
var
  numero: integer;
begin
  // vamos iniciar o gerador de números randômicos
  Randomize;

  // vamos gerar um número aleatório entre 0 e 10
  numero := Random(11);

  // exibe o resultado
  ShowMessage('Número gerado: ' + IntToStr(numero));
end;

Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009.


Delphi ::: VCL - Visual Component Library ::: TComboBox

Como usar a propriedade Count da coleção Items para obter a quantidade de itens em um TComboBox em Delphi

Quantidade de visualizações: 11992 vezes
Em algumas situações precisamos obter a quantidade de itens em um ComboBox. Para isso podemos usar a propriedade Count da coleção Items (um objeto da classe TStrings e que representa os itens do combo box). Esta propriedade retorna um valor inteiro.

Veja como podemos obter a quantidade de elementos em um ComboBox ao clicarmos em um botão:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

procedure TForm3.Button1Click(Sender: TObject);
begin
  // vamos adicionar alguns itens ao ComboBox
  ComboBox1.Items.Add('Java');
  ComboBox1.Items.Add('C++');
  ComboBox1.Items.Add('Python');

  // vamos obter a quantidade de itens no ComboBox
  ShowMessage('O ComboBox possui '  + IntToStr(ComboBox1.Items.Count) +
    ' itens.');
end;

Ao executar este código teremos uma mensagem com o texto:

O ComboBox possui 3 itens.


Delphi ::: VCL - Visual Component Library ::: TListBox

Como usar um laço for para pesquisar valores nos itens de uma ListBox do Delphi

Quantidade de visualizações: 12618 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 para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

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.


Delphi ::: Dicas & Truques ::: Arquivos e Diretórios

Como excluir um arquivo em Delphi usando a função DeleteFile()

Quantidade de visualizações: 31980 vezes
Em algumas situações nossas aplicações precisam excluir arquivos. Para isso o Delphi nos fornece a função DeleteFile(), presente na unit SysUtils. Esta função recebe o caminho e nome do arquivo a ser excluído e retorna true se a exclusão foi feita com sucesso e false em caso contrário.

Veja um trecho de código no qual excluímos um arquivo chamado "dados.txt":

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
var
  arquivo: string;
begin
  // diretorio e nome do arquivo
  arquivo := 'C:\arquivo de codigos\dados.txt';

  // vamos remover o arquivo
  if DeleteFile(arquivo) then
    ShowMessage('O arquivo foi excluído com sucesso')
  else
    ShowMessage('Não foi possível excluir o arquivo');
end;

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.


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: 1308 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 para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

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 para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

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.


Desafios, Exercícios e Algoritmos Resolvidos de Delphi

Veja mais Dicas e truques de Delphi

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



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