Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.023 c
1-1148459568
webpauk
2006-05-24 12:32
2006.07.02
Передача сообщения


2-1149764652
Megabyte
2006-06-08 15:04
2006.07.02
Программное создание пользователя в MSSQL


11-1129717517
DmiSb
2005-10-19 14:25
2006.07.02
Как проверить, кто получил фокус при его потере в EditBoxe ?


15-1149356382
lookin
2006-06-03 21:39
2006.07.02
В Скайп поговорить никто не желает?


9-1131679382
VolanD666
2005-11-11 06:23
2006.07.02
Проблема с QuadTree




   Наверх