2017-04-16 39 views
-3

我也跟着這樣:http://delphi.wikia.com/wiki/Simple_Calculator_Tutorial德爾福錯誤:Equals.Caption:=;表達期待但'''發現

這是我在Delphi代碼:

unit Unit3; 

interface 

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

type 
    TForm3 = class(TForm) 
    Addition: TButton; 
    Subtraction: TButton; 
    Multiplication: TButton; 
    Division: TButton; 
    One: TButton; 
    Two: TButton; 
    Three: TButton; 
    Four: TButton; 
    Five: TButton; 
    Six: TButton; 
    Seven: TButton; 
    Eight: TButton; 
    Nine: TButton; 
    Zero: TButton; 
    Decimal: TButton; 
    Enter: TButton; 
    ClearValue: TButton; 
    Panel1: TPanel; 
    Negative: TButton; 
    Reset: TButton; 
    NumberEdit: TEdit; 
    Equals: TLabel; 
    procedure NegativeClick(Sender: TObject); 
    procedure AdditionClick(Sender: TObject); 
    procedure SubtractionClick(Sender: TObject); 
    procedure MultiplicationClick(Sender: TObject); 
    procedure DivisionClick(Sender: TObject); 
    procedure EnterClick(Sender: TObject); 
    procedure ClearValueClick(Sender: TObject); 
    procedure ResetClick(Sender: TObject); 
    procedure NumberEditChange(Sender: TObject); 
    procedure NumberButtonClick (Sender: TObject); 

    private 
    { Private declarations } 
    public 
    { Public declarations } 
    end; 

var 
    Form3: TForm3; 

implementation 

{$R *.DFM} 

var 
    FNumber : real; 
    Math : string;  

procedure TForm3.NumberButtonClick(Sender: TObject); 
begin 
    NumberEdit.Text := NumberEdit.Text + (Sender as TButton).Caption; 
end;  

procedure TForm3.NegativeClick(Sender: TObject); 
var 
    OriginalNumber: real; 
    TextNumber: string; 
begin 
    OriginalNumber := -(StrToFloat(NumberEdit.Text)); 
    TextNumber := FormatFloat('0.##########', OriginalNumber); 
    NumberEdit.Text := TextNumber 
end;  

procedure TForm3.AdditionClick(Sender: TObject); 
begin 
    Math := 'Add'; 
    FNumber := StrToFloat(NumberEdit.Text); 
    NumberEdit.Clear; 
end; 

procedure TForm3.SubtractionClick(Sender: TObject); 
begin 
    Math := 'Subtract'; 
    FNumber := StrToFloat(NumberEdit.Text); 
    NumberEdit.Clear; 
end; 

procedure TForm3.MultiplicationClick(Sender: TObject); 
begin 
    Math := 'Multiply'; 
    FNumber := StrToFloat(NumberEdit.Text); 
    NumberEdit.Clear; 
end; 

procedure TForm3.DivisionClick(Sender: TObject); 
begin 
    Math := 'Divide'; 
    FNumber := StrToFloat(NumberEdit.Text); 
    NumberEdit.Clear; 
end;  

procedure TForm3.EnterClick(Sender: TObject); 
var 
    Answer, SNumber : real; 
    Text : string;  
begin 
    SNumber := StrToFloat(NumberEdit.Text);  
    begin 
    if Math = 'Add' then 
     Answer := FNumber + SNumber; 
    Text := FormatFloat('0.#####', Answer); 
    Equals.Caption := '= ' + Text; 
    NumberEdit.Clear; 
    end; 

    begin 
    if Math = 'Subtract' then 
     Answer := FNumber - SNumber; 
    Text := FormatFloat('0.#####', Answer); 
    Equals.Caption := '= ' + Text; 
    NumberEdit.Clear; 
    end; 

    begin 
    if Math = 'Multiply' then 
     Answer := FNumber * SNumber; 
    Text := FormatFloat('0.#####', Answer); 
    Equals.Caption := '= ' + Text; 
    NumberEdit.Clear; 
    end; 

    begin 
    if Math = 'Divide' then 
     Answer := FNumber/SNumber; 
    Text := FormatFloat('0.#####', Answer); 
    Equals.Caption := '= ' + Text; 
    NumberEdit.Clear;  
    end; 

end; 

procedure TForm3.ClearValueClick(Sender: TObject); 
begin 
    NumberEdit.Clear; 
end; 

procedure TForm3.ResetClick(Sender: TObject); 
begin 
    Equals.Caption := ; 
    NumberEdit.Clear; 
    FNumber := 0; 
    SNumber := 0; 
    Math := 'Default'; 
end; 

end. 

這是我收到錯誤的截圖:

This Screenshot Errors

+1

請不要使用截圖。只需在代碼中標記(例如用'// < - 這裏是錯誤')的註釋,就可以在錯誤發生的地方進行標記。 –

+4

或更好的是,在消息窗口中右鍵單擊,然後從菜單中選擇*複製*,然後將其作爲文本粘貼到您的帖子中。只有在沒有其他方式可以說明問題時才應使用圖像,而這種情況並非如此。 –

回答

5

錯誤行說這一切:它期望一個表達式,但它會找到一個分號。

這條線:

Equals.Caption := ; 

是不是一個有效的語句。您必須爲Caption分配一個字符串(表達式生成一個字符串,該字符串也只能是字符串文字)。它可以是一個空字符串,'',例如

Equals.Caption := ''; 

我看到你使用的原始代碼有這個錯誤了。好吧,似乎是一個錯字,可能發生在他們標記代碼時突出顯示諸如<b><i>之類的HTML標記。