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

Acessando um formulário HTML em um TWebBrowser por meio de seu índice

Quantidade de visualizações: 14377 vezes
Em algumas situações gostaríamos de acessar um determinado formulário em uma página HTML carregada em um controle TWebBrowser e retorná-lo como um objeto da interface IHTMLFormElement. Nesta dica eu mostro como isso pode ser feito.

O primeiro passo é criar o documento HTML a ser usado no exemplo. Veja:

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

<html>
<head>
  <title>Acessando documentos HTML usando TWebBrowser</title>
</head>
<body>

<form name="form1" action="gravar.php" method="post">
  Usuário: <input type="text" name="usuario">
  <input type="submit" value="Enviar">
</form>

</body>
</html>

Note que este documento HTML contém um formulário com uma caixa de texto e um botão Enviar. Nossa intenção é acessar este formulário a partir de código Delphi e obter suas propriedades, a saber, name, action e method. Eis o código Delphi:

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

procedure TForm3.Button1Click(Sender: TObject);
var
  url: String;
begin
  // vamos carregar o documento HTML
  url := 'pagina.html';

  // vamos acessar a página
  WebBrowser1.Navigate(url);
end;

procedure TForm3.Button2Click(Sender: TObject);
var
  doc: IHTMLDocument2;
  form: IHTMLFormElement;
begin
  // uses MSHTML_TLB

  // vamos obter o documento representando a página web
  doc := WebBrowser1.Document as IHTMLDocument2;

  // o documento foi obtido com sucesso
  if doc <> nil then
    begin
      // vamos agora obter o formulário...queremos o primeiro formulário
      if doc.forms.length = 0 then
        begin
          ShowMessage('O documento HTML não contém formulários');
        end
      else
        begin
          form := doc.forms.item(0, '') as IHTMLFormElement;
          // vamos exibir algumas propriedades do formulário
          ShowMessage('Propriedade name: ' + form.name);
          ShowMessage('Propriedade action: ' + form.action);
          ShowMessage('Propriedade method: ' + form.method);
        end;
    end
  else
    begin
      ShowMessage('O documento HTML não pôde ser obtido.');
    end;
end;

Veja que, diferente de outros exemplos, aqui tivemos que usar a interface IHTMLDocument2 em vez de IHTMLDocument3 ou IHTMLDocument4. Isso acontece porque a interface IHTMLDocument2 é a única que permite acesso à propriedade forms do documento HTML.

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

Link para compartilhar na Internet ou com seus amigos:

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

Como verificar se uma substring está contida no final de uma string usando a função AnsiEndsStr() do Delphi

Quantidade de visualizações: 11292 vezes
Em algumas situações precisamos verificar se uma substring está contida no final de uma string, ou seja, se a string termina com um determinado sufixo. Em Delphi isso pode ser feito com o auxílio da função AnsiEndsStr(). Esta função requer a substring a ser pesquisada e a string alvo da pesquisa. O retorno será true se a substring estiver contida no final da string. Do contrário o retorno será false. Veja o 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
  frase: string;
begin
  frase := 'Gosto muito de Delphi e Java';

  // vamos verificar se a string termina com "Java"
  if AnsiEndsStr('Java', frase) then
    ShowMessage('A frase termina com a substring indicada')
  else
    ShowMessage('A frase NÃO termina com a substring indicada')
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 ::: Data Controls (Controles de Dados) ::: TDBGrid

Como obter o índice da linha da célula atual em um TDBGrid do Delphi

Quantidade de visualizações: 9758 vezes
Como obter o índice da linha da célula atual (com foco) em um TDBGrid do Delphi

Em algumas situações precisamos obter o índice da linha da célula atual, ou seja, a célula que detém o foco no momento em um TDBGrid. Isso pode ser feito por meio da propriedade Row da classe TCustomGrid (e publicada na classe TStringGrid). Como esta propriedade não está publicada na classe TDBGrid (Delphi 2009), o que fazemos é um casting para a classe TStringGrid.

Veja um trecho de código no qual usamos o evento Click de um botão para informar o índice da linha da célula atual:

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

procedure TForm3.Button3Click(Sender: TObject);
var
  indice: Integer;
begin
  // vamos obter o índice da linha da célula atual
  indice := TStringGrid(DBGrid1).Row;
  ShowMessage('O índice da linha da célula atual é: ' +
    IntToStr(indice));
end;

Execute o código e clique no botão. Você verá uma mensagem parecida com:

"O índice da linha da célula atual é: 4".

Lembre-se de que o índice da linha fixa do DBGrid é 0.

Esta dica foi escrita e testada no Delphi 2009.


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

Como ler todo o conteúdo de um arquivo texto usando Delphi - As funções AssignFile(), ReadLn() e Eof() do Delphi

Quantidade de visualizações: 31064 vezes
Nesta dica mostro como usar o Delphi para ler todo o conteúdo de um arquivo texto. Esta leitura será feita linha a linha e adicionaremos cada linha a um TMemo à medida que ela for lida.

O primeiro passo para se ler um arquivo texto usando Delphi é declarar uma variável do tipo TextFile. Em seguida usamos a procedure AssignFile() para associar a variável TextFile ao arquivo em disco.

Como queremos ler o conteúdo do arquivo, a função Reset() deve ser usada. Esta função abre o arquivo texto fornecido e posiciona o cursor de leitura no início do arquivo. A partir daí podemos usar um laço while e a função ReadLn() para ler cada linha do arquivo. Note o uso da função Eof() para testarmos se o ponteiro de leitura ainda não atingiu o fim do arquivo.

Veja o exemplo para um melhor entendimento:

----------------------------------------------------------------------
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
  arquivo: TextFile;
  linha: String;
begin
  // vamos fazer uma ligação entre a variável arquivo e o
  // arquivo que queremos ler
  AssignFile(arquivo, 'C:\arquivo de codigos\dados.txt');

  // vamos abrir o arquivo em  modo leitura
  Reset(arquivo);

  // vamos ler cada linha e adicioná-la a um Memo
  while not Eof(arquivo) do
  begin
    ReadLn(arquivo, linha);
    Memo1.Lines.Add(linha);
  end;

  // hora de fechar o arquivo
  CloseFile(arquivo);
end;


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


Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira

Perfil em aço

As conexões dos perfis de aço contribuem para a projetação das estruturas de uma edificação, sendo responsáveis pela ligação entre pilares e vigas ou entre outros elementos. Elas podem variar, dependendo do tipo de esforço que se pretende resistir com o elemento estrutural.

Considerando a figura apresentada a seguir, assinale a alternativa que indica corretamente o tipo de conexão que está sendo utilizado para unir essas peças.



A) Conexão de cisalhamento.

B) Conexão de momento com pinos.

C) Conexão de cisalhamento com solda.

D) Conexão de momento com solda.

E) Conexão de tensão com solda.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica

Viscosidade dinâmica

A viscosidade dinâmica é uma substância dada em função do aumento das tensões de cisalhamento aplicadas à substância. A proporção em que o fluido se deforma em função do tempo é chamada de:

A) velocidade do fluido.

B) viscosidade do fluido.

C) taxa de deformação do fluido.

D) densidade do fluido.

E) força aplicada ao fluido.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Fundações

Fundações diretas ou rasas

As fundações rasas ou diretas apresentam como características a transmissão da carga ao terreno, predominantemente pelas pressões distribuídas sob a base da fundação, e a profundidade de assentamento em relação ao terreno inferior a duas vezes a menor dimensão da fundação.

Sobre as fundações superficiais rasas ou diretas, assinale a alternativa correta.

A) A sapata associada pode ser definida como a sapata sujeita à ação de uma carga distribuída linearmente ou de pilares ao longo de um mesmo alinhamento.

B) O radier é o elemento de fundação superficial que abrange parte ou todos os pilares de uma estrutura, distribuindo os carregamentos.

C) A sapata corrida é definida como a sapata comum a mais de um pilar. Devido a essa particularidade, para sua execução é necessário o uso de máquinas.

D) A sapata é dimensionada de modo que as tensões de tração nela resultantes sejam resistidas pelo concreto, sem necessidade de armadura.

E) O bloco é dimensionado de modo que as tensões de tração nele resultantes sejam resistidas pelo emprego de armadura disposta para esse fim.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais

Materiais empregados para instalação de água fria e esgoto

A rede de esgoto se divide em primário e secundário. A rede primária é aquela que fica em contato com os gases que vêm da rede externa. Durante a execução das instalações externas e enterradas de esgoto sanitário primário de uma residência, você deverá especificar a tubulação que deverá ser instalada do vaso sanitário até o sistema de coleta público de esgotos. Sobre essa tubulação, assinale a alternativa correta:

A) Deverá ser adotada uma tubulação de PVC rígido da série reforçada com DN mínimo de 100mm.

B) Deverá ser adotada uma tubulação de cerâmica rígida da série normal com DN máximo de 75mm.

C) Deverá ser adotada uma tubulação de PVC rígido da série reforçada com DN máximo de 40mm.

D) Deverá ser adotada uma tubulação de PVC rígido da série normal com DN máximo de 40mm.

E) Deverá ser adotada uma tubulação de PVC rígido da série normal com DN máximo de 220mm.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em

Ano: 2014 Banca: Fundação Carlos Chagas - FCC Prova: FCC - TCE GO - Analista de Controle Externo - Área: Engenharia - 2014

Considere uma viga de uma estrutura usual de concreto armado, submetida à flexão simples, com momento fletor de cálculo Md = 25 kNm, como ilustrado na figura abaixo.



A área necessária de armadura de tração com aço CA50, em cm2, calculada no estado limite último para situações de combinações normais, é

A) 1,0.

B) 1,2.

C) 1,6.

D) 1,8.

E) 2,0.
Verificar Resposta Estudar Cards Todas as Questões

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á 38 usuários muito felizes estudando em nosso site.