2. ';' expected but '.' found

Pôvodný zdrojový kód

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Edit1: TEdit;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var n: integer;
begin
n:= StrToInt(Edit1.Text);
if n mod 2 = 0 then Label1.Caption:= 'Parne cislo'
else Label1.Caption:= 'Neparne cislo'
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Label1.Caption:= 'Pocet cislic: ' + IntToStr(length(Edit1.Text));
end;

procedure TForm1.Button3Click(Sender: TObject);
var n, pocet: integer;
begin
n:= StrToInt(Edit1.Text);
pocet:= 0;
while n>0 do begin
if (n mod 10) mod 10 = 1 then inc(pocet);
n:= n div 10;

Label1.Caption:= 'Pocet jednotiek v cisle: ' + IntToStr(pocet);
end;

{

[Error] Unit1.pas(93): ';' expected but '.' found

--------------------------------------------------------------------------------

Očakávala sa ; ale našla sa .

PREČO?

Chybu spôsobilo chýbajúce end. Prekladač objavil chybu až pri záverečnom end
s bodkou. V tomto prípade je potrebné chybu hľadať v poslednej procedúre.

RIEŠENIE

Zistíme, ku ktorému begin chýba end a doplníme ho. V našom prípade ide o end
na konci tela cyklu while.

Upravený zdrojový kód

--------------------------------------------------------------------------------

procedure TForm1.Button3Click(Sender: TObject);
var n, pocet: integer;
begin
n:= StrToInt(Edit1.Text);
pocet:= 0;
while n>0 do begin
if (n mod 10) mod 10 = 1 then inc(pocet);
n:= n div 10;
end;
Label1.Caption:= 'Pocet jednotiek v cisle: ' + IntToStr(pocet);
end;

--------------------------------------------------------------------------------

}

end.

Stiahnuť vzorový príklad (zdrojové kódy v Delphi)