在下面的代碼,我得到的錯誤,說:不兼容的類型:「tValidPos」和「TPOS」
function ToPos : tValidPos;
type
tPos = (poAboveCenter , poAboveLeft , poAboveRight);
tValidPos = array [Low (tPos)..High (tPos)] of tPos;
const
validPos : tValidPos = (poAboveRight, poAboveLeft, poAboveCenter);
var
i, pos : tValidPos;
begin
i := Low (validPos); // Incompatible types: 'tValidPos' and 'tPos'
pos := validPos [i]; // Incompatible types: 'Enumeration' and 'tValidPos'
Result := i;
for i := Low (validPos) to High (validPos) do
if validPos [i] = pos then begin
Result := validPos [i];
Break;
end;
end;
我無法弄清楚什麼是錯的,因爲
i
和validPos
都是類型的tValidPos
- 同樣適用於
pos
和validPos
如果我使用像pos [0] := validPos [i]
括號我仍然得到「不兼容的類型:‘枚舉’和‘tValidPos’」
請幫我解決這個問題。
看着你的代碼很難想象你想要做什麼?你能解釋一下你想用這個代碼做什麼嗎?另外,函數結果「tValidPos」在哪裏聲明? –
在上一個問題中(您刪除的那個),我解釋說您發佈的代碼沒有意義,並且詢問您何時轉發,請在問題文本中解釋*您真正嘗試實現的內容。在你發佈的代碼中有幾個問題,但是如果我們不知道你想要做什麼,很難告訴你如何解決它們。再次,請編輯您的問題,並提供您的代碼應該做什麼的解釋,以便我們瞭解如何做以幫助您找到答案。 –
我會盡力解釋: 原函數接收tComboBox和有效位置的列表 。該列表是tValidPos,即, 反過來,是一個tPos數組。 tPos是列舉了所有可能位置的枚舉數 。有效的 職位列表是可變的。每個要定位的元素都有 它是有效的位置。該函數爲每個tComboBox.ItemIndex返回對應的tPos的 。 我發佈的代碼爲簡化目的,但最終 ,我想我沒有成功。 – user2383818