LAZARUS


  PROCEDURY I FUNKCJE

  procedure nazwa_procedury (parametry);
  var ....;
   begin
  ...... ;
  end;

Zmienne zadeklarowane w „var” są zmiennymi lokalnymi i dostępnymi tylko w tej procedurze. Deklaracji tej może nie być w ogóle np. gdy stosujemy tylko zmienne globalne (nie jest to zalecane).
Przykład:
Procedura rysowania koła przez podanie współrzędnych środka, promienia i wielkości składnika koloru niebieskiego (0-255) jako wypełnienia.

 procedure TForm1.circle(a, b, r, kolor: integer);
 begin
  canvas.brush.color := RGB(0, 0, kolor);
  canvas.ellipse(a+r, b+r, a-r, b-r);
 end;


  FUNKCJE

 function nazwa_funkcji (parametry): typ_wyniku;
 var ....;
 begin
  ......;
  result:= ………… ; { zwracany wynik }
 end;

Zmienne zadeklarowane w „var” są zmiennymi lokalnymi i dostępnymi tylko w tej funkcji. Deklaracji tej może nie być w ogóle np. gdy stosujemy tylko zmienne globalne. Zamiast wyprowadzania wyniku działania funkcji przez „result” można wykonać podstawienie pod nazwę funkcji, która przejmuje wtedy własności zmiennej.

 function nazwa_funkcji (parametry): typ wyniku;
 var ....;
  begin
  ......;
  nazwa_funkcji:= ………… ; { zwracany wynik }
 end;


Przykład:  Funkcja ustala kolor w konwencji RGB przy użyciu typu TColor.

 function TForm1.RGB(r,g,b: byte):TColor;
 begin
  result:=(b shl 16) or (g shl 8) or r;
 end;

Opisane procedury i funkcje muszą mieć swoje nagłówki w sekcji public. Nazwy nie mogą wówczas zawierać przypisania do formularza.

 public
  function RGB(r,g,b: byte):TColor;
  procedure circle(a,b,r,kolor: integer);


  WYWOŁANIA

Procedury i funkcje wywołujemy podając ich nazw z parametrami aktualnymi.
Przykład: zastosowanie procedury „circle” i funkcji „RGB”