列舉為一有序的數列, 第一個列舉數為 0, 可以利用 Ord 來轉型取得其順序, 例如:
type
TOrdinalType = (otFirst, otSecond, otThird);
其中 Ord(otFirst) = 0, Ord(otSecond) = 1 .....
接下來就可以利用下面的兩個函式進行互轉的動作.
代碼: 選擇全部
function StrToTOrdinalType(FStr: String): TOrdinalType;
var
i : integer;
begin
i := GetEnumvalue( TypeInfo(TOrdinalType) , FStr );
Result := TOrdinalType(i);
end;
function TOrdinalTypeToStr(FOrdinalType: TOrdinalType): String;
begin
Result := GetEnumName( TypeInfo(TOrdinalType) , Ord(FOrdinalType));
end;
//測試段:
procedure Tform1.Button3Click(Sender: TObject);
begin
showmessage(TOrdinalTypeToStr(otFirst)); //檢驗是否可以由 otFirst 轉為 'otFirst'
if StrToTOrdinalType('otFirst') = otFirst then Showmessage('Right'); //檢驗是否可以由 'otFirst' 轉為 otFirst
end;