Wie kann ich daraus eine Funktion schreiben, die alle meine Enum-Typen annehmen kann?
Etwas so?
Delphi-Quellcode:
function ReadFromIni<T>(IniF: TCustomInifile; const sCurrentSection: string; Ident: TIni_Idents; const Default: T): T;
begin
Result := TEnumFunctions.GetValue<T>(IniF.ReadString(sCurrentSection, TEnumFunctions.GetName(Ident), TEnumFunctions.GetName<T>(Default)));
end;
Der Aufruf wäre dann:
Delphi-Quellcode:
begin
aMode := ReadFromIni<TModes>(IniF, sCurrentSection, TIni_Idents.mode, TModes.mManual);
end;
Wenn das Inifile und die Section im Scope der Funktion bekannt sind, kann man die Parameter dafür auch weglassen.