Главная страница
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.046 c
15-1149578469
Der Nechk@ssoff
2006-06-06 11:21
2006.07.02
iKernel.exe


15-1149302214
TSingle
2006-06-03 06:36
2006.07.02
MinSingle: Single = 1.5e-45; Почему?


6-1140291759
Jimmy
2006-02-18 22:42
2006.07.02
Игра под модем


1-1147985639
allrussia
2006-05-19 00:53
2006.07.02
Спецам по Excel: Размер примечания


2-1150438347
Мурзилка
2006-06-16 10:12
2006.07.02
как пользоваться таймером?