Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.02;
Скачать: CL | DM;

Вниз

как можно узнать, на какой пиксель TImage кликнул юзер?   Найти похожие ветки 

 
0bsid ©   (2006-01-25 15:32) [0]

как можно узнать, на какой пиксель TImage кликнул юзер?
учитывая, что изображение масштабируемое


 
grouzd[E]v ©   (2006-01-25 15:51) [1]

OnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
ага?

---
... we are walking on a thin line and you better avoid the risk ...


 
0bsid ©   (2006-01-25 16:32) [2]

спасибо конечно за внимание :)
я наверно немного неправильно задал вопрос
точнее какой пиксель TImage.Bitmap

похоже придётся учитывать размеры самого TImage :( гемор...


 
grouzd[E]v ©   (2006-01-25 17:14) [3]

То есть у тебя Bitmap вписан в Image? Что может быть проще! =)
bmp_x := round(img_x / img_width * bmp_width);
bmp_y := round(img_y / img_height * bmp_height);

---
... we are walking on a thin line and you better avoid the risk ...


 
0bsid ©   (2006-01-25 18:03) [4]

спасибо ещё раз :)
но всё немного сложнее. изображение с сохраняемыми пропорциями, поэтому ещё по бокам остаётся пустота
вобщем покарпел, сделал как надо. сложно правда

var
 mulx : real;
 muly : real;
 clX,clY : integer;
begin

 mulx:=imgmm.Width/Imgmm.Bitmap.Width;
 muly:=imgmm.height/Imgmm.Bitmap.height;

 clx:=trunc((x-(Imgmm.Width-muly*ImgMM.Bitmap.Width)/2)/muly);
 cly:=trunc((y-(Imgmm.Height-mulx*ImgMM.Bitmap.Height)/2)/mulx);

 if clx<0 then clx:=0;
 if cly<0 then cly:=0;
 if clx>ImgMM.Bitmap.Width  then clx:=ImgMM.Bitmap.Width;
 if cly>ImgMM.Bitmap.Height then cly:=ImgMM.Bitmap.Height;


 
grouzd[E]v ©   (2006-01-25 19:47) [5]

Что-то странное =)
И почему в формуле рассчета clx есть muly? (просто интересно)
Впрочем, если это работает как надо, поздравляю =)

---
... we are walking on a thin line and you better avoid the risk ...


 
grouzd[E]v ©   (2006-01-25 19:52) [6]

Нет, блин, я проверил, мой работает. Или я неправильно понял задачу?

---
... we are walking on a thin line and you better avoid the risk ...


 
0bsid ©   (2006-01-26 09:32) [7]

изображение Proporpotional:=True изза чего при изменении TImage появляются поля то сверху, то снизу и это нужно тоже учитывать


 
0bsid ©   (2006-01-26 10:06) [8]

изображение Proporpotional:=True изза чего при изменении TImage появляются поля то сверху, то снизу и это нужно тоже учитывать


 
grouzd[E]v ©   (2006-01-26 14:02) [9]

Proporpotional:=True может быть, я на D5 езжу, там такого вроде нет - я думал что речь о Stretch =)

---
... we are walking on a thin line and you better avoid the risk ...



Страницы: 1 вся ветка

Текущий архив: 2006.07.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.028 c
15-1149585583
Palladin
2006-06-06 13:19
2006.07.02
hosting.rbc.ru


15-1149523013
Piter
2006-06-05 19:56
2006.07.02
Догвилль


15-1149159861
boriskb
2006-06-01 15:04
2006.07.02
5 худших продуктов в IT за все время.


2-1150013984
Urvin
2006-06-11 12:19
2006.07.02
Как узнать количество МИЛЛИсекунд с 00:00:00 01.01.1970


2-1150115472
Gemorroi
2006-06-12 16:31
2006.07.02
Хлопцы, помогите пожалуста в Delphi сделать.