Ver. 1.0 Beta, Nie masz kompilatora? Teraz mo¿esz pisaæ skrypty ONLINE! Wersja podstawowa -nie zawiera wszystkich poleceñ Pascala. S³u¿y do nauki podstaw

Pisanie w³asnych modu³ów w Turbo Pascalu i Delphi

Pascal

Wsteczwstecz Procedury i funkcje
W górêw górê Podstawy Pascala
Dalejdalej Data i czas

Pisanie w³asnych modu³ów w Turbo Pascalu i Delphi

Modu³y (units)


Modu³ Crt
Modu³ Graph
Modu³ Dos
W³asne modu³y



Modu³ Crt


Modu³ Crt zawiera procedury i funkcje przydatne w prostych operacjach u¿ywanych przewa¿nie w trybie tekstowym. Polecenia modu³u Crt pomagaj± te¿ w odczytywaniu stanu klawiatury.



ClrScr; -Procedura powoduj±ca wyczyszczenie zawarto¶ci ekranu i ustawienie kursora graficznego w lewym górnym rogu.


ClrEol; -Procedura która czy¶ci liniê tekstu od pozycji kursora do koñca lini.


Delay(czas: Word) -Procedura, która czeka tyle milisekund (milisekunda=1/1000 sekundy) ile wynosi zmienna czas. Zmienna Czas musi byæ typu WORD (word to liczba ca³kowita od 0 do 65535).


DelLine; -Procedura czy¶ci ca³± linie, w której znajduje siê kursor


GotoXY(X,Y: Byte); przenosi kursor do pozycji X i Y. Pozycja 1,1 oznacza lewy górny róg ekranu.


HighVideo; -Rozja¶nia kolory, tzn. je¿eli wpiszesz ciemny czerwony i co¶ chcesz nim narysowaæ, bêdzie narysowane to jasnym czerwonym.


InsLine; Wstawia pust± liniê tam, gdzie siê znajduje kursor a resztê przenosi w dó³.


KeyPressed - Funkcja która zwraca warto¶æ TRUE je¿eli zosta³ naci¶niêty klawisz lub FALSE je¿eli nie.


LowVideo -Przyciemnia kolory patrz HighVideo.


NormVideo -Przywraca normalne kolory.


NoSound; -Wy³±cza d¼wiêk ze SPEAKERA (g³o¶niczka wbudowanego w komputer).


ReadKey; -Wczytuje wci¶niêty klawisz z klawiatury.


Sound(Hz:Word); -W³±cza d¼wiêk w SPEAKERZE o czêstotliwo¶ci Hz, np. aby wydaæ d¼wiêk o czêstotliwo¶ci 200Hz musisz wpisaæ: Sound(200); Najmniejsz± liczb± jaka mo¿e byæ u¿yta jako d¼wiêk mo¿e byæ warto¶æ oko³o 60 Hz!


TextBackground(kolor:Byte); Ustawia kolor t³a pod tekstem. Standardowo jest czarne. Poni¿ej podano jaki kolor odpowiada jakiej liczbie. Przyk³ad u¿ycia : TextBackground(5);


TextColor(kolor:Byte); Ustawia kolor liter na warto¶æ jak± przyjmuje zmienna kolor. Przyk³ad u¿ycia : TextColor(15); lub je¶li masz jak±¶ zmienn± np. k:=15; piszesz TextColor(k);


TextMode(mode:integer); Ustawia specyficzny tryb tekstowy. Normalny ma 80 znaków w pozycji X i 25 w pozycji Y. Instrukcja ta zmienia ten tryb.


WhereX; -Funkcja, która przyjmuje warto¶æ typu Byte zawieraj±c± pozycjê poziom± (inaczej pozycja X) kursora tekstowego.


WhereY; -Funkcja przyjmuje pozycjê Y kursora.


Window(X1,Y1,X2,Y2:Byte); Procedura ta ustawia w pamiêci okno, w którym mo¿na pisaæ. Od tej pory ka¿dy tekst bêdzie wypisywany w tym oknie. X1 oznacza od którego znaku w poziomie ma siê zaczynaæ okno, Y1 -od którego ma siê zaczynaæ okno w pozycji Y, a X2 i Y2 to wspó³rzêdne koñcowe, np. Window(10,10,70,15); Pozycja 1,1 to górny lewy róg ekranu.


Warto¶ci kolorów

Kolory podane w poni¿szej tabelce s± wykorzystywane w procedurach TextBackGround i TextColor a tak¿e w trybie graficznym modu³u Graph.




Numer

Nazwa koloru

Kolor

0

czarny


1

niebieski


2

zielony


3

cyan


4

czerwony


5

fioletowy


6

br±zowy


7

j. szary


8

szary


9

j. niebieski


10

j. zielony


11

j. cyan


12

j. czerwony


13

j. fiolet


14

¿ó³ty


15

bia³y



Modu³ Graph


Modu³ Graph jest odpowiedzialny za tworzenie grafiki w trybie VGA -czyli w niskich rozdzielczo¶ciach. Standardowo u¿ywa rozdzielczo¶ci ekranu 640x480 oraz 16 kolorów. Bardzo czêsto jest wykorzystywany podczas nauki programowania w szkole.


Dobrze nadaje siê do tworzenia wykresów, prezentowania wyników obliczeñ. Jest do¶æ powolny i raczej nie stosuje siê go do tworzenia animowanych gier komputerowych. Wymaga plików ze sterownikami grafiki, np. egavga.bgi, który domy¶lnie znajduje siê w katalogu BGI w Turbo Pascalu.


Najczê¶ciej u¿ywane polecenia  (Dok³adny opis w pomocy Turbo Pascala -Shift + F1):
Circle, ClearDevice, DetectGraph, Ellipse, FloodFill, GetPixel, InitGraph, Line, OutText, OutTextXY, PutPixel, Rectangle, SetColor, SetFillColor, SetFillStyle, SetLineStyle, SetTextStyle, TextWidth, TextHeight



Opis niektórych poleceñ:

ClearDevice – Czyszczenie zawarto¶ci ekranu


FloodFill – Wype³nienie figury zadanym kolorem


Rectangle – Narysowanie prostok±ta


TextWidth – Sprawdzenie szeroko¶ci napisu



Modu³ Dos


Modu³ 'Dos' odpowiada za funkcje systemowe. Potrafi przegl±daæ pliki i katalogi, odczytywaæ godzinê i datê. Za jego pomoc± tworzy siê tak¿e obs³ugê tzw. przerwañ -czyli podprogramów, które s± wykonywane przy okre¶lonych zdarzeniach (naci¶niêcie klawisza, poruszenie myszk±).


Najczê¶ciej u¿ywane polecenia:
DiskFree, DiskSize, Exec, FindFirst, FindNext, GetDate, GetIntVec, GetTime, SetDate, SetIntVec, SetTime


Opis niektórych poleceñ:

SetIntVec – ustawienie procedury, która bêdzie siê wykonywaæ podczas wywo³ania przerwania


FindFirst, FindNext – Odnajdywanie plików i katalogów na dysku.


Exec – Wykonanie innego programu



W³asne modu³y


Modu³y udostêpnia nie tylko firma Borland, która napisa³a Turbo Pascala. Modu³ mo¿e stworzyæ ka¿dy, równie¿ Ty. Nie jest to nic skomplikowanego. Modu³ buduje siê do¶æ podobnie do zwyk³ego programu. Równie¿ trzeba utworzyæ nowy plik o rozszerzeniu .pas.


Modu³ rozpoczyna siê od s³owa unit, a koñczy s³owem end. (z kropk± na koñcu). Ka¿dy modu³ mo¿e korzystaæ z innych, wcze¶niej stworzonych modu³ów. Przed u¿yciem innych modu³ów nale¿y wpisaæ s³owo kluczowe interface. Po ich u¿yciu nastêpuje czê¶æ nag³ówka.


Nag³owek pozwala zdefiniowaæ, które procedury i funkcje bêd± widoczne dla innych tworzonych przez Ciebie plików. Czê¶æ procedur i funkcji, które znajduj± siê w Twoim module mo¿e byæ 'prywatna', dostêpna tylko wewn±trz tego modu³u.


Po czê¶ci nag³ówka nastêpuje czê¶æ implementacji. W tej czê¶ci piszesz ju¿ w³asny program. Ka¿da z pisanych procedur i funkcji musi sk³adaæ siê jeszcze raz z nag³ówka a nastêpnie z w³asnego kodu.



unit nazwa;
interface

uses Crt, Dos; {Mo¿na dodaæ inne modu³y, z których korzysta Twój modu³}

{nag³ówki w³asnych procedur i funkcji}
procedure moja_procedura(zmienna1, zmienna2 : Byte); {przyk³ad definicji procedury}
function nowa_funkcja(parametr : Integer) : Integer; {przyk³ad definicji funkcji}


implementation {czê¶æ implementacyjna}

procedure moja_procedura(zmienna, zmienna2 : Byte); {przyk³ad definicji}
begin
  WriteLn('Wpisa³es liczby: ', zmienna, ' i ', zmienna2);
end;

{jeszcze raz nag³ówek, ale ju¿ z implementacj±}
function nowa_funkcja(parametr : Integer) : Integer;
begin
   nowa_funkcja := parametr * 5; {przyk³ad tworzenia wyniku funkcji}
end;

end.

A jak w swoim programie u¿yæ w³asnego modu³u? Najpierw trzeba skompilowaæ taki modu³. S³u¿y do tego klawisz F9. Przeznaczenie (Destination) musi byæ ustawione na Disk. Wstêp do programowania opisuje jak ustawiæ te opcje.


Je¿eli powy¿szy modu³ nazwa³by¶ nazwa.pas to mog³oby to wygl±daæ nastêpuj±co:



program test_modulu;

uses nazwa; {Dodajemy w³asny modu³ do listy dostêpnych}

begin
  moja_procedura(1, 2);  {tu ju¿ korzystamy z w³asnych procedur i funkcji}
  WriteLn('nowa_funkcja(2) da wynik: ', nowa_funkcja(2));
end.

Modu³y powinny byæ pogrupowane tematycznie. Mo¿esz na przyk³ad utworzyæ modu³ obs³uguj±cy myszkê, modu³ do obs³ugi klawiatury, do grafiki, muzyki oraz inne.


Je¿eli chcia³by¶ zdobyæ wiêcej wiedzy na temat w³asnych modu³ów, przede wszystkim musisz samemu poeksperymentowaæ. Nie bój siê wymy¶laæ nowych rozwi±zañ. Spróbuj zrozumieæ zasady programowania.


Strona korzysta z plików cookie w celu ¶wiadczenia us³ug Google (reklamy, statytyki) oraz Facebook. Je¶li chcesz zablokowaæ pliki cookies wy³acz je w swojej przegl±darce. Potrzebujesz pomocy? kliknij