IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Печать графиков и рисунков, Как сделать ПринтСкрин для графика
Motsart
сообщение 7.07.2005 18:06
Сообщение #1


Гость






Люди, помогите! Посоветуйте как распечатать график. Есть программа, кот. его строит. Сдавать нужно только принтскрины (без компа). Засунуть график в буфер обмена не получается blink.gif (я жму на PrintScreen, когда график появляется на экране) изображение в буфер не попадает. Подскажите, плз, как можно это сделать. Заранее спасибо.
 К началу страницы 
+ Ответить 
volvo
сообщение 7.07.2005 18:39
Сообщение #2


Гость






Вот тут: Модули для вывода графики лежит
Цитата
Модуль для создания скриншотов из любого видеорежима.
Подключи его к программе, и вызывай сохранение в файл там, где нужен скриншот...
 К началу страницы 
+ Ответить 
Motsart
сообщение 8.07.2005 17:02
Сообщение #3


Гость






Volvo, спасибо за ответ. Насколько я в курсе модуль перед использованием надо откомпилировать. Немогли бы Вы подсказать (вкрадце), как это сделать.
 К началу страницы 
+ Ответить 
Дож
сообщение 8.07.2005 17:19
Сообщение #4


Бывалый
***

Группа: Пользователи
Сообщений: 179
Пол: Мужской

Репутация: -  1  +


Цитата
Насколько я в курсе модуль перед использованием надо откомпилировать.

:no: Неа...
Подключаешь модуль к своей программе(пишешь в списке после USES), и используешь как скомпилированный модуль... (можешь правда запустить сам модуль и скомпилировать так же как компилируестся прога, но первый способ мне кажется проще)...


--------------------
Доброго времени суток.
:nnn:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Motsart
сообщение 11.07.2005 12:25
Сообщение #5


Гость






Спасибо, дружище! к моей величайшей радости, всё работает!
2 модератор: обсуждение можно закрывать.
всем спасибо.
 К началу страницы 
+ Ответить 
Mr. Anderson
сообщение 9.03.2007 20:57
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 21
Пол: Мужской
Реальное имя: Александр

Репутация: -  0  +


Скопировал bmp_plus.pas ( 9.05 килобайт ) в BPW (Borland Pascal for Windows 7.0), сохранил как BMP_PLUS.TPU , BMP_PLUS.PAS и BMP_PLUS.BAK в C:\BP\BIN.
Открыл на BP (Borland Pascal).
Скомпилировал этот модуль, добавил end. (Error 10: Unexpected end of file.) , ещё раз скомпилировал
Добавил в своей программе uses BMP_PLUS;
нажимаю Run > отображается график на чёрном экране > нажимаю PrintScreen (принтер подсоединён и включён, в рабочем состоянии), затем enter - не распечатывает! unsure.gif

Print setup
PRNFLTR
$NOSWAP /HP

Change directory> Directory name C:\BP\BIN
Optrions > Units directories C:\BP\UNITS;
Resource directories C:\BP\UNITS;

Операционная система Win XP PRO

Ниже моя программа:

 program grafika;
Uses Graph,crt,BMP_PLUS;
const
shag=0.0001;
lgr=-5; {nachalnoye znacheniye x}
pgr=5; {konechnoye znacheniye x}
zcrtX=320; {koordinata x tsentra ekrana}
zcrtY=240; {koordinata y tsentra ekrana}
mtrX=50; {koefitsent mashtabirovaniya po osi x}
mtrY=50; {koefitsent mashtabirovaniya po osi y}
colorG=5; {tsvet grafika}
colorOXY=11; {tsvet koordinatnij osey}
OXYminX=-270; {minimalnoye otobrazhaemoye znacheniye osi x}
OXYmaxX=270; {maximalnoye otobrazhaemoye znacheniye osi x}
OXYminY=-200; {minimalnoye otobrazhaemoye znacheniye osi y}
OXYmaxY=200; {maximalnoye otobrazhaemoye znacheniye osi y}
Var grDriver:integer;
grMode:integer;
ErrCode:integer;
x,y:real;
i:integer;
Begin
grDriver:=Detect;
InitGraph(grDriver, grMode, ' ');
ErrCode:=GraphResult;
if ErrCode<>grOk then begin
writeln('Oshibka: ',GraphErrorMsg(ErrCode));
readln;
halt(100);
end;
setcolor(colorOXY);
line(zcrtX+OXYminX, zcrtY, zcrtX+OXYmaxX, zcrtY); { horz }
moveto(zcrtX+OXYmaxX-7, zcrtY-2);
lineto(zcrtX+OXYmaxX, zcrtY);
lineto(zcrtX+OXYmaxX-7, zcrtY+2);
line(zcrtX, zcrtY-OXYminY, zcrtX, zcrtY-OXYmaxY); { vert }
moveto(zcrtX - 2, zcrtY-OXYmaxY+7);
lineto(zcrtX, zcrtY-OXYmaxY);
lineto(zcrtX + 2, zcrtY-OXYmaxY+7);
settextjustify(centertext, centertext);
outtextxy(zcrtX, zcrtY-OXYmaxY-(textheight('Y') div 2) - 3, 'Y');
outtextxy(zcrtX+OXYmaxX+(textwidth('X') div 2) + 3, zcrtY, 'X');
x:=lgr;
while x<=pgr do
begin
if abs(x)<=5 then begin
y:=exp(-0.5*sqr(x));
putpixel(zcrtX+trunc(x*mtrX),zcrtY-trunc(y*mtrY),colorG)
end;
x:=x+shag;
end;
readkey;
readln;
closegraph;
end.


Что нужно сделать, чтоб распечатать график.


--------------------
Каждое начало имеет свой конец
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 9.03.2007 21:03
Сообщение #7


Гость






Цитата
Что нужно сделать, чтоб распечатать график.
ВНИМАТЕЛЬНО читать тему! Сказано - этот модуль снимает СКРИНШОТ, а не позволяет тебе печатать графический экран... Так вот, когда график отрисован (а именно - перед ReadKey) вызывай
save_bmp(0, 0, getmaxx, getmaxy, 'screen.bmp', 0);
, и у тебя в текущей папке должен (если все верно сделал) появиться файл screen.bmp, содержащий твой график... А вот с ним уже делай что хочешь...
 К началу страницы 
+ Ответить 
Mr. Anderson
сообщение 9.03.2007 21:24
Сообщение #8


Новичок
*

Группа: Пользователи
Сообщений: 21
Пол: Мужской
Реальное имя: Александр

Репутация: -  0  +


no1.gif на скрине просто чёрный экран. (нажимаю printscreen только после того, как он полностью отобразится, после 2 раза enter ).
Удалил screen.bmp . повторил снова - тоже самое.

 
{...}
while x<=pgr do
begin
if abs(x)<=5 then begin
y:=exp(-0.5*sqr(x));
putpixel(zcrtX+trunc(x*mtrX),zcrtY-trunc(y*mtrY),colorG)
end;
x:=x+shag;
end;

save_bmp(0, 0, getmaxx, getmaxy, 'screen.bmp', 0);

readkey;
readln;
closegraph;
end.


Сообщение отредактировано: Mr. Anderson - 9.03.2007 21:48


--------------------
Каждое начало имеет свой конец
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 9.03.2007 21:55
Сообщение #9


Гость






Ну, правильно... У тебя же 16-цветный драйвер... Тогда:
save_bmp(0, 0, getmaxx, getmaxy, 'screen.bmp', 1); { <--- 1, а не 0 !!! }


Добавлено через 47 сек.
И еще раз: НЕ НАДО нажимать ВООБЩЕ PrintScreen... Только 2 раза Enter !!!
 К началу страницы 
+ Ответить 
Mr. Anderson
сообщение 9.03.2007 22:01
Сообщение #10


Новичок
*

Группа: Пользователи
Сообщений: 21
Пол: Мужской
Реальное имя: Александр

Репутация: -  0  +


yes2.gif Спасибо good.gif . Тему Unit expected можно закрыть.


--------------------
Каждое начало имеет свой конец
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 17:38
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"