Moduł Graph we Free Pascalu - po wyjściu z trybu graficznego, tryb tekstowy wariuje

0

Witam!
Bawię się ostatnio grafiką we Free Pascalu. Dodaję sobie moduł graph i wszystko pięknie działa, kompiluje się, rysuje jak trzeba, ale po zamknięciu trybu graficznego zaczyna mi wariować tryb tekstowy. Czego bym w programie nie napisał, to nie działa dobrze. Sprawdziłem to na dwóch komputerach i na dwóch systemach operacyjnych (XP i Windows 8). Z tego co przeczytalem w internecie, to nie tylko ja mam taki problem. Kilka miesięcy temu analogiczny temat założył ktoś na konkurencyjnym forum. Tam nie umieli nam pomóc, może Wy jesteście lepsi. A tak przy okazji to: jaki link trzeba podać we Free pascalu w procedurze initgraph( )?? Czego bym nie wpisał, to się kompiluje, nawet jak zostawię puste miejsce, ale tryb tekstowy i tak nawala. Pozdrawiam

4

Zrobisz sobie największą przysługę porzucając wszystko co związane z modułem graph i grafiką BGI.
Mamy rok prawie 2015, a to już 20lat temu było stare.

Na dzień dzisiejszy znajomość tego nie ma absolutnie żadnej wartości.
Szczególnie przechodzenie pomiędzy trybami - to może powodować problemy - nikt tego nie rozwiąże, bo nie ma powodu ku temu - nikt nie powinien już tego używać.

0

Rozumiem, to jest jakaś rada. Czym w takim razie powinienem był to zastąpić? Najlepiej, żebym nie musiał za dużo grzebać w plikach, ponieważ dopiero zaczynam zabawę modułami.

0

SDL2 for pascal
SDL - Simple DirectMedia Layer

0

A czy możesz napisać jak tego używać?

2

http://www.baregame.org/topic_welcome.asp
(Baregame to jeden z bindingów SDL2 do pascala)

0

A czy jest jakiś podręcznik do SDL w pascalu w języku polskim, bo na kurs internetowy to pewnie nie mam co liczyć? (googlam i nic nie widzę). A czy nie ma czegość "pomiędzy" graphem, a SDL? Na razie piszę proste symulacje komputerowe układu Slonecznego i chodzi mi o to, żebym mógł to rysować na ekranie w 2D i wchodzić w jakieś interakcje z programem bez potrzeby edytowania kodu za każdym razem.

1

A tak przy okazji to: jaki link trzeba podać we Free pascalu w procedurze initgraph
Żaden. Ten parametr jest ignorowany. Pod DOS-owym Turbo Pascalem była tam ścieżka do pliku .bgi ze sterownikiem grafiki.

1

@PLrc - możesz też się zaintereować ZenGL; APi dla Delphi i Lazarusa, wspiera OpenGL i DirectX, ma różne bajery.

0

Chyba znalazłem coś odpowiedniego dla siebie (allegro.pas), ale nie mogę sobie poradzić z instalacją. Na stronie projektu http://allegro-pas.sourceforge.net/wiki/doku.php?id=documentation:full_installation przeczytałem, że najnowsza wersja allegro.pas jest kompatybilna z allegro w wersjach zaczynających się od numerów 4.4, więc ściągnąłem allegro 4.4.2, rozpakowałem w folderze z modułami FPC, ściągnąłem allegro.pas, rozpakowałem w tym samym folderze, kompilator ma do nich ścieżkę, ale program się nie chce skompilować, wyświetla mi komunikat can't find unit allegro. Co muszę zrobić, żeby zadziałało?

0

Pokaż jak wyglądają dodane ścieżki w opcjach projektu (zrób zrzut).

0

Wyglądają tak: Ścieżki dostepu.JPG Trzy pierwsze były wprowadzone domyślnie, czwartą wprowadziłem na wszelki wypadek.

1

po pierwsze ściągnij to: http://www.lazarus.freepascal.org

0

Co do allegro, pobrałem stąd:
https://sourceforge.net/projects/allegro-pas/

Mam Lazarus 1.0.14, FPC 2.6.2 dla Windows.

I tak, rozpakowałem to allegro.pas do jakiegoś katalogu np. D:\temp\allegro.

I tam jest tak, podkatalog lib i podkatalog demo. Zakładając że fpc.exe albo ppc386.exe znajduje się w katalogu objętym przez PATH, zatem do kompilacji wpisuje się tylko fpc plik.pas albo ppc386 plik.pas zrobiłem tak:

  1. Najpierw skompilowałem te pliki pas z katalogu lib:
d:\
cd temp\allegro\lib
fpc allegro.pas
fpc alflic.pas
fpc alfile.pas 

I zostały utworzone tam pliki .ppu, .o i .a

  1. Przechodzę do katalogu demo
cd ..
cd demo
fpc demo.pp -FUD:\Temp\allegro\lib

Musiałem więc najpierw skompilować to co jest w lib a dopiero potem skompilować demo z ustawioną ścieżką modułów. Do utworzonego exe należy dołączyć plik aleg44.dll

Może coś pomoże. :-)

0
drorat1 napisał(a):

Może coś pomoże. :-)
Trochę pomogło :) Ale nie wiele, bo tak to napisałeś że nie wiele z tego zrozumiałem. To jest typowe dla informatyków, że piszecie tak, że nic nie można z tego zrozumieć. Głównie przez nadużywanie skrótów.

Chyba wreszcie mi sie udało! Napiszę co zrobiłem, to może komuś się przyda :)
0. Korzystam z Windowsa XP i FPC w wersji 2.6.2

  1. Sciągnąłem bibliotekę allegro w wersji 4.4.2 i rozpakowałem w folderze FPC z innymi modułami (w moim wypadku jest to i386-win32, który z kolei znajduje się folderze units.).
  2. Sciągnąłem najnowszą wersję allegro.pas (4.4.4) ze strony ich projektu i umieściłem w dowolny miejscu (konkretnie na dysku D).
  3. Uruchomiłem konsolę cmd i wszedłem do folderu z allegro.pas i uruchomiłem plik fix.bat:

d:
cd allegro.pas
fix.bat win32

Wyświetlił mi się komunikat

Done!

Na stronie z projektem allegro.pas piszą aby w tym momencie "type make and press intro". Nie wiem co to znaczy, ani jak można "wcisnąć intro" (ktoś wie?). Gdy to zrobiłem wyskoczyło mi 7 błędów...
4. Utworzyłem folder o nazwie allegro.pas w katalogu z modułami FPC.
5. Przekopiowałem zawartość podkatalogu "lib" z allegro.pas na dysku D do katalogu z punktu 4.
6. Ścieżkę do modułu miałem w kompilatorze podaną już wcześniej.
7. Dodałem moduł allegro za pomocą komendy uses allegro;

Po wykonaniu powyższych czynności program się skompilował (jupi!), ale przy próbie wykonania wywaliło mi błąd, że brakuje pliku allleg44.dll i przeinstalowanie programu może pomóc. Ale w tym momencie zrozumiałem o co Ci chodziło:

drorat1 napisał(a):

Do utworzonego exe należy dołączyć plik aleg44.dll

Przekopiowałem ten plik (był w podkatalogu lib) do folderu w którym Free Pascal tworzy pliki exe i wtedy zadziałało :) Dziękuję wszystkim osobom, które próbowały mi pomóc :)

1
drorat1 napisał(a):

Może coś pomoże. :-)

Trochę pomogło :) Ale nie wiele, bo tak to napisałeś że nie wiele z tego zrozumiałem. To jest typowe dla informatyków, że piszecie tak, że nic nie można z tego zrozumieć. Głównie przez nadużywanie skrótów.

Żartujesz...?

@drorat1 wszystko opisał jak należy, ponadto nie ma tam żadnych skrótów, a jedynie nazwy plików, katalogów i rozszerzeń plików; Więc jeśli czegokolwiek nie rozumiesz z tamtego posta, to na pewno nie z winy jego autora; Typowe nie jest to że informatycy produkują jakiś bełkot, tylko to, że ktoś bez specjalistycznej wiedzy próbuje zrozumieć co się do niego pisze, a jak nie zrozumie to wini wszystko i wszystkich, tylko nie siebie;

W każdym razie dobrze, że jednak udało Ci się rozwiązać problem; Zakończ więc wątek, jeśli faktycznie już po problemie.

0

Mam jeszcze kilka pytań:

  1. Dlaczego Free Pascal zapisuje programy w folderze o takiej dziwnej nazwie - "i386-win32" i czy ta nazwa ma coś wspólnego z architekturą windowsa (32 bitowy XP/64 bitowy Windows 7)?
  2. Czy jak będę instalował allegro na windowsie 7 to też powinienem wpisać

d:
cd allegro.pas
fix.bat win32

czy

d:
cd allegro.pas
fix.bat win64
??

1
PLrc napisał(a):

Mam jeszcze kilka pytań:

  1. Dlaczego Free Pascal zapisuje programy w folderze o takiej dziwnej nazwie - "i386-win32" i czy ta nazwa ma coś wspólnego z architekturą windowsa (32 bitowy XP/64 bitowy Windows 7)?

Tak właśnie z tym ma to związek. Katalog i386-win32 odzwierciedla $FPCTARGET albo $(TargetCPU)-$(TargetOS) w Lazarusie. Zaś $FPCVERSION określa wersję FPC. Jakiś porządek powinien być, bo możesz mieć problemy.

Ustawienia konfiguracji powinny być w fpc.cfg

  1. Czy jak będę instalował allegro na windowsie 7 to też powinienem wpisać
    d:
    cd allegro.pas
    fix.bat win32

czy
d:
cd allegro.pas
fix.bat win64??

Ja podałem tylko przykładowe katalogi. Nie mam komputera z Win7 ale z XP i nie będę się wypowiadał co do innych architektur. Nie miałem z tym do czynienia. Tylko z i386 i win32 albo wcześniej DOS (go32v2).

0

Sprawdziłem allegro na windowsie 7 - działa pięknie. Instalacja przebiegła dokładnie tak samo jak to opisałem dla XP, z tą różnicą że tym razem zadziałało wpisanie make
Gdy to zrobiłem konsola nagle zaczęła wypisywać mi mnóstwo rzeczy i skompilowały się jakieś pliki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1