Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Звук, графика и видео > Пишу эмулятор сборки ПК |
Автор: Zdvig 27.4.2006, 12:38 |
Пишу эмулятор сборки ПК, делать думаю так, есть картинка материнской платы, но она не цельная, а собранная из кучи Images. Нужно ставить элементы ПК на мат. плату, например вставить процессор. Есть картинка процессора, я ее перетаскиваю, на материнскую плату, а точнее на конкретный "кусок" (Image) мат. платы и дальше определяю, если image1 находится над image 2, то выполняется действие. Но мне кажется это очень карявый способ, например, он совершенно не держит разрешение 600 Х 800, все Image сдвигаются как попало. Каким способом можно еще сделать подобное? Просто на написание этой программы у меня месяц, в который входит сессия... (Преподам видно нравится давать задания в притык ![]() ![]() |
Автор: Alexeis 27.4.2006, 13:22 |
Способ очень хороший, а главное простой. А простота многово стоит ![]() В чем это заключается - при нажатии мыши убегают от нее что-ли? Я думаю, что как быстрый вариант решения - динамически менять разрешение экрана, чтоб всегда было родное. Лучше, конечно, исправить ошибку в програме, чем бороться со следствием. |
Автор: Zdvig 27.4.2006, 13:30 |
alexeis1, убегают кусочки самой мат платы. По ходу сразу вопрос, как определить, что картинка находится над картинкой, даже хоть немного ее "задевая"? У меня сейчас проверяются координаты верхнего левого и верхнего правого углов (cв-ва left и Top) картинок и только при их совпадении происходит событие, но это хорошо только для квадратных картинок. |
Автор: Snowy 27.4.2006, 17:25 |
А OnDragOver не подходит? |
Автор: Zdvig 27.4.2006, 18:23 |
alexeis1, смещаются, если запустить программу с низким разрешением. Части мат. платы вообще не двигаются, это просто image подогнанные на форме. Snowy, по началу так и делал, но мне нужно, чтобы перемещалась сама картинка по форме вслед за курсором. |
Автор: Alexeis 28.4.2006, 09:02 |
Zdvig, как я понаял Image1 ратягивается по форме, другими словами, при изменении разрешения экрана меняетются размеры формы, а этого не должно происходить. Кроме того если вы используйте свойство Anchors - знайте что привязка к bottom работает нестабильно при различных разрешениях экрана. Попробуйте изменить свойство scaled у элементов формы на false, тогда форма и элемены перестанут реагировать на изменение числа точек на дюйм(это чило может менятся на разных компьютерах) |
Автор: Zdvig 29.4.2006, 13:34 |
alexeis1, да, спасибо, сделал! |
Автор: s-mike 30.4.2006, 18:26 | ||
Работает нормально, вот только если Anchors'ы задавались компонентам, лежащим непосредственно на форме, то могут быть проблемы, связанные с разной шириной рамки окна или компонентов в Win9x/WinXP. Anchors'ы почему-то привязываются к ширине всего контрола/окна, а не его клиентской области. |