Ir ao conteúdo
  • Cadastre-se

Alterando valor de radio bottun


Visitante: lml.lucas

Posts recomendados

Visitante: lml.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>

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
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!"...

Link para o comentário
Compartilhar em outros sites

Visitante: lml.lucas
 

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

Link para o comentário
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

Link para o comentário
Compartilhar em outros sites

Visitante: lml.lucas
 

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>

Link para o comentário
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

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...