Forum: Programmieren allgemein
by Uwe Raabe,
16. Apr 2017
Das ist richtig! Es ist in der Regel auch notwendig die Typen beim Aufruf anzugeben IniF.WriteEnum<TIniSettings, TModes>(...). Wann der Compiler das auch ohne die Angabe hinkriegt, habe ich auch noch nicht so richtig rausgefunden.
Forum: Programmieren allgemein
by Uwe Raabe,
16. Apr 2017
Soll denn Ident vom selben Typ sein wie Value? Ich denke wohl nicht. Wenn es zwei unterschiedliche Typen sind, dann muss man das auch so deklarieren:
procedure WriteEnum<T,T2>(const Section: string; const Ident: T2; Value: T);
Forum: Programmieren allgemein
by Uwe Raabe,
16. Apr 2017
Etwas so?
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: