motofan logo
> 

Помогите с Turbo Paskal, организовать выбор цвета пера в простейшей рисовалке

Pic-nic
сообщение 16.1.2011, 14:39


Интересующийся
**

Группа: Пользователи
Сообщений: 98
Регистрация: 5.1.2011
Из: Костромы ;)
Пользователь №: 222 469
Модель телефона: E398 - 4шт
Прошивка: Dar2.x test15


Настроение:
всё ещё не женат.. (!)



Рейтинг: 83.5



Ребят! курсовик горит...помогите пожалуйста, кто может!! cry.gif
Вобщем имеется программа типа Паинта(простейшая рисовалка), написанная на Паскале. Необходимо в ней организовать палитру (хотяб пару цветов,остальные по аналогии сам добавлю) так чтоб, цвет можно было выбрать щелчком мыши..и всёё!

исходник прикрепляю..
Прикрепленный файл Mouse.rar   ( 40.2 килобайт ) Кол-во скачиваний: 69
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
 
Закрытая темаСоздание новой темы
Ответов(1 - 7)
A.Vas
сообщение 16.1.2011, 15:12


Гуру
******

Группа: Пользователи
Сообщений: 1 016
Регистрация: 2.12.2005
Из: г. Томск
Пользователь №: 60 511
Модель телефона: HTC One X
Прошивка: CyanogenMod 11

Рейтинг: 435



Pic-nic,
можно сделать выбор цвета двумя способами:
1. Нарисовать сетку с цветами и рассчитывать выбранный цвет по координатам клика.
2. Просто получить цвет точки под курсором мыши.

P.S. Исходник не читал - не умею понимать неоформленный код без комментариев и осмысленных названий, да ещё и на паскале.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Pic-nic
сообщение 16.1.2011, 15:35


Интересующийся
**

Группа: Пользователи
Сообщений: 98
Регистрация: 5.1.2011
Из: Костромы ;)
Пользователь №: 222 469
Модель телефона: E398 - 4шт
Прошивка: Dar2.x test15


Настроение:
всё ещё не женат.. (!)



Рейтинг: 83.5



Нарисовать сетку, и при клике по цвету, присвоить его код(цвета) переменной Q или W

{--------------основной код программы}
begin
start_prog;

main_col:=Q; { "Q" -это код цвета для левой кн.мыши}
bg_col:=W; { "W" -это код цвета для правой кн.мыши}
ch:='a';x:=320;y:=240;
initmouse;
setsteptopixel(8,8);
outmouse;

while ch<>#27 do
begin
if keypressed then ch:=readkey;
if (posmouse_x<>x) or (posmouse_y<>y) then
begin
x:=posmouse_x;
y:=posmouse_y;
if (mousepressed) and (keysmouse=1) then piatno(x-10,y-10,main_col,10);
if (mousepressed) and (keysmouse=2) then brush(x-10,y-10,bg_col,10);
{ if (mousepressed) and (keysmouse=2) then marker(x,y,14,10);}
end;
end;
closegraph;
closemouse;
end.


A.Vas, извините за кривоту. Я пока новичок в программировании
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DmT
сообщение 16.1.2011, 21:01


Мото-Портной
******

Группа: Разработчики
Сообщений: 1 175
Регистрация: 31.3.2007
Пользователь №: 129 181
Модель телефона: LG GW620, L7e и др.
Победитель конкурса 2008

Рейтинг: 680



Те градиентную палитру или дискретную?
И выучи ты как орфографически-корректно пишется по-английски слово "паскаль", а то пичалька v__v
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Pic-nic
сообщение 16.1.2011, 21:12


Интересующийся
**

Группа: Пользователи
Сообщений: 98
Регистрация: 5.1.2011
Из: Костромы ;)
Пользователь №: 222 469
Модель телефона: E398 - 4шт
Прошивка: Dar2.x test15


Настроение:
всё ещё не женат.. (!)



Рейтинг: 83.5



Цитата(DmT @ 17.1.2011, 0:01) *

Те градиентную палитру или дискретную?
И выучи ты как орфографически-корректно пишется по-английски слово "паскаль", а то пичалька v__v


Дискретную, она проще задается.

pascal oops.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
A.Vas
сообщение 16.1.2011, 21:33


Гуру
******

Группа: Пользователи
Сообщений: 1 016
Регистрация: 2.12.2005
Из: г. Томск
Пользователь №: 60 511
Модель телефона: HTC One X
Прошивка: CyanogenMod 11

Рейтинг: 435



Pic-nic,
на мой взгляд, задача должна работать как-то так. Я не помню паскаля в целом и тонкостей работы с мышью в частности, поэтому решение пишу в псевдокоде - на паскале перепишешь сам.
Код
begin
    инициализация_программы;
    repeat
        если (нажата какая-нибудь кнопка мыши), то
        begin
            если (мышь находится в области рисования), то
                рисуем объект в области рисования около указателя;
            если (мышь находится над палитной), то
            begin
                получаем цвет точки под указателем; {ЕМНИП, это функция getpixel}
                сохраняем его в переменную для левой или правой кнопки мыши;
            end
            {здесь можно продолжить обработку нажатия мыши в различных областях экрана -
            например, над панелью инструментов или ещё какой-нибудь панелью с кнопками}
        end
        если (нажата клавиша клавиатуры), то
        begin
            если (нажата клавиша выхода), то
                создаём условия для выхода из цикла;
            {аналогичным образом обрабатываем нажатия других клавиш, если это необходимо}
        end
    until (условие выхода) {выход по нажатию клавиши, клику какой-нибудь области, etc.}
    завершение работы; {освобождение мыши, выход из графического режима...}
end.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Pic-nic
сообщение 16.1.2011, 21:48


Интересующийся
**

Группа: Пользователи
Сообщений: 98
Регистрация: 5.1.2011
Из: Костромы ;)
Пользователь №: 222 469
Модель телефона: E398 - 4шт
Прошивка: Dar2.x test15


Настроение:
всё ещё не женат.. (!)



Рейтинг: 83.5



A.Vas, спасибо!!
Цитата(A.Vas @ 17.1.2011, 0:33) *

Pic-nic,
Код

begin
                получаем цвет точки под указателем; {ЕМНИП, это функция getpixel}
                сохраняем его в переменную для левой или правой кнопки мыши;
            end
    



Вот, за это отдельное спасибо!! Буду пробовать, вроде осваиваюсь.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Pic-nic
сообщение 18.1.2011, 2:07


Интересующийся
**

Группа: Пользователи
Сообщений: 98
Регистрация: 5.1.2011
Из: Костромы ;)
Пользователь №: 222 469
Модель телефона: E398 - 4шт
Прошивка: Dar2.x test15


Настроение:
всё ещё не женат.. (!)



Рейтинг: 83.5



Ура!! yesyes.gif У меня получилось..вобщем справился своими силами. Спасибо, пацаны, всем, кто откликнулся...

A.Vas, сделал по координатам, без использования "getpixel", т.к. до конца не разобрался с этой процедурой. Будет возможность - рейтинг подниму,не забуду!

Если кому интересно, вот моя прога.


просьба к модераторам - закрыть тему!

Сообщение отредактировал Pic-nic - 18.1.2011, 2:10
Прикрепленный файл OK.rar   ( 36.45 килобайт ) Кол-во скачиваний: 68
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Помогите с Turbo Paskal, организовать выбор цвета пера в простейшей рисовалке · Обо всём · Forum
 

Причина закрытия (stigr 18-01-2011):
Закрытая темаСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 3.8.2025, 21:50

Форум живёт: