logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Turbo Pascal] Jak zainicjalizować bibliotekę Graph w Turbo Pascal 7?

lepton 11 Gru 2004 12:21 5843 10
REKLAMA
  • #1 1051726
    lepton
    Poziom 12  
    Posty: 93
    Pomógł: 2
    Ocena: 1
    Kiedy użwam biblioteki Graph w Turbo Pascalu 7 wypisuje mi na ekranie podczas uruchomienia programu:

    BGI Error: Graphics not initialized (use InitGraph)

    Sprawdziłem także czy bibloteka ta jest w katalogu i wszystko jest na swoim miejscu, więc co jest nie tak?

    Zamykam. - arnoldziq
  • REKLAMA
  • Pomocny post
    #2 1051924
    Xitami
    Poziom 29  
    Posty: 1130
    Pomógł: 118
    Ocena: 31
    initgraph(gd,gm,'katalog w którym są BGI');
  • REKLAMA
  • Pomocny post
    #3 1052984
    one_eddie
    Poziom 25  
    Posty: 973
    Pomógł: 62
    Ocena: 14
    lepton: wystarczy zajrzec do helpa pascala pod InitGraph tam jest ladny przykladzik podany :)
  • #4 1053713
    MirekCz
    Poziom 35  
    Posty: 2220
    Pomógł: 330
    Ocena: 62
    najprawodopodbniej wlasnie brakuje ci plikow .bgi w katalogu z programem *albo podania odpowiedniego linka*
  • #5 1057833
    lepton
    Poziom 12  
    Posty: 93
    Pomógł: 2
    Ocena: 1
    Plik GRAPH.INT jedyny jaki znalazłem, który ma coś wspólnego z nazwą graph znajduje sie w katalogu doc.

    Niestety help też mi nic nie pomógł.

    Xitami napisał:
    initgraph(gd,gm,'katalog w którym są BGI');


    O co chodzi Xtami w twoim powyższym zapisie?
  • REKLAMA
  • #7 1062687
    lepton
    Poziom 12  
    Posty: 93
    Pomógł: 2
    Ocena: 1
    Dzięki waszej pomocy uporałem się z moim problemem :)

    Błąd "BGI Error: Graphics not initialized (use InitGraph)" już nie występuje. Ale gdy wykorzystuje

    InitGraph(Gd, Gm, 'c:\TP7\bin');

    wszystko gra oprócz tego, że nie wyświetla mi się na ekranie dany rysunek, dlaczego tak jest? Oto przykład:
    Załączniki:
    • kolo.txt (283 Bajtów) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #8 1062722
    Xitami
    Poziom 29  
    Posty: 1130
    Pomógł: 118
    Ocena: 31
    8O ciekawe, u mnie kompilacja i wykonanie - OK.
  • #9 1063202
    ludas
    Poziom 13  
    Posty: 71
    Pomógł: 7
    Ocena: 1
    Nie wyświetla, bo nie inicjujesz sterownika :P
    Jako trzeci parametr procedury initGraph musisz podać ścieżkę do katalogu ze sterownikami "BGI"
    W twoim przypadku powinno być:
    InitGraph(Gd, Gm, 'c:\tp7\bgi');

    pozdrawiam
  • #10 1064936
    lepton
    Poziom 12  
    Posty: 93
    Pomógł: 2
    Ocena: 1
    Xitami napisał:
    8O ciekawe, u mnie kompilacja i wykonanie - OK.


    Program się oczywiście skompilował, ale po wyświetleniu jego działania na monitorze, ekran jest pusty i nie ma tam żadnego koła :(

    ludas napisał:
    Jako trzeci parametr procedury initGraph musisz podać ścieżkę do katalogu ze sterownikami "BGI"
    W twoim przypadku powinno być:
    InitGraph(Gd, Gm, 'c:\tp7\bgi');

    ------------------------
    program kolo;

    uses Graph, crt;

    var
    Gd, Gm: Integer;
    Radius: Integer;
    begin
    Gd := Detect;
    InitGraph(Gd, Gm, 'c:\TP7\bin');
    if GraphResult <> grOk then
    Halt(1);
    for Radius := 1 to 5 do
    Circle(100, 100, Radius * 10);
    Readln;
    CloseGraph;
    readkey;
    end.
    ------------------------------
    Jest InitGraph(Gd, Gm, 'c:\TP7\bin');
  • #11 1065979
    ludas
    Poziom 13  
    Posty: 71
    Pomógł: 7
    Ocena: 1
    Jest pusty ekran, bo program kończy się po instrukcji:

    if GraphResult <> grOk then Halt(1);

    ponieważ GraphResult jest róźny od grOK
    (gdy usuniesz tą instrukcję, to pojawi się: BGI Error: ...)

    sterowniki są w katalogu ...\bgi, więc musi być:

    InitGraph(Gd, Gm, 'c:\TP7\bgi');

    a nie InitGraph(Gd, Gm, 'c:\TP7\bin');

    bo w ...\bin nie ma driverów!!!

Podsumowanie tematu

✨ Problem dotyczył błędu "BGI Error: Graphics not initialized (use InitGraph)" podczas korzystania z biblioteki Graph w Turbo Pascal 7. Przyczyną błędu było nieprawidłowe wywołanie procedury InitGraph, a konkretnie podanie niewłaściwej ścieżki do katalogu ze sterownikami BGI. Sterowniki graficzne (.bgi) muszą znajdować się w katalogu, którego ścieżka jest przekazywana jako trzeci parametr do InitGraph. W omawianym przypadku poprawna ścieżka to np. "c:tp7bgi", a nie "c:tp7bin", gdzie brakowało plików sterowników. Po poprawnym zainicjowaniu grafiki i podaniu właściwej ścieżki, błąd inicjalizacji znikał. Jednakże, aby rysunki (np. koło) były widoczne, program musi poprawnie wykonać InitGraph i nie kończyć działania przed wyświetleniem grafiki. Wskazano także, że warto sprawdzić wartość zwracaną przez GraphResult, aby upewnić się, że inicjalizacja przebiegła pomyślnie.
Wygenerowane przez model językowy.
REKLAMA