|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
05.06.2010, 20:00 | #1 |
Новичок
Джуниор
Регистрация: 05.06.2010
Сообщений: 1
|
Беда с координатами
На форме размешена картинка 300х600. По всей плошади картинке разбросано n-компонентов с текстом. С каждого из n-компонентов сняты две координаты Left и Top. к ним прибавлены координаты верхнего левого угла картинки. Это необходимо что бы верно рассчитать координаты n-элементов от УГЛА ФОРМЫ.
Затем событием нажатия на картинку мы снимаем координаты мыши от УГЛА ЭКРАНА! Затем начинаю сравнивать координаты и получаеться, что координаты из одной точки снятые при помощ свойств Left и Top и координатами X и Y снятыми мышью различабться на 15 и 180 пикселей соответсвенно! Вопрос: Что делать? Как уровнять точку отсчета? |
05.06.2010, 23:55 | #2 |
Участник клуба
Регистрация: 12.08.2008
Сообщений: 1,977
|
Рисунок бы приложили, понятней проблема бы была. А то неопределено, откуда цифры 15 и 180. Это Top\Left формы? Или ...?
И не сомневайся даже ... отдых - кайф, работа - лажа!
|
11.06.2010, 12:47 | #3 |
Delphi, OpenGL API
Форумчанин
Регистрация: 29.03.2010
Сообщений: 152
|
В том то все и дело, что Left и Top компонентов у вас идут от угла формы а координаты мыши - от угла экрана. Отсюда наверное и разница в 15 и 180. Напишите код вашей программы, а то ничего не понятно.
|
11.06.2010, 14:55 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
ClientToScreen для перевода оконных координат в экранные.
ScreenToClient наоброт. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
04.07.2010, 16:54 | #5 |
Уважаемый
Форумчанин
Регистрация: 04.07.2010
Сообщений: 318
|
На форме компонент ScrollBox, в нем компонент Image(5x5), он подвижный, двигаю его свойствами Top и Left этого Image. Все нормально пока не прокрутишь ScrollBars. Отчитываются координаты Image от краев видимой части ScrollBox-а. А мне нужно, что от макимально левого или верхнего края ScrollBox-а (т.е. истинные "0,0")... Как это можно сделать?
Поясню: Например, на этом сайте мы же прокручиваем полосу справа, чтобы посмотреть, что внизу делается)))). Так вот, координаты отчитываются от верхнего края ВИДИМОЙ области, а нужно чтобы от самого верха.
даешь высокое напряжение
Последний раз редактировалось Vova777; 04.07.2010 в 16:58. Причина: добавление |
04.07.2010, 17:06 | #6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
киньте внутрь скрола панель, и уже на нее все остальное.
если надо изменяйте размер панели . Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
04.07.2010, 18:06 | #7 |
Уважаемый
Форумчанин
Регистрация: 04.07.2010
Сообщений: 318
|
Внутри скрола есть еще 4 больших Image, на них как бы фон грузится, а маленький на слой выше их. Они большие, так что у меня по-любому прокрутка присутствует. Как прокрутишь, так и начинается.... Нужно чтобы от самого верхнего левого угла скрола отсчитывать. Может как нибудь попробовать от угла картинки (0,0) отсчитывать? Как бы это реализовать?....
Или так: внутреннее смещение скрола относительно его основной нулевой точки минус положение по левому краю или верхнему? Только как реализовать это?
даешь высокое напряжение
Последний раз редактировалось Vova777; 04.07.2010 в 18:12. Причина: добавление |
13.07.2010, 00:41 | #8 |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
я могу попробовать помочь, но мне нужен либо код ,а лучше всего вложение. и ещё твоя аська для более быстрого освоения твоего кода. всё делается на метсенатской основе))))
Если помог, проси поставить минус. Будь оригинален!
|
17.07.2010, 18:54 | #9 |
Уважаемый
Форумчанин
Регистрация: 04.07.2010
Сообщений: 318
|
Зачем код? Все предельно просто представить! Но я уже решил эту задачу так:
1)начали движение 2)получили координаты прибытия 3)отняли от них положение скроллеров и получили то что нужно Лучше скажи, ты алгоритм поиска пути не пробовал написать? Вот тут помощь нужна, есть какой-то образец кода, осталось обработать под мою прогу, тут и застрял...
даешь высокое напряжение
|
20.07.2010, 01:57 | #10 |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
зачем поиск? просто вставь OpenDialog а дальше так:
добавляешь три стандартных модуля: ExtCtrls, FileCtrl, Jpeg. и 4 переменные: aPath: string; // каталог, который выбрал пользователь aSearchRec : TSearchRec; // информация о файле Pictures : TStringList; // список иллюстраций r: integer; // номер иллюстрации Код:
Если помог, проси поставить минус. Будь оригинален!
Последний раз редактировалось Rin; 20.07.2010 в 01:58. Причина: очепятка |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
беда | Морячок | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 05.06.2010 15:41 |
беда на форме | lamerk | Microsoft Office Access | 2 | 29.11.2009 18:28 |
Беда не приходит одна! | Tayfun | Свободное общение | 6 | 30.12.2007 07:58 |