Programowanie w języku Delphi

Begin

  • 2016-09-04 06:26
  • 9 komentarzy
  • 4096 odsłon
  • Oceń ten tekst jako pierwszy
begin - słowo kluczowe języka Delphi

Słowo kluczowe języka Delphi (także języka Pascal) oznaczające rozpoczęcie właściwych instrukcji programu. Pomiędzy słowami kluczowymi begin i end można zawierać także zbiory instrukcji, które można umieścić w dowolnym miejscu kodu (istnieją wyjątki od tej reguły - patrz dalej).

W programie Delphi musi znaleźć się przynajmniej jeden blok instrukcji, aby program był funkcjonalny (czyli coś wykonywał).

program AppName;
 
{$APPTYPE CONSOLE}
 
begin
  Writeln('Hello World');
end.


Uruchamiany program rozpoczyna swoje działanie, właśnie w bloku begin .. end, a konkretnie w linii 6. Instrukcja Writeln powoduje wyświetlenie tekstu na konsoli.

Słowo kluczowe begin jest również używane do grupowania instrukcji.

Ilośc instrukcji begin i end musi być sobie równa. W przypadku zbyt dużej liczby słów begin kompilator wyświetla błąd: [Error] nazwa_projektu.dpr: '.' expected but ':' found. Brak słowa end spowoduje wyświetlenie błędu: [Error] nazwa_projektu.dpr: 'END' expected but end of file found. Wyjątkiem są moduły, których zawartość musi kończyć się słowem end.

Wyjątki


Słowo kluczowe begin nie jest dozwolone w sekcji Interface oraz bezpośrednio w sekcji Implementation modułu. Przykład kodu:

unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;
 
type
  TForm1 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
  begin
 
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
end.


Powyższy kod spowoduje wystąpienie błędu: [Error] Unit1.pas(17): Statements not allowed in interface part.



Zobacz także:

9 komentarzy

holypodi 2009-10-09 18:40

Jeżeli bierzemy pod uwagę sam wyraz "end;", to twierdzenie że "Ilość instrukcji begin i end musi być sobie równa" jest błędne. end; stosujemy także w rekordach, klasach, obiektach, instrukcjach warunkowych case..of .

Deti 2006-01-15 16:35

Po co takie komentarze ?.. jeśli czegoś brakuje lub jest nie tak zawsze możecie poprawić lub dopisać..

Adamo 2005-12-21 15:28

<quote>Ilośc instrukcji begin i end musi być sobie równa</quote>

niby czemu ? każdy begin musi się kończyć słowem end, ale nie każdy end musi się zaczynać słowem begin, można rozpocząć np try, case, record, class, implementation i jeszcze chyba kilkoma innymi słowami (nie mówię że są to zamienniki begina tylko bloki które też się zamyka endem)

no nie wiem ale używanie begin i end jest normalne, intuicyjne i w ogóle nie ma nic łatwiejszego, natomiast jakbym pierwszy raz naprawdę się spotkał z tymi instrukcjami to mam wrażenie że bym miał strasznie zamotane w głowie, na pewno IMO nie jest to artykuł dla totalnego nowicjusza, a nikomu innemu on się nie przyda ...

Adam Boduch 2005-12-19 15:20

A dlaczego by nie? :P

Misiekd 2005-12-19 14:31

No co Ty tak obcy artykuł poprawiac :P

PS. no teraz gitarra :P

Adam Boduch 2005-12-19 14:21

Czemu wiec nie poprawicie? :]

Smiglo 2005-12-19 11:39

No właśnie - bo z tego wynika, że "begin" i "end" to wymysł Delphi, a przecież pochodzą one z pascala.

Misiekd 2005-12-19 02:20

Troche temat został potraktowany po macoszemu. To co zostało opisane tworzy samo środowisko przy starcie nowego projektu. Należało raczej skupić się na <ort>wykożystaniu</ort> begin .. end w procedurach, funkcjach, instrukcjach if, with, for, itp. Można tez było napisać, że pascalowe begin .. end odpowiada c (c++) { }

Adam.Pilorz 2005-12-19 00:40

Chciałbym tylko zaznaczyć, że w modułach może występować jedno słowo "end" więcej niż "begin". Zawsze moduł musi kończyć się "end.", ale nie musi mieć pełnego bloku "begin..end." w tym miejscu.
Tam gdzie jest ten błąd: [Error] nazwa_projektu.dpr: '.' expected but ':' found wydaje mi się, że powinien być średnik a nie dwukropek.
Po trzecie bardzo pobieżnie jest zaznaczone, że begin..end występuje jako blok instrukcji, cały czas jest o głównym kodzie programu, w którym spotyka się to statystycznie kilkaset razy rzadziej (pewnie gdzieś tyle wynosi średnia liczba bloków begin..end w programie).