Ver. 1.0 Beta, Don't have a compiler? Now you can write simple scripts ONLINE! This is a basic version -does not include all the Pascal statements. Only to learn basics

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

Pascal

Back to previous articleprevious Procedury i funkcje
Go to main menuup Podstawy Pascala
Next articlenext 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.


This website uses cookie files in order to provide Google services (advertisements, analitycs) and Facebook. If you want to block using cookies, turn them off in your browser settings. Need a help? Click me