Fórum FindComponent em todo o form #255367
21/10/2004
0
Como localizar um componente, dentro do form, indepentemente de onde ele estiver? Sem usar o For vI = 1 to TComponents.... Gostaria de ter um find direto...
Obrigado.
Crpavao
Curtir tópico
+ 0Post mais votado
30/06/2015
Grande abraço,
Carlos Pavão
Gostei + 1
Mais Posts
21/10/2004
Tap_pedroso
Gostei + 0
21/10/2004
Crpavao
If assigned(vRadio) Then
showmessage(´achou´)
Tudo isto funciona mas qdo troco o showmessage por :
vRadio.Checked := True dá acess violation.
Dá prá saber?
Obrigado
Gostei + 0
21/10/2004
Paulo_amorim
Você está fazendo [b:229ee49a15]vRadio[/b:229ee49a15].FindComponent ? Creio que o correto seria
vRadio := nil; vRadio := Form1.FindComponent(´RA123´); vRadio.Checked := Assigned(vRadio);
Espero que funcione
Até+
Gostei + 0
21/10/2004
Crpavao
Dá erro pois vRadio está definico como tradioButton e, qdo usado o form1.component dá incompatibilidade entre tradiobutton e component.
Gostei + 0
21/10/2004
Paulo_amorim
Desculpe, eh necessário que se faça um TypeCast:
vRadio := TRadioButton( Form.FindComponent(´RA123´) );
Espero que ajude
Até+
Gostei + 0
21/10/2004
Crpavao
O comando funcionou mas no assigned dá falso...
Tá f.., não?
Gostei + 0
21/10/2004
Fórum Vini
O comando funcionou mas no assigned dá falso...
Tá f.., não?[/quote:4ee2e85e13]
Olá,
se dá falso é porque ele não achou..
Certifique-se de estar definindo o form como o Owner do componente na hora de criá-lo(Owner é diferente de Parent) :wink:
rd:= TRadioButton.Create(Form1); //Nesse exemplo Form1 é o Owner de rd
Espero ter ajudado,
Vinicius;
Gostei + 0
21/10/2004
Crpavao
Obrigado pela mão, mas o owner do radiobutton é um Painel, que foi criado em tempo de execução e não quero referenciá-lo (usá-lo). Dá prá encontrar este radiobutton sem indicar o Painel? Pois aí também este painel está dentro de um tabsheet.
Gostei + 0
21/10/2004
Crpavao
Gostei + 0
21/10/2004
Fórum Vini
Obrigado pela mão, mas o owner do radiobutton é um Painel, que foi criado em tempo de execução e não quero referenciá-lo (usá-lo). Dá prá encontrar este radiobutton sem indicar o Painel? Pois aí também este painel está dentro de um tabsheet.[/quote:0ad687cf3c]
Não vejo motivo para você não querer usá-lo, mas então você vai ter que criar o RadioButton tendo o formulário como Owner, então o código irá funcionar normalmente.. observe que isso não impedirá que o RadioButton fique dentro do Panel, pois quem determina isso é a propriedade Parent, o Owner serve somente para o objeto pai destruir os filhos quando ele for destruído tbm...
Gostei + 0
22/10/2004
Paulo_amorim
COmo bem explicou o Vinicius, não tem problema deixar o TRadioButton no painel com Owner no Form, desde que o Parent seja o Painel
Creio que colocando o Form como Owner ele acha certinho...
Até+
Gostei + 0
22/10/2004
Crpavao
Qq coisa estamos aqui.
Obrigado pela força.
Té outra..
Gostei + 0
30/06/2015
Mário Filho
var
vRadio: TRadioButton;
begin
vRadio := nil;
vRadio := TRadioButton(imp_guias_bolo.FindComponent('QRLabel'+trim(inttostr(i1))));
if Assigned(vRadio) then
TRadioButton(imp_guias_bolo.FindComponent('QRLabel'+trim(inttostr(i1)))).Checked:=true
else
TRadioButton(imp_guias_bolo.FindComponent('QRLabel'+trim(inttostr(i1)))).Checked:=false;
end;
Gostei + 0
30/06/2015
Mário Filho
*// Corrigindo:
*// o form1 deve estar declarado na sua Uses lá em cima no inicio do programa
var
vRadio: TRadioButton;
begin
vRadio := nil;
vRadio := TRadioButton(Form1.FindComponent('QRLabel'+trim(inttostr(i1))));
if Assigned(vRadio) then
TRadioButton(Form1.FindComponent('QRLabel'+trim(inttostr(i1)))).Checked:=true
else
TRadioButton(Form1.FindComponent('QRLabel'+trim(inttostr(i1)))).Checked:=false;
end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)