Ir para conteúdo

POWERED BY:

Arquivado

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

mendes15

Saber a imagem a carregar

Recommended Posts

Galera, sou novo no pedaço e gostaria de uma ajuda de vcs que possuem mais tempo de experiencia do que eu.

Minha duvida é o seguinte, possuio 32 Timage, com tag's de 1 a 32, tenho um popup menu que está ligado as todas as 32 imagem, contendo 6 opções.

Preciso saber qual foi a imagem clicada e carregar sua tag para saber qual a função deverá ser executada correspondente a imagem clicada.

 

procedure Tfrm_Cliente.Cor1Click(Sender: TObject);

var fotoCarre:string;

begin

tipo:='E'; // tipo de controle, apenas para saber qual o tipo de execução.

numerotag:= (Sender as TImage).Tag; // aki é que eu preciso pegar o tag da imagem que foi clicada.

fotoCarre:= carregarDente(tipo, IntToStr(numerotag)); // aki eu chamo uma função que faz as conversões e devolve imagem correspondente ao tipo de controle.

(Sender as TImage).Picture.LoadFromFile(fotoOdonto+'\'+fotoCarre); //aki eu preciso carregar a nova imagem conforme as especificações da imagem clicada (entre as 32) e tipo escolhido.

 

end;

 

 

acho que consegui explicar o que eu preciso, fico no aguardo da ajuda de vcs.

 

vlw

 

Ricardo Mendes

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode usar o evento OnContextPopUp do TImagem, vinculando todos eles a um mesmo evento, podendo declarar na seção private da unit uma variável que vai receber o nome do TImage precionado, algo como:

 

procedure TForm1.Image1ContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean);
begin
componenteImagem:=TImage(Sender).Name;
end;

Podendo depois nos eventos fazer:

 

procedure Tfrm_Cliente.Cor1Click(Sender: TObject);
var
	fotoCarre:string;
begin
tipo:='E';
numerotag:=TImage(FindComponent(componenteImagem)).Tag;
fotoCarre:=carregarDente(tipo, IntToStr(numerotag));
TImage(FindComponent(componenteImagem)).Picture.LoadFromFile(fotoOdonto+'\'+fotoCarre);
end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera eu andei falando com amigos e fiz da seguinte maneira

 

Não esqueça de declarar uma variavel do tipo stringo com o nome de sMsg;

 

procedure Tfrm_Cliente.PopupMenu1Popup(Sender: TObject);

var I: integer;

fotoCarre:string;

begin

 

//ImagemNumero.Caption := 'Imagem Número '+IntToStr(PopupMenu1.Tag);

try

for I := 0 to frm_Cliente.ComponentCount - 1 do begin //Troque Form1 pelo nome do seu form

if (frm_Cliente.Components is TImage) then begin

with (frm_Cliente.Components as TImage) do begin

if Tag = TMenuItem(Sender).Tag then begin

fotoCarre:=carregarDente('E', IntToStr(Tag));

Picture.LoadFromFile(fotoOdonto+'\'+fotoCarre); //Falta setar as varíaveis

end;

end;

end;

end;

except

on E: Exception do begin

sMsg := ' Erro: '+E.Message;

FatalAppExit(0,PChar('Erro ao tentar trocar imagem. '+

'Impossível continuar. O programa será encerrado!'+sMsg));

end;

end;

end;

 

procedure Tfrm_Cliente.imagem01MouseDown(Sender: TObject;

Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

begin

PopupMenu1.Tag := TImage(Sender).Tag;

end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.