Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Rekomendowane odpowiedzi

Opublikowano

Stworzymy prostą procedurę by zrozumieć na czym polega jej działanie:

 

procedure Rysuj(x1, y1, x2, y2: Integer; kolor: TColor);

begin

Form1.Canvas.Brush.Color:=kolor;

Form1.Canvas.Rectangle(x1, y1, x2, y2);

end;

 

powyższa procedura rysuje kwadrat o podanym kolorze i w określonym obszarze. Aby wykorzystać procedurę Rysuj potrzebny nam będzie przycisk. Wstaw go na formę i w zdarzeniu OnClick wpisz:

 

rysuj(10, 10, 50, 50, clGreen);

 

Uruchom program i kliknij na przycisku. Zapewne zauważyłeś, że na formie został narysowany zielony kwadrat. Spytasz: "I po to są procedury". To jest tylko przykład. Rozpatrzmy taki przypadek: narysuj 100 kwadratów o różnych kolorach i w różnych miejscach. Kod procedury Rysuj zajmuje 2 linijki, a jej wykonanie tylko 1. A co gdyby procedura miała wykonać operacje mieszczące się w 100 linjikach kodu? Jak widać rozbudowany kod możemy sprowadzić do jednej linijki i wykorzystywać go w kazdym miejscu programu.

 

Podobne do procedur są funkcje. Różnią się tym że deklarujemy jej wynik, tzn. czy ma to być tekst, liczba itp. Najlepiej coś wyjaśnić na przykładzie:

 

function CzyZero(l1, l2: integer) : string;

begin

if l1-l2=0 then Result:='Wynikiem jest zero' else

Result:='Wynikiem nie jest zero';

end;

 

Teraz wstaw na formę Button i dwa Labele. Pod zdarzenie OnClick przycisku wpisz:

Label1.Caption := CzyZero(10,234);

Label2.Caption := CzyZero(10,10);

 

Jak widać nasza funkcja działa poprawnie. Zwraca ona wyniku odejmowania tylko odpowiedni tekst. Wynik wykonania funkcji podajemy po słowie Result:=. Teraz zajmiemy się modułem. Jest to plik, który zawiera procedury i funkcje. Stworzymy moduł, który zawiera powyższe przykłady. Zamknij wszystkie projekty i utwórz nowy unit (File -> New -> Unit).

 

Skasuj jego zawartość, wklej poniższy kod i przyjżyj się mu:

 

unit test;

 

interface

 

{ informujemy moduł, że korzysta on z grafiki }

uses Graphics;

 

{ informujem moduł jakie zawiera funkcje i procedury }

function CzyZero(l1, l2: integer) : string;

procedure Rysuj(can: TCanvas; x1, y1, x2, y2: Integer; kolor: TColor);

 

implementation

 

{ nasza funkcja}

function CzyZero(l1, l2: integer) : string;

begin

if l1-l2=0 then Result:='Wynikiem jest zero' else

Result:='Wynikiem nie jest zero';

end;

 

{ nasza procedura. Została lekko zmieniona (can: TCanvas). Jako że nie mamy formy, musimy poinformować procedurę na czym ma rysować kwadrat. O Canvasie można poczytać w rozdziale 14}

procedure Rysuj(can: TCanvas; x1, y1, x2, y2: Integer; kolor: TColor);

begin

can.Brush.Color:=kolor;

can.Rectangle(x1, y1, x2, y2);

end;

 

end.

 

Zapisz go do jakiegoś katalogu (np c: est) jako "test". Teraz utwórz nową aplikację (File -> New -> Application) i zapisz ją do tego samego folderu . Na formę wstaw Button i Label. Do deklaracji "uses" programu dodaj test. Teraz w zdarzeniu OnClick przycisku wpisz:

 

rysuj(Form1.Canvas, 10, 10, 50, 50, clMaroon);

Label1.Caption := CzyZero(100, 50);

 

Jeżeli wwszystko wykonałeś prawidłowo to ujżysz taki sam efekt jak przy wykonaniu procedury Rysuj i funkcji CzyZero w podanych wcześniej przykładach. Jeżeli mamy wiele funkcji i procedur, z których korzystamy w naszym programie możemy utworzyć moduł. Po co? Zauważ, że kod programu staje się bardziej przejrzysty i estetyczny.

Opublikowano

Bardzo przydatne dla Newbiątek. Wiele osób chce zacząc programowanie lecz nie wie od czego :). Teraz pewnie wszyscy bedą się udawać na MPC FORUM :D.

 

 

Poradnik napisany ładnie i czytelnie. A tak wogule to widać że sie starasz.

 

 

 

 

Pozdrawiam NMN

Deleted.

~M@niek

Opublikowano
Bardzo przydatne dla Newbiątek. Wiele osób chce zacząc programowanie lecz nie wie od czego :). Teraz pewnie wszyscy bedą się udawać na MPC FORUM :D.

 

 

Poradnik napisany ładnie i czytelnie. A tak wogule to widać że sie starasz.

 

 

 

 

Pozdrawiam NMN

 

Zrąbało Cię człowieku? Wszystkie jego artykuły to Ctrl + c, Ctrl +v... I to BEZ PODANIA ŹRÓDŁA! Kokosz powinien go zbanować...

 

Idiota nawet zapewne nie wie co to jest... Na co wskazuje opis do tematu: "Delphia". Po prostu ku*as opada...

 

Żeby nie było, że to oskarżenia bezpodstawne: wszystkie artykuły skopiował stąd:

To jest ukryta treść, proszę

9989.jpg

"Głupców nie sieją, sami się rodzą"

Opublikowano

Później jeszcze ktoś zauważy i oskarży mpc o łamanie praw autorskich. Kokosz powinien kasować skopiowane i niepodpisane artykuły, a delikwentów którzy to robią banować.

9989.jpg

"Głupców nie sieją, sami się rodzą"

Opublikowano

O ta co wy :D nie wiedziałem że tu są aż tacy geniusze ;D Sorki a co do autora to wiekszą satysfakcje dałoby ci napisanie własnego tutoriala. Nie ważne co potrafisz ważne jest to ze chcemy sie czegoś nauczyć.

 

 

To jest tylko moje skromne zdanie.

 

 

 

Pozdrawiam NMN

Deleted.

~M@niek

×
×
  • Dodaj nową pozycję...