Форум: "Основная";
Текущий архив: 2005.02.13;
Скачать: [xml.tar.bz2];
ВнизПеренос координат в центр Image... Найти похожие ветки
← →
Dir (2005-01-30 01:27) [0]Народ!Помогите!
На форме есть Image и Edit.
В Edit выводятся координаты мыши на Image.
Но нуль - левый верхний угол.
Как перенести начало координат в другую точку, например в середину Image. То есть, чтобы в Edit выводились координаты относительно новой точки?
Спасибо за внимание.
← →
Andy BitOff © (2005-01-30 01:32) [1]Вычти из твоих координат ширину/высоту имаджа деленную на 2.
Вообще то это надо бы понимать.
← →
olookin © (2005-01-30 01:32) [2]Я лично не понял...
← →
Andy BitOff © (2005-01-30 01:36) [3]olookin © (30.01.05 01:32) [2]
Я лично не понял...
А чего не понял-то?
← →
Dir (2005-01-30 01:49) [4]Не..
Глючит, почему-то!
Может, я не правильно поясняю!
Проблема , если подробнее, такая:
на Image нарисован прямоугольник,
координаты должны показываться только в области него и
нуль должен быть в левом нижнем углу прямоугольника!
Но прямоугольник не обязательно по центру.
Во, вроде так!
← →
olookin © (2005-01-30 03:04) [5][3] Andy BitOff © (30.01.05 01:36)
А ничего не понял... Именно - вопроса не понял...
← →
olookin © (2005-01-30 03:05) [6][4] Dir (30.01.05 01:49)
Нуль чего?
← →
ninja © (2005-01-30 11:34) [7]
const
R: TRect = (Left: 30; Top: 30; Right: 150; Bottom: 100);
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Image1.Canvas.FillRect(Rect(0,0,Image1.Width, Image1.Height));
Image1.Canvas.Rectangle(R);
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if (X>=R.Left) and (X<=R.Right) and (Y<=r.Bottom) and (Y>=r.Top) then
Edit1.Text:="X: " + IntToStr(X - R.Left) + "; Y: " + IntToStr(R.Bottom - Y)
else Edit1.Text:="";
end;
так чтоля?
← →
Dir (2005-01-30 11:38) [8]Начало координат должно быть перенесено в левый нижний угол прямоугольника. Тоесть координаты относительно фигуры, как в графических приложениях, а не относительно окна рисования.
← →
ninja © (2005-01-30 11:47) [9]
> координаты должны показываться только в области него и
> нуль должен быть в левом нижнем углу прямоугольника!
а я что написал?
или ты хочешь, чтобы при событии MouseMove в качестве X и Y передавались координаты относительно прямоугольника? :)
← →
Dir (2005-01-30 17:15) [10]Ninja, спасибо за help!
Вроде пашет!
← →
Просто Джо © (2005-01-31 04:09) [11]
> Вроде пашет!
Ну, это не надолго...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.02.13;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.1 c