Pokaż wyniki 1 do 5 z 5

Temat: Własne Crt - Turbo Pascal, Free Pascal itp.

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Zarejestrowany
    Aug 2007
    Skąd
    Gdzie nogi poniosą.
    Postów
    175

    Domyślnie Własne Crt - Turbo Pascal, Free Pascal itp.

    Witam!
    Gdyby kogoś interesowało jak w Pascalu wmiare sprawnie poradzić sobie ze sterowaniem wyświetlania tekstu w konsoli to zamieszczam poniższy kod.

    Tym się rózni od normalnego Crt, że aby wyswietlic tekst nalezy uzyc polecenia "PokazEkran".
    Pomaga to w zredukowaniu migania ekranu jeśli chcesz napisać np. grę dla konsoli (jakiegoś roguelika, czy takie tam).

    No i nie ma w nim ReadKey, Readln, ani Sound itp.

    Oczywiscia mozna, a nawet nalezy go rozbudowac i przerobić na Unita .

    Kod:
    {====================================
     ! m33Crt v.0001                    !
     !   (c) Michal "m33" Gawryluk, 2007!
     -----------------------------------
     !!!!!!!! licencja: GPL !!!!!!!!!
     ====================================
     *Co to jest:
       Pisanie biblioteki
       a'la Crt :)
      
     *Poco to pisze:
       Aby pozniej napisac
       to dla C++ :]
     ====================================
     ! start 31 X 2007 15:45            !
     ====================================
     31 X 2007 [ 15:45 - 16:45 ]
      16:34 NOWOSCI:
             *Procedury:
                - PokazEkran.[OK]
                - GoToXY.....[OK]
                - Napisz.....[OK]
                - CzyscEkran.[OK]
     ------------------------------------
     1 XI 2007 [ 11:09 - 11:11 ]
      11:10 ZMIANY:
             *Pocedura Napisz zmienia juz
              po modyfikacji bufora
              wartosc x na wspolrzedna
              konca wprowadzonego tekstu
     ------------------------------------
     3 XI 2007 [ 19:00 - 19:01 ]
      19:01 NOWOSCI:
             * Funkcje
                - GdzieX.....[OK]
                - GzieY......[OK]
     ====================================}
    VAR
       n,n2: integer; {zmienne do wykorzystania przy iteracji}
        x,y: integer; {pozycja kursora}
     bEkran: array[1..80,1..24] of char;{bufor ekranu tu przechowywujemy tekst  do wyswietlenia}
    {------------------------------------------------------------------------------}
    
    Procedure PokazEkran;{Wyswietla zmiany bufora bEkran}
    begin
    	for n:=1 to 24 do
    					for n2:= 1 to 80 do
    									  write(bEkran[n2,n]);
    end;
    {------------------------------------------------------------------------------}
    
    Procedure GoToXY(gx,gy:integer);
    begin
     x:=gx;
     y:=gy;
    end;
    {------------------------------------------------------------------------------}
    
    Procedure Napisz(napis:string);
    begin
    n2:=1;{jako numer litery w slowie}
    for n:=x to x+(length(napis)-1) do begin bEkran[n,y]:=napis[n2]; n2:=n2+1; end;
    {A teraz trzeba zmienic wsplrzedna x by wskazywala koniec tekstu}
    x:=x+(length(napis)-1); {Dlaczego -1? Bo ostatni znak ciagu to zawsze "null"(pusty)}
    end;
    {------------------------------------------------------------------------------}
    
    Procedure CzyscEkran;
    begin
     for n:=1 to 80 do 
    		for n2:=1 to 24 do
    				bEkran[n,n2]:=' ';
    end;
    {------------------------------------------------------------------------------}
    
    function GdzieX: integer;
    begin
       GdzieX:=X;
    end;
    {------------------------------------------------------------------------------}
    function GdzieY: integer;
    begin
       GdzieY:=Y;
    end;
    
    {------------------------------------------------------------------------------}
    
    {------------------------------------------------------------------------------}
    BEGIN
    	CzyscEkran;
    	GoToXY(1,1);
    	Napisz('FIRST Hello world!!!');
    	GoToXY(2,2);
    	Napisz('SECOND Hello world!!!');
    	GoToXY(3,3);
    	Napisz('THIRD Hello world!!!');
    	Napisz(' FOURTH Hello world!!!');
    
    	PokazEkran;
    END.
    Ostatnio edytowane przez m33 : 11-16-2007 - 10:02

Podobne wątki

  1. Free Pascal - poczatki...
    By lokid in forum Delphi/Pascal/Lisp
    Odpowiedzi: 7
    Autor: 02-16-2010, 09:38
  2. podrzucanie trojanów(itp.)
    By hubert in forum Newbie - dla początkujących!
    Odpowiedzi: 9
    Autor: 06-17-2007, 22:26
  3. turbo pascal kody zrodlowe
    By faD in forum Delphi/Pascal/Lisp
    Odpowiedzi: 11
    Autor: 05-30-2007, 20:47
  4. zadnia z informatyki --> pascal
    By slawek14 in forum Delphi/Pascal/Lisp
    Odpowiedzi: 6
    Autor: 04-13-2007, 19:13
  5. Pascal prostokąt
    By kosiarz in forum Delphi/Pascal/Lisp
    Odpowiedzi: 3
    Autor: 03-04-2007, 02:30

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj