Ich weis das Thema ist schon fast 15 Jahre alt.
Um so erstaunlicher das Delphi noch immer diese Einschränkung gilt.
Wenn sowas geht, gibt es wirklich keinen sinnvollen Grund globale generische Procedure und Funktionen zu verbieten:
Delphi-Quellcode:
type
TIfThenHelper = class helper for TObject
class function IfThen<T>(AValue: Boolean; const ATrue: T; const AFalse: T): T; static;
end;
implementation
class function TIfThenHelper.IfThen<T>(AValue: Boolean; const ATrue: T; const AFalse: T): T;
begin
if AValue then
Result := ATrue
else
Result := AFalse;
end;
Leider ist immer nur ein Helper pro Klasse und
Unit gültig, was die Nützlichkeit einschränkt.
Es ist aber möglich für eine abgeleitete Klasse einen weiteren Helper zu deklarieren.
Dann kann man beide Helper gleichzeitig in dieser Klasse nutzen.