列挙型について

列挙型と言ってもようは整数値です。 しかしDelphiでは他言語と違ってそのまんま整数ではありません。

//列挙型であるTServerTypeを宣言
type
  TServerType = (stPOP3,stIMAP4,stHTTP);
  	
procedure なんとかかんとか
var
  Server:TServerType;
begin
  Server := 0;	
end;

上は間違いです。

じゃあファイルに保存&読み込みがしたいときはどうするのか??というと 整数値をキャストしちゃえばできます。

//---------------------------------------------
// 列挙型をテキストファイルから読み込み
//---------------------------------------------

//列挙型であるTServerTypeを宣言
type
  TServerType = (stPOP3,stIMAP4,stHTTP);
  	
procedure なんとかかんとか
var
  Server:TServerType;
  F:TextFile;
  tmpServer:integer;
begin
  AssignFile('C:\aaa.txt',F);
  Reset(F);
  //いったんtmpServer(integer型)に読み込み
  Readln(F,tmpServer);
  Close(F);
  //列挙型にする
  Server := TServerType(tmpServer);	
end;

保存するならord()を使います。

//---------------------------------------------
// 列挙型をテキストファイルに整数値として保存
//---------------------------------------------

//列挙型であるTServerTypeを宣言
type
  TServerType = (stPOP3,stIMAP4,stHTTP);
  	
procedure なんとかかんとか
var
  Server:TServerType;
  F:TextFile;
begin
  Server := stPOP3;
  AssignFile('C:\aaa.txt',F);
  Rewrite(F);
  //保存
  Writeln(F,ord(Server));  //ファイルには0が保存されます
  Close(F);
end;

戻る