Fórum TImage - capturar somente a área da figura #349413

22/11/2007

0

Agora tenho a seguinte situação:

Meu componente TImage tem o tamanho de width = 584 e Height = 542 e a imagem que eu abro tem um tamanho de width = 325 e Height = 323, acontece que posso abrir outras imagens de outros tamanhos.

O que eu preciso é que somente pegue as coordenadas que estiverem sobre a figura descartando as que estão fora, caso o usuário clicar fora da imagem.

Como eu faço isso ?


Marcos.gandin

Marcos.gandin

Responder

Posts

22/11/2007

Edilcimar

coloque a propriedade stretch para true, aí a imagem vai ficar ocupando todo o espaço do Timage


Responder

Gostei + 0

22/11/2007

Marcos.gandin

Edilcimar...

Não posso fazer isso porque senão as coordenadas que já estou capturando não dão certo. Os valores não são os mesmos.
Já tentei fazer isso mas infelizmente não dá.


Responder

Gostei + 0

22/11/2007

Edilcimar

e não dá para ajustar o Timage para o tamanho da image?


Responder

Gostei + 0

22/11/2007

Marcos.gandin

Como eu já falei no início, eu vou poder abrir imagens de outros tamanhos e portanto não posso me focar só no tamanho da imagem que estou testanto.


Responder

Gostei + 0

22/11/2007

Edilcimar

quando falei em mudar o tamanho do Timage, me referi a fazer isto para cada uma das imagens, em tempo de execução


Responder

Gostei + 0

22/11/2007

Marcos.gandin

Ótima idéia...mas como eu faço isso ? :oops:


Responder

Gostei + 0

22/11/2007

Vitor Alcantara

Vi nos outros tópicos que você abriu que a sua tImage ta em um panel e sua propriedade align está AlClient.
Tenta isso pra ver.
Seta a propriedade da image para align = AlNone,
Como o coleca Edilcimar falou na hora de redimensionar a imagem em tempo de execução.
Seta a propriedade da imagem AutoSize = True.

Na hora de carregar a imagem tenta posicionar ela no meio do panel, isso irá fazer com que se pareça a propiedade align alclient.

Ex:

   Image.Left := (Panel.Width div 2) - (Image.Width div 2);
   Image.Top := (Panel.Height div 2) - (Image.Height div 2);


Desse modo o evento MouseDow só irá disparar quando você realmente clicar sobre a figura (pois a mesma estára redimensionada para o mesmo tamanho), desse modo só irá pegar as cordenadas exata da figura.


Responder

Gostei + 0

22/11/2007

Marcos.gandin

Perfeito Vitor... funcionou como eu queria.

Obrigado mesmo.

Flw


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar