Fórum Evento on click em componente criado em tempo de execução #564484
23/10/2016
0
Eu preciso da ajuda de vocês pra resolver uma questão aqui... Como verão no print abaixo, eu tenho uma tela onde são criados alguns Panels em tempo de execução. Ate aí tudo tranquilo... Cada um deles recebe um nome, e todo o layout certinho.
O que preciso fazer é que ao clicar sobre um desses Panel, ele receba uma imagem de confirmação, para mostrar que aquela pessoa, daquele panel está selecionada...
Como faço isso?
Segue o link do print: [url]http://prnt.sc/cxzbgn[/url]
Valeu galera!
Gustavo Oliveira
Curtir tópico
+ 0Posts
24/10/2016
Robson Morais
Botao.Glyph.LoadFromFile(caminho\\imagem.bmp);
ou colocar um imageList
Botao.Glyph := nil; ImageList.GetBitmap(INDICE_DA_IMAGEM, Botao.Glyh);
Gostei + 0
24/10/2016
Gustavo Oliveira
Não é um botao, e sim um panel que vai receber uma imagem;
E segundo, como vou identificar que quero a imagem no panel que estou clicando? Pq cada panel tem que ter seu próprio onclick!
Valeu já pela ajuda brother
Gostei + 0
24/10/2016
Robson Morais
procedure TForm1.Image1Click(Sender: TObject);
var CONFIRMADO :String;
begin
if CONFIRMADO = 'SIM' then
begin
(Sender as TImage).Picture.LoadFromFile('c:\\imagens\\nao.png');
CONFIRMADO := 'NAO';
end
else
begin
(Sender as TImage).Picture.LoadFromFile('c:\\imagens\\sim.png');
CONFIRMADO := 'SIM';
end
end;Gostei + 0
24/10/2016
Gustavo Oliveira
Gostei + 0
24/10/2016
Gustavo Oliveira
Acho que não expliquei bem o que quero né kkkk.... vamos la!
Eu tenho uma tela onde digito o código de uma pessoa... Por exemplo, 1313. Quando confirmo este código, ele verifica pra ver se o código está correto e na tela seguinte exibe todas as pessoas relacionadas àquela que digitou o código (esposa, marido, filho, pai...).
Até aqui tudo certo, foi simples de fazer. Agora eu tenho que, dentro das pessoas relacionadas que foram exibidas, selecionar quem está entrando junto com ele. Por isso criei vários panels, cada um se refere a um relacionado.
Mas pensei aqui em ao invés de criar uma imagem de confirmação, apenas mudar a cor do panel que eu clicar. Além disso preciso capturar algumas informações deste panel ao clicar sobre ele.
A dúvida cruel então é: Como faço para identificar que estou clicando sobre o panel1, por exemplo, mudo a cor dele e capturo informaçoes? Tentei chamar uma função onclick que mudava a cor do panel mas ele sempre muda a cor do último panel criado...
Deu pra entender? rs valeu
Gostei + 0
24/10/2016
Robson Morais
// cria o edit do codigo do aluno
tEdits := TTexto.Create( Self );
with tEdits do
begin
Cursor := crCross;
Parent := sbxPra;
Top := top_edit;
Left := left_edit;
Name := 'ed_' + IntToStr( a ) + FormatDateTime( 'hhnn', HoraAtual );
Width := 55;
//Enabled := False;
Text := '';
OnMouseMove:= MudarCursor;
Height := 23;
if PraticaLibera = true then
begin
ReadOnly := True;
OnDblClick := PreencheEdit;
OnKeyDown := BloqueioDesbloqueio;
end
else
if PraticaLibera = false then
begin
ReadOnly := true;
end;
// AutoSize := False;
with Font do
Begin
Name := 'Courier New';
Size := 8;
Style := [fsBold];
end;
end;repare que no OnDblClick eu tenho uma função PreencheEdit;
então assim eu pego o nome:
( Sender as TTexto ).Name
Então para mudar a cor do seu panel clicado seria :
( Sender as TPanel ).Color := clred;
ou caso eles tenha um nome...
o que uso....para ter uma ideia
TTexto( FindComponent( 'ed_' + IntToStr( nDia ) + FormatDateTime( 'hhnn', LeDados( 'Horario' ) ) ) ).Text
posta o código que você usa para criar os panels, caso não consiga
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)