TImage - capturar somente a área da figura
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 ?
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
Curtidas 0
Respostas
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
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á.
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
22/11/2007
e não dá para ajustar o Timage para o tamanho da image?
GOSTEI 0
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
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
22/11/2007
Ótima idéia...mas como eu faço isso ? :oops:
GOSTEI 0
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:
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.
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
22/11/2007
Perfeito Vitor... funcionou como eu queria.
Obrigado mesmo.
Flw
Obrigado mesmo.
Flw
GOSTEI 0