|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.04.2020, 18:46 | #1 |
Пользователь
Регистрация: 14.04.2020
Сообщений: 11
|
Нужна помощь с редактором изображений
Делаю мини-редактор изображений. Необходимо сделать опцию, чтобы при ее выборе пользователь отмечал мышкой две точки на изображении, эти точки являются левым верхним и правым нижним углами прямоугольника,этот прямоугольник нужно преобразовать в ЧБ цвет.
Проблема состоит в том, что я не могу корректно отловить нажатия мыши. Сделал так, что после выбора пользователем этой опции координаты точек сохранялись. Но я не могу, чтобы программа "ждала", пока пользователь введет эти точки, она продолжает свою работу. Как я понял так и должно идти, так как таким образом состоит обработка событий. Но я не могу придумать как сделать по другому. Пробовал делать булевую переменную и загонять ее в while() , пока не будет нажаты 2 точки значение true, но программа попросту вылетает. |
22.04.2020, 19:24 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
На одинаковые события нужно реагировать по разному в разных ситуациях, в зависимости от контекста.
Подтяните теорию: https://en.wikipedia.org/wiki/Finite-state_machine |
22.04.2020, 19:59 | #3 | |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Цитата:
Чел. нажимает кнопку меню, она говорит главному окну запомнили режим. В зависимости от режима передаёте управление нужному классу foo.click(x,y); Этот класс образовывает клики меняет состояние int State; 0 - 0 точек 1 - одна точка 2 - две точки -1 - точки нетребуются.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
|
22.04.2020, 20:25 | #4 |
Пользователь
Регистрация: 14.04.2020
Сообщений: 11
|
Pavia, Что значит запомнить режим? Сори за тупые вопросы, не так давно начал изучение
|
22.04.2020, 21:31 | #5 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Режим и состояние слова синонимы.
Тоже самое заводим переменную int mode; в главном окне. В зависимости от того какая кнопка меню была нажатой присваиваете константу для примера: mode=mNone; // бездействия mode=mBlackWhite; // Ваша режим преобразовать в ЧБ цвет mode=mLine; // Рисование линии mode=mMove; // Перемещение картинки можете свои придумать. Вот урок принцип поймёте. https://youtu.be/Hs39ip2cas4
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
нужна прокрутка изображений | HoBuHKuй | JavaScript, Ajax | 8 | 30.08.2010 11:13 |
Очень нужна помощь c матрицами, макросами в Excel. Заранее благодарен(поверьте, очень-очень нужна помощь) | Farridjan | Помощь студентам | 1 | 03.07.2009 12:24 |
Очень нужна помощь с написанием программы... срочно(буду благодарен за помощь) | 5Paladin5 | Помощь студентам | 3 | 02.07.2009 09:12 |
Нужна помощь с графическим редактором [delphi] | lordsyrius | Фриланс | 4 | 24.05.2009 12:14 |