2013-09-24 41 views
0

我已經寫了代碼與2009年德爾福並更新了CodeGear的德爾福XE2。它與德爾福2009完美編譯,但現在它不!它給我這個錯誤,而不是:不兼容的類型:「TFormStyle」和「TTeeFontStyle」

[DCC錯誤]不兼容的類型:'TFormStyle'和'TTeeFontStyle'! 我試圖創建一個新的Vcl的窗體應用程序並寫道,產生這種錯誤的命令:

Form1.FormStyle := FsNormal; 

,它編譯完美過,我不知道爲什麼會這樣,但我相信沒有什麼錯與我的語法,請幫助,謝謝。 這是不編譯代碼:

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; 
var Handled: Boolean); 
begin 
begin 
KeyPreview := True; 
case Msg.message of 
WM_KEYDOWN: 
    if Msg.wParam = 27 then 
    begin 
    form1.Menu:=mainmenu1; 
    fullscreen1.Checked:=false; 
    form1.formstyle:=fsnormal; 
    form1.BorderStyle:=bssizeable; 
    end 
    else 
    if msg.wParam=VK_f5 then 
    begin 
    browser.Navigate(memo2.Text); 
    end; 
    end; 
end; 
end; 

回答

5

有一些的TeeChart模塊,這是在「使用」的條款名稱衝突。您可以編寫完全限定的標識符名稱來解決此問題:

formstyle := Vcl.Forms.fsnormal; 

P.S.請注意,我也刪除了"form1."限定符。通常它是不是在形式方法體中是非常有用的,有時甚至是有害的(假設你有TForm1的多個實例)

1

除了MBO的答案,我認爲這是更好地使用:

Self.formstyle := Vcl.Forms.fsnormal; 

當你有多個TForm1的實例時,這會隨時調整你正在使用的實例。

+1

@Mbo已經說過這一點。 –

+0

爲什麼一個答案在答案中重複了一個答案,這實際上也回答了問題,得到了選票? –

+1

塞爾塔克,因爲我沒有足夠的代表對先前的答案發表評論,這是我唯一的選擇(試圖編輯Mbo答案被拒絕)。我也看到MBo已經更新了他的答案。 – RFerwerda

0

與它來自特定枚舉類型限定值:

Form1.FormStyle := TFormStyle.fsNormal; 

甚至:

Form1.FormStyle := Vcl.Forms.TFormStyle.fsNormal;