Begin
rk7771
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:
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 .
Po co takie komentarze ?.. jeśli czegoś brakuje lub jest nie tak zawsze możecie poprawić lub dopisać..
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 ...
A dlaczego by nie? :P
No co Ty tak obcy artykuł poprawiac :P
PS. no teraz gitarra :P
Czemu wiec nie poprawicie? :]
No właśnie - bo z tego wynika, że "begin" i "end" to wymysł Delphi, a przecież pochodzą one z pascala.
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++) { }
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).