2016-02-26 45 views
1

我有三個編輯框,這些框用於將參數提供給我的數據庫的查詢,返回執行並返回所需的結果。這所有的作品中,我遇到的問題是這樣的 :E2015在Delphi中使用編輯框

if ((DayOfWeekSCH.Text) and (EndTimeSCH.Text) and (StartTimeSCH.Text)) <> '' then 

DayOfWeekSCHEndTimeSCHStartTimeSCH都是編輯框,什麼我試圖做的,就是確保這些盒子不是空的執行前執行查詢的代碼。但我得到了E2015 Error,我不明白爲什麼我會得到它。

編輯:這是完整的錯誤代碼:

[dcc32錯誤] PAvailableForm.pas(37):E2015操作員不適用於此的操作數類型

回答

2

E2015:操作員不適用於此操作數類型

其中<string> and <string>沒有意義,因爲and被解釋爲boolea n或按位運算符,這取決於其操作數:因此錯誤。

參見Boolean OperatorsLogical (Bitwise) Operators

看來要實現這樣的事情:

if DayOfWeekSCH.Text + EndTimeSCH.Text + StartTimeSCH.Text <> '' then 

反正上面是執行字符串比較錯誤的方式。
您可能想查看this answer如何檢查字符串是否爲空。

相關的問題,因爲一個編輯框,說TEdit,從TControl下降時,GetTextLen方法,以檢查文本緩衝區大小可以使用:如果0文本爲空。

if (DayOfWeekSCH.GetTextLen > 0) and (EndTimeSCH.GetTextLen > 0) and (StartTimeSCH.GetTextLen > 0) then 
+0

'如果DayOfWeekSCH.Text + EndTimeSCH.Text + StartTimeSCH.Text <> '' then'is可怕。在運行時分配/處理字符串以避免編碼時出現一些擊鍵? –

+0

@UliGerhardt「你的代碼應該如下:」是誤導性的:會改變 – fantaghirocco

+1

提問者當然不想連接,你應該從你的答案中刪除。 –