Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > GRAPH.TPU


Автор: Gez 27.2.2007, 17:18
Решил разобраться с GRAPH.TPU, но сразу-же возникла проблема с инициализацией графики. Графический режим запускается и тут же выключается (не выполняя ничего что между initgraph и closegraph, пробывал  OutTextXY, Circle и т.п. ) Может я что не так делаю?
Код

program gr;

uses graph,crt;

var
a,b:integer;

BEGIN

a:=detect;

initgraph (a, b, '');

delay (10000);    {В этом месте ничего не работает}

closegraph;

END.


EGAVGA.BGI находится там же где и программа.
В чём может быть проблема? smile 
Использую TP7

Автор: volvo877 27.2.2007, 18:45
Во-первых, проверяй, инициализировался ли граф. режим:
Код

InitGraph(a, b, '');
ErrCode := GraphResult;
If ErrCode <> grOk Then Begin
  Writeln('Graphics error:', GraphErrorMsg(ErrCode));
  ReadLn; Halt(100);
End;
...
а во-вторых, лучше ReadLn перед CloseGraph добавь, чем Delay ...

Автор: zetxi815eb 28.2.2007, 02:34
Как заграсить круг??? Например цветом номер 10.

Код

uses graph,crt; 
var amode,bmode,x,y:integer; 
   a:char; 
begin 
    amode:=vga; 
    bmode:=vgahi; 
    initgraph (amode,bmode,''); 
    x:=320; 
    y:=240; 
    repeat; 
        circle (x,y,10); 
        case readkey of 
            'a': dec(x); 
            'd': inc(x); 
            'w': dec(y); 
            's': inc(y); 
        end; 
        cleardevice; 
    until x=0; 
    closegraph; 
end.


setfillstyle (1,10); не помогает!!!! smile 

Автор: corpsehunter 28.2.2007, 18:49
Цитата

FloodFill(X, Y: Integer; Border: Word);
Закрашивает область, ограниченную непрерывной линией, текущим орнаментом и цветом заполнения. Орнамент и цвет заполнения задаются процедурами SetFillStyle или SetFillPattern. X. Y - координаты любой точки внутри закрашиваемой линии;
Border - цвет линии, до которой производится закрашивание.

Автор: zetxi815eb 28.2.2007, 20:29
corpsehunter, спасибо!

Автор: Gez 1.3.2007, 13:10
Код

program t;
uses graph;
var
a,b:integer;
ErrCode:integer;
begin
a:=detect;
initgraph (a, b, '');
ErrCode := GraphResult;
if ErrCode <> grok then
   begin
     writeln ('Graphics error:', GraphErrorMsg(ErrCode));
     readln; Halt(100);
   End;
closegraph;
end.

Ничего не выполняет, Графический режим запускается и тут же выключается.

Автор: volvo877 1.3.2007, 18:34
Цитата(Gez @  1.3.2007,  12:10 Найти цитируемый пост)
Ничего не выполняет, Графический режим запускается и тут же выключается. 

А что ДОЛЖНО выполняться, объясни мне? Ты что-то указал, чтобы оно выполнялось? Нет. Что ж ты думаешь, Паскаль сам телепатически определит, чего тебе надо и дополнит программу ЗА тебя?

Перед CloseGraph хотя бы для приличия что-нибудь нарисуй, и поставь ReadLn, чтобы успеть увидеть это, а потом приходи и расскажешь, рисуется что-нибудь или нет.

Автор: Gez 5.3.2007, 13:37
Ну честно говоря надеялся smile , всем спасибо разобрался.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)