我更像是一个C/C++的人,但是我正在将一个pascal模块从向导中的整数类型转换为枚举类型,并且遇到了以下障碍(它是通过Alt-0到Alt-9直接选择页面):
procedure TfrmWizard.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var
i, j: TWizPages;
begin
j := Inc(Low(TWizPages), Key-Ord('0')); // << line with problem
IDE会在逗号Left side cannot be assigned to
和最后一个括号Incompatible types
上出现问题(当鼠标悬停在Incompatible types
上时,您给予太多时间阅读它)。
什么是正确的方法来做我想做的事情?
2条答案
按热度按时间k2fxgqgv1#
Inc
是一个过程,而不是像Succ
这样的函数。它递增第一个不能是常量的值。以下是工作版本:wixjitnu2#
Inc()
接受一个变量的引用,但你传递给它的是一个常量。试试这个: