TImage - capturar somente a área da figura

Delphi

22/11/2007

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

Curtidas 0

Respostas

Edilcimar

Edilcimar

22/11/2007

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


GOSTEI 0
Marcos.gandin

Marcos.gandin

22/11/2007

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á.


GOSTEI 0
Edilcimar

Edilcimar

22/11/2007

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


GOSTEI 0
Marcos.gandin

Marcos.gandin

22/11/2007

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.


GOSTEI 0
Edilcimar

Edilcimar

22/11/2007

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


GOSTEI 0
Marcos.gandin

Marcos.gandin

22/11/2007

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


GOSTEI 0
Vitor Alcantara

Vitor Alcantara

22/11/2007

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.


GOSTEI 0
Marcos.gandin

Marcos.gandin

22/11/2007

Perfeito Vitor... funcionou como eu queria.

Obrigado mesmo.

Flw


GOSTEI 0
POSTAR