![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Oldschool geek
Форумчанин
Регистрация: 09.03.2009
Сообщений: 611
|
![]()
Если нужно с русификацией, то School Pak.
|
![]() |
![]() |
![]() |
#12 |
Новичок
Джуниор
Регистрация: 26.05.2010
Сообщений: 1
|
![]()
Мне нужна помощь, помогите пожалуйста. я создаю графический редактор в фри паскале. я её практически сделал, мне надо тока сделать кнопки в редакторе, на которые нажимая enter программа выбирала что ей рисовать: окружность или линию. можно ещё какие нить квадраты замутить...
вот что у меня есть: program zachet; uses CRT, Graph; const {массив, содержащий пункты меню} m:array[1..2] of string=('Создать ', 'Выход '); var gd,gm:integer; x,y,xn,yn:integer; col:integer; c:char; risuet:boolean;{логическая переменная, которая рисует отрезок-след} f:text; nameread, namewrite:string; i,num:integer; Procedure sozdat; begin clrscr; write('Введите имя файла с рисунком (0, если не надо читать рисунок): '); readln(nameread); write('Под каким именем сохранить картинкку: '); readln(namewrite); {инициализация графики} gd:=vga; gm:=2; InitGraph(gd,gm,''); if nameread<>'0' then begin assign(f,nameread); reset(f); for x:=0 to 639 do for y:=0 to 459 do begin readln(f,col); putpixel(x,y,col); end; close(f); end; for x:=0 to 15 do begin setfillstyle(1,x); Bar(x*20,460,x*20+20,479); Rectangle(x*20,460,x*20+20,479); end; risuet:=false;{значение ложь} setWritemode(0);{процедура,в которой цвет старой точке замещается текущим цветом} x:=320; y:=240;{начальное положение указателя} col:=getpixel(x,y); PutPixel(x,y,15); repeat {цикл передвижения указателя} c:=ReadKey; PutPixel(x,y,col); if risuet then line(x,y,xn,yn);{выводим отрезок-след в том случае, если значение risuet равно true} case c of #80:inc(y); #72 ![]() #77:inc(x); #75 ![]() #13: {если enter нажат в зоне палитры} if(x<320) and (y>460){enter - запоминаем начальную точку} then setColor(getPixel(x,y)) else begin xn:=x; yn:=y; risuet:=true; setwritemode(1);{старый цвет точки смещается с новым} end; 'l','L','д','Д': begin Line(xn,yn,x,y); risuet:=false; end; 'c','C','с','С': begin Circle(xn,yn,round(sqrt((x-xn)*(x-xn)+(y-yn)*(y-yn)))); risuet:=false; end; end; col:=getPixel(x,y); if risuet then line(x,y,xn,yn); PutPixel(x,y,15); until c=#27; assign(f,namewrite); rewrite(f); for x:=0 to 639 do for y:=0 to 459 do writeln(f,getPixel(x,y)); close(f); end; BEGIN Clrscr; x:=30; y:=10; {x и y - кординаты левого верхнего угла меню} num:=1;{num - номер выделенного пункта меню} repeat for i:=1 to 2 do{вывод 2 пункта меню} begin gotoXY(x,y+i);{выводит текст в конктретной позиции экрана} if i=num {выделенный пункт меню инвертируем} then begin textColor(0);{цвет символов} textBackGround(15);{фон под символом} end else begin textcolor(15); textBackGround(0); end; write(m[i]); end; {ожидаем нажатия клавиши пользователем и изменеям номер num} c:=readKey; case c of #72: if num=1 then num:=2 else dec(num); #80: if num=2 then num:=1 else inc(num); #13: case num of 1: sozdat; 2: c:=#27; end; end; until c=#27; END. помогите пожалуйста, буду очень благодарен. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема инициализайии графического режима в BorlandC++ под ДОС | Anatol_rus | Общие вопросы C/C++ | 0 | 01.04.2009 22:33 |
Масштабирование и поворот графического объекта | haros | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 02.03.2009 15:24 |
Инициализация массива указателей. Непонятно !!! | Adamant | Общие вопросы C/C++ | 2 | 05.11.2007 16:22 |
создание графического редактора в Delphi? | parano_ya | Помощь студентам | 1 | 29.04.2007 08:17 |
Инициализация окна | Anny | Общие вопросы Delphi | 9 | 13.03.2007 11:48 |