1. ';' not allowed before 'ELSE'

Pôvodný zdrojový kód

unit Unit1;

interface

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

type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin

if pos(Edit1.Text, Edit2.Text) = 0 then
ShowMessage('Retazec ' + Edit2.Text + ' neobsahuje podretazec ' + Edit1.Text);
else
ShowMessage('Retazec ' + Edit2.Text + ' obsahuje podretazec ' + Edit1.Text);
end;

{

[Error] Unit1.pas(33): ';' not allowed before 'ELSE'
--------------------------------------------------------------------------------

Pred END nie je dovolená ;

PREČO?

Príkaz if then else sme nezapísali správne, pred kľúčovým slovom END v Pascale
nikdy nie je bodkočiarka.

RIEŠENIE

Prebytočnú bodkočiarku odstránime.

Upravený zdrojový kód

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

procedure TForm1.Button1Click(Sender: TObject);
begin

if pos(Edit1.Text, Edit2.Text) = 0 then
ShowMessage('Retazec ' + Edit1.Text + ' neobsahuje podretazec ' + Edit2.Text)
else
ShowMessage('Retazec ' + Edit1.Text + ' obsahuje podretazec ' + Edit2.Text);

end;
--------------------------------------------------------------------------------

}
end.

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