ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Executar FindComponent em outro form

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
rgtt1552
Novato
Novato


Registrado: Quarta-Feira, 30 de Outubro de 2019
Mensagens: 17

MensagemEnviada: Qua Nov 13, 2019 10:49 pm    Assunto: Executar FindComponent em outro form Responder com Citação

Tenho dois forms: form01 e form02.
Tenho algumas imagens no form01 e um edit com um número no form01.
Queria que, em um botão do form02, pegue o número no edit do form01 e busque a Image+número do edit e oculte essa imagem.
Estou fazendo assim, mas dá erro:

Código:
procedure Tform02Button3Click(Sender: TObject);
var
oculto:TComponent;
begin
oculto := FindComponent('form01.image'+form01.Edit4.text);
TImage(oculto).Visible:=false;
end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 8923
Localização: Sinop-MT

MensagemEnviada: Qui Nov 14, 2019 8:57 am    Assunto: Responder com Citação

deixa ver se entendi:

vc esta no form2, e quer pegar o texto do edit1 q esta no Form1, e esconder a imagem no Form1?

tente isto:

Código:
TImage(Form1.FindComponent(Form1.Edit4.Text)).Visible := False;

_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 2908
Localização: Belo Horizonte - MG

MensagemEnviada: Qui Nov 14, 2019 11:01 am    Assunto: Responder com Citação

Complementando que o Form1 deve estar na memória senão dará o erro de Access Violation.
_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
rgtt1552
Novato
Novato


Registrado: Quarta-Feira, 30 de Outubro de 2019
Mensagens: 17

MensagemEnviada: Qui Nov 14, 2019 11:06 am    Assunto: Responder com Citação

Como eu faria para o Form01 estar na memória? Pois está dando erro de access violation mesmo!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 2908
Localização: Belo Horizonte - MG

MensagemEnviada: Qui Nov 14, 2019 11:12 am    Assunto: Responder com Citação

Neste caso, uma opção é seu Form01 ser criado automaticamente junto com a aplicação.

Vá no menu do Delphi:

Citação:
Project/Options/Forms

Nesta tela deixe o Form01 na lista "Auto-Create Forms".
_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
rgtt1552
Novato
Novato


Registrado: Quarta-Feira, 30 de Outubro de 2019
Mensagens: 17

MensagemEnviada: Qui Nov 14, 2019 11:14 am    Assunto: Responder com Citação

Obrigado pela dica. Mas todos os meus forms estão já do lado esquerdo, onde tem o "auto-create forms".
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
rgtt1552
Novato
Novato


Registrado: Quarta-Feira, 30 de Outubro de 2019
Mensagens: 17

MensagemEnviada: Qui Nov 14, 2019 11:24 am    Assunto: Responder com Citação

Fiz alteração do código que você enviou para esse abaixo e deu certo:

Código:
TImage(form01.findcomponent('image'+form01.edit4.Text)).Visible:=false;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 2908
Localização: Belo Horizonte - MG

MensagemEnviada: Qui Nov 14, 2019 11:24 am    Assunto: Responder com Citação

Fiz uns testes aqui e comigo funcionou com o código abaixo:

Código:
TImage(Form01.FindComponent('Image' + Form01.Edit4.Text)).Visible := False;


Na minha simulação, no texto do Edit4 tem o número 1 e o componente Image se chama Image1.
_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
rgtt1552
Novato
Novato


Registrado: Quarta-Feira, 30 de Outubro de 2019
Mensagens: 17

MensagemEnviada: Qui Nov 14, 2019 11:25 am    Assunto: Responder com Citação

natanbh1 escreveu:
Fiz uns testes aqui e comigo funcionou com o código abaixo:

Código:
TImage(Form01.FindComponent('Image' + Form01.Edit4.Text)).Visible := False;


Na minha simulação, no texto do Edit4 tem o número 1 e o componente Image se chama Image1.


exatamente como eu havia testado agorinha hahahaha..
Muito obrigado!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 2908
Localização: Belo Horizonte - MG

MensagemEnviada: Qui Nov 14, 2019 11:28 am    Assunto: Responder com Citação

Disponha, amigo.
_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB