![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как можно узнать, на какой пиксель TImage кликнул юзер? [D7, WinXP]
0bsid © (2006-01-25 15:32:00)как можно узнать, на какой пиксель TImage кликнул юзер?
учитывая, что изображение масштабируемое
grouzd[E]v (2006-01-26 14:02:00) [1]Proporpotional:=True может быть, я на D5 езжу, там такого вроде нет - я думал что речь о Stretch =)
---
... we are walking on a thin line and you better avoid the risk ...
0bsid (2006-01-26 10:06:00) [2]изображение Proporpotional:=True изза чего при изменении TImage появляются поля то сверху, то снизу и это нужно тоже учитывать
0bsid (2006-01-26 09:32:00) [3]изображение Proporpotional:=True изза чего при изменении TImage появляются поля то сверху, то снизу и это нужно тоже учитывать
grouzd[E]v (2006-01-25 19:52:00) [4]Нет, блин, я проверил, мой работает. Или я неправильно понял задачу?
---
... we are walking on a thin line and you better avoid the risk ...
grouzd[E]v (2006-01-25 19:47:00) [5]Что-то странное =)
И почему в формуле рассчета clx есть muly? (просто интересно)
Впрочем, если это работает как надо, поздравляю =)
---
... we are walking on a thin line and you better avoid the risk ...
0bsid (2006-01-25 18:03:00) [6]спасибо ещё раз :)
но всё немного сложнее. изображение с сохраняемыми пропорциями, поэтому ещё по бокам остаётся пустота
вобщем покарпел, сделал как надо. сложно правда
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 17:14:00) [7]То есть у тебя 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 16:32:00) [8]спасибо конечно за внимание :)
я наверно немного неправильно задал вопрос
точнее какой пиксель TImage.Bitmap
похоже придётся учитывать размеры самого TImage :( гемор...
grouzd[E]v (2006-01-25 15:51:00) [9]OnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
ага?
---
... we are walking on a thin line and you better avoid the risk ...