2016-02-01 78 views
-2

我不明白爲什麼我的代碼不能編譯,任何人都可以幫我解決這個問題。 任何一種意見是有益的語法錯誤,「;」預期但發現「ELSE」 - 與IF-ELSE條件錯誤 - FreePascal

這是代碼:

procedure TForm1.Button2Click(Sender: TObject); 
var 
    days : integer; 
begin 
    if(Edit2.Text <> '') then 
    days:= StrToInt(Edit2.Text); 
    DDate.Minus(days); 
    Edit1.Text := DDate.GetDate 
    else 
    ShowMessage('The field is required'); 
end; 
+0

你看到的錯誤是什麼?這將有助於包括在帖子中。 –

+0

在'Edit1.Text:= ...'末尾缺少';'...... – jonhopkins

回答

1

如果你需要true_statement或false_statement兩個或兩個以上的語句,則該組語句一定要放在一個開始......內結束塊

procedure TForm1.Button2Click(Sender: TObject); 
var 
    days: integer; 
begin 
    if(Edit2.Text <> '') then 
    begin 
    days := StrToInt(Edit2.Text); 
    DDate.Resta(days); 
    Edit1.Text := DDate.GetDate; 
    end 
    else 
    ShowMessage('The field is required'); 
end; 

來源:http://wiki.freepascal.org/Else

1

不應該,如果被封閉在開始 - 結束塊之後的部分?縮進建議如此。像這樣:

procedure TForm1.Button2Click(Sender: TObject); 
var 
    days : integer; 
begin 
    if(Edit2.Text <> '') then 
    begin 
     days:= StrToInt(Edit2.Text); 
     DDate.Minus(days); 
     Edit1.Text := DDate.GetDate; 
    end 
    else 
    ShowMessage('The field is required'); 
end;