Форум: "Media";
Текущий архив: 2006.07.02;
Скачать: [xml.tar.bz2];
Внизкак можно узнать, на какой пиксель 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 вся ветка
Форум: "Media";
Текущий архив: 2006.07.02;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.011 c