Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
| blackhard |
21.04.2008 15:31
Сообщение
#1
|
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 151 Пол: Мужской Реальное имя: иван Репутация: 0 |
Задача такова: Написать программу построения чертежей планиметрии "протягиванием" от выбранной точки с изображением ее промежуточного положения с возможностью обозначения точек и проведения стандартных линий в треугольнике.
Как это сделать я впринципе знаю но есть 1 проблема это работа с указателем мыши.Для начала я попытался сделать так чтобы при нажатии на изображение рисовалась линия из текущего положения курсора в положение указателя мыши procedure TForm1.Image1Click(Sender: TObject);получается чето не то линия проводится явно не к указателю мыши.Может это связано с масштабом Image1 (833x533)?подскажите.И еще какие свойства в Tmouse отвечают за нажатые кнопки мыши? |
![]() ![]() |
| andriano |
24.04.2008 7:22
Сообщение
#2
|
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
Ты по-русски напиши, чего хочешь добиться, что для этого делаешь, что получаешь и чем то, что получаешь, отличается от того, что хочешь.
Вполне вероятно этого уже окажется достаточным для того, чтобы найти ошибку. Из того, что я вижу в коде: у тебя ВСЕГДА рисуется белым (подозреваю, так ты стираешь), но НЕ ВСЕГДА - черным. При таком способе рисования, естественно, белых линий и будет рисоваться больше, чем черных. Могу повторить свой совет: ввести дополнительную переменную состояния и сделать конечный автомат. |
| blackhard |
24.04.2008 8:58
Сообщение
#3
|
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 151 Пол: Мужской Реальное имя: иван Репутация: 0 |
Ты по-русски напиши, чего хочешь добиться, что для этого делаешь, что получаешь и чем то, что получаешь, отличается от того, что хочешь. Вполне вероятно этого уже окажется достаточным для того, чтобы найти ошибку. Из того, что я вижу в коде: у тебя ВСЕГДА рисуется белым (подозреваю, так ты стираешь), но НЕ ВСЕГДА - черным. При таком способе рисования, естественно, белых линий и будет рисоваться больше, чем черных. Могу повторить свой совет: ввести дополнительную переменную состояния и сделать конечный автомат. Если по русски то вот чего я хочу: кликаю мышуой по изображению(1 раз) фиксируется точка перемещаю мыш линия от этой точки тянется за указателем мыши кликаю опять по изображению (1раз) линия завершается но мыш не освобождается (те от точки завершения старой линии тянется новая) рисую очередную линию и кликаю по изображению (2раза) линия завершается и мыш освобождается полностью(те можно проводить новую линию не связанную с предыдущим изображением).Ну вот вобщем и все работает все токо ничего невидно ( линии закрашиваются белым).Я понимаю что нужно ввести новую переменную состояния но не понимаю где изменять условие ее истинности? |
blackhard "протягивание" линии от выбранной точки 21.04.2008 15:31
volvo Используй вот это событие:
procedure TForm1.Image1... 21.04.2008 15:46
blackhard блин чето не получается сделать протягивание с изо... 21.04.2008 17:14
volvo Тебе надо отрисовывать не по OnClick, а по OnMouse... 21.04.2008 17:44
blackhard
Тебе надо отрисовывать не по OnClick, а по OnMous... 21.04.2008 19:32
blackhard Надеюсь последний вопрос :) Как очистить изображе... 21.04.2008 20:35
volvo Image1.Canvas.Brush.Color := clRed; // Здесь зад... 21.04.2008 20:39
blackhard А как можно сделать чтоб при 1ом нажатии накнопку ... 22.04.2008 16:30
blackhard И еще 1 вопрос как можно сделать чтобы новая линия... 22.04.2008 23:01
andriano 1. Ввести состояние (см.конечные автоматы) и отсле... 23.04.2008 8:09
blackhard
Рисовать ручками, проверяя, что та точка, котору... 23.04.2008 15:02
andriano
Чтото не совсем понимаю как это реализовать можно... 23.04.2008 19:26
blackhard
Рисуешь линию по точкам (например, алгоритмом Бре... 24.04.2008 0:00
andriano Сэр знаком с таким знаком препинания как запятая?
... 24.04.2008 19:01
blackhard
Сэр знаком с таким знаком препинания как запятая?... 24.04.2008 19:27
blackhard Вот процедура для рисования линии по пикселям.
pro... 25.04.2008 11:28
andriano Надо не узнавать цвет пикселя на фоне, а заливать ... 25.04.2008 16:30
blackhard
Надо не узнавать цвет пикселя на фоне, а заливать... 25.04.2008 19:18
andriano Зачем еще раз что-то УЗНАВАТЬ, что и так ЗНАЕШЬ? 25.04.2008 20:03
blackhard Ну вот основную часть я сделал теперь все рисуетс... 27.04.2008 22:27
andriano Наверное, надо анализировать не потом, а сразу.
Со... 28.04.2008 6:41
blackhard Вопрос конечно не совсем по Delphi, но по задаче.М... 28.04.2008 20:31
andriano Честно говоря, не совсем понятно, что в денном кон... 28.04.2008 21:08
blackhard И всетаки может ктонибудь поможет вывести формулу ... 29.04.2008 23:16
andriano Очевидно, точка, до которой идет высота, должна ле... 30.04.2008 6:13
#$# PaVeL #$# Хотел бы посоветовать использовать TPaintBox, a HE... 2.05.2008 9:21![]() ![]() |
|
Текстовая версия | 10.12.2025 21:01 |