Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
lml.lucas

[Resolvido] Alterando valor de radio bottun

Recommended Posts

Pessoal, estou tentar fazer com que o delphi clique automaticamente em radio button, mas ta difícil... n consigo de nenhuma maneira..

Estou usando webbrowser, no delphi xe2

Tentei usar inumeros codigos, nenhum deu certo

E esse é o codigo do html, no caso eu quero selecionar o ultimo check

<label> <input type="radio" class="radio" name="c" value="2"
checked="checked" />
Check 1 </label>
<br /> <label> <input type="radio" class="radio" name="c"
value="3" />
Check 2 </label> <br /> <label> <input type="radio" class="radio" name="c"
value="4" />
Check 3 </label>

Editado por lml.lucas
tar code

Compartilhar este post


Link para o post
Compartilhar em outros sites
Pessoal, estou tentar fazer com que o delphi clique automaticamente em radio button, mas ta difícil... n consigo de nenhuma maneira..

Estou usando webbrowser, no delphi xe2

Tentei usar inumeros codigos, nenhum deu certo

E esse é o codigo do html, no caso eu quero selecionar o ultimo check

<label> <input type="radio" class="radio" name="c" value="2"
checked="checked" />
Check 1 </label>
<br /> <label> <input type="radio" class="radio" name="c"
value="3" />
Check 2 </label> <br /> <label> <input type="radio" class="radio" name="c"
value="4" />
Check 3 </label>

Olá,

O que você se refere a "clicar"? É no sentido de marcar, algo como "posição padrão"?

Eu não manjo muito de Delphi, mas se for um "objeto", tente ver se tem um atributo que serve para identificar qual radio está marcado ou algo do tipo, ou seja, "ao clicar no radio, qual resultado é encontrado??? daí faça "esse resultado" manualmente!"...

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Então, acho que o problema ta em identificar o objeto

    No meu caso eu tenho tentei identificar primeiro ele com o name, e depois do o value ( até por que é o unico atributo que difere os radio buttons)

    Mas não consegui... quando eu coloco no delphi ele da erro no value

    E o que eu quero fazer... é selecionar o check 3... Na pagina da web ta selecionado o check 1

    Editado por lml.lucas

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Lucas,

    Pessoal, estou tentar fazer com que o delphi clique automaticamente em radio button, mas ta difícil... n consigo de nenhuma maneira..

    Estou usando webbrowser, no delphi xe2

    Tentei usar inumeros codigos, nenhum deu certo

    E esse é o codigo do html, no caso eu quero selecionar o ultimo check

    <label> <input type="radio" class="radio" name="c" value="2"
    checked="checked" />
    Check 1 </label>
    <br /> <label> <input type="radio" class="radio" name="c"
    value="3" />
    Check 2 </label> <br /> <label> <input type="radio" class="radio" name="c"
    value="4" />
    Check 3 </label>

    Cara, já faz um bom tempo que não mexo com esses recursos do Delphi, mas vamos lá, recordar é viver.. :lol:

    Para interagir via código com objetos da página HTML vinculada ao WebBrowser, você vai precisar lançar mão do OLE (Object Linking and Embedding), e para tanto, usando a propriedade OleObject do TWebBrowser.

    Os objetos que podem ser acessados estão aqui: http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser_properties.aspx

    Só que você precisa adicionar id's aos controles de rádio do seu formulário para que possam ser referenciados individualmente. Ficariam assim:

    <label><input [B]id="rd1"[/B] type="radio" class="radio" name="c" value="2" checked="checked" />Check 1</label>
    <br />
    <label><input [B]id="rd2"[/B] type="radio" class="radio" name="c" value="3" />Check 2</label>
    <br />
    <label><input [B]id="rd3"[/B] type="radio" class="radio" name="c" value="4" />Check 3</label>

    No seu código Delphi, você vai fazer isto:

    WebBrowser1.OleObject.Document.All.rd3.Checked := True;

    O terceiro rádio será selecionado.

    É apenas uma amostra do que pode ser feito. Os objetos (cor, altura, tamanho, etc) da página podem ser modificados programaticamente. Esses objetos são indexados (podem também ser referenciados por índices, como um vetor).

    O Help do Delphi do XE2 deve ter isso explicado.

    []'s

    LNW

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • O hmtl eu não posso modificar.. n posso colocar os Ids :/

    tenho que tentar identificar de outra maneira

    Esse aqui é a parte do html mais completo...

    com o nome do div...

    talvez tenha como identificar pelo nome do div

     <div class="option">
    <label> <input type="radio" class="radio" name="c" value="2"
    checked="checked" />
    check 1 </label>
    <br /> <label> <input type="radio" class="radio" name="c"
    value="3" />
    check 2 </label> <br /> <label> <input type="radio" class="radio" name="c"
    value="4" />
    check 3 </label>

    </div>

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Lucas,

    O hmtl eu não posso modificar.. n posso colocar os Ids :/

    tenho que tentar identificar de outra maneira

    OK.

    Dá pra selecionar os elementos pela tag e depois acessá-los por um índice.. Você tem muitos controles de entrada de dados (input)?

    Aqui, você retorna na variável inteira i a quantidade de elementos de entrada (inputs) encontrados no formulário:

    i := WebBrowser1.OleObject.Document.All.Tags('input').Length;

    Para o seu trecho de código acima, ele retornaria o valor 3. Os elementos são referenciados através de índices que começam em 0 (zero). No seu caso, de 0 a (i - 1), ou seja, 0 a 2. Valeu? Então, para acessá-lo você faria:

    WebBrowser1.OleObject.Document.All.Tags('input').Item(i-1).Checked := True;

    Se quisesse, poderia especificar o valor do índice diretamente: Item(2); só não pode extrapolar os limites, por exemplo, meter um Item(3).

    Os índices dos elementos correspondem à ordem em que aparecem no formulário. Portanto, o primeiro elemento input tem índice 0, o segundo índice 1, e assim por diante.

    Bom, dado o exemplo que você apresentou acima, essa poderia ser uma solução.

    []'s

    LNW

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Mas nesse caso eu teria que contar quantos inputs eu tenho no html?

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Velho deu certo o/o/

    valeu mesmo...

    Salvou minha vida :D

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Visitante
    Este tópico está impedido de receber novos posts.
    Entre para seguir isso  





    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

    Direitos autorais

    Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

    ×