![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перенос координат в центр Image... [D6, Win95/98]
Dir © (2005-01-30 01:27:00)Народ!Помогите!
На форме есть Image и Edit.
В Edit выводятся координаты мыши на Image.
Но нуль - левый верхний угол.
Как перенести начало координат в другую точку, например в середину Image. То есть, чтобы в Edit выводились координаты относительно новой точки?
Спасибо за внимание.
Просто Джо (2005-01-31 04:09:00) [1]
> Вроде пашет!
Ну, это не надолго...
Dir (2005-01-30 17:15:00) [2]Ninja, спасибо за help!
Вроде пашет!
ninja (2005-01-30 11:47:00) [3]
> координаты должны показываться только в области него и
> нуль должен быть в левом нижнем углу прямоугольника!
а я что написал?
или ты хочешь, чтобы при событии MouseMove в качестве X и Y передавались координаты относительно прямоугольника? :)
Dir (2005-01-30 11:38:00) [4]Начало координат должно быть перенесено в левый нижний угол прямоугольника. Тоесть координаты относительно фигуры, как в графических приложениях, а не относительно окна рисования.
ninja (2005-01-30 11:34:00) [5]
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;
так чтоля?
olookin (2005-01-30 03:05:00) [6][4] Dir (30.01.05 01:49)
Нуль чего?
olookin (2005-01-30 03:04:00) [7][3] Andy BitOff © (30.01.05 01:36)
А ничего не понял... Именно - вопроса не понял...
Dir (2005-01-30 01:49:00) [8]Не..
Глючит, почему-то!
Может, я не правильно поясняю!
Проблема , если подробнее, такая:
на Image нарисован прямоугольник,
координаты должны показываться только в области него и
нуль должен быть в левом нижнем углу прямоугольника!
Но прямоугольник не обязательно по центру.
Во, вроде так!
Andy BitOff (2005-01-30 01:36:00) [9]olookin © (30.01.05 01:32) [2]
Я лично не понял...
А чего не понял-то?
Andy BitOff (2005-01-30 01:32:00) [10]Вычти из твоих координат ширину/высоту имаджа деленную на 2.
Вообще то это надо бы понимать.
olookin (2005-01-30 01:32:00) [11]Я лично не понял...