Mas nada está perdido. Com alguns "truques" da POO é possível estender um frame de tal forma que o mesmo possa ser um pouco mais esperto.

Delphi, técnicas de programação, Intraweb, Banco de Dados, SQL e o que mais der na telha...
O primeiro parâmetro da função é uma expressão booleana. Se ela for verdadeira, o segundo parâmetro será o retorno de IfThen. Caso ela seja falsa, o terceiro parâmetro passado será o retorno de nossa função.
O segundo e o terceiro parâmetros podem ser dos tipos:
Além da IfThen da unit Math, há uma implementação da IfThen na unit StrUtils. Nesse caso, o tipo de parâmentro esperado pela IfThen são strings e a função também retorna uma string.
Sei que pode parecer extranho o uso inicial da IfThen, mas com o tempo você vai gostar, assim como eu.
Bom proveito...
AddSlash é apenas um alias para
IncludeTrailingPathDelimiter, e digamos de passagem, é um porre ter que ficar
digitando IncludeTrailingPathDelimiter toda hora, né?
Nossso IWUserSession resumido ficaria da seguinte forma:
DoDebug é uma rotina que uso para gerar um log de tudo que acontece
na minha aplicação. Note que a exceção gerada não é exibida para o usuário, pois
nesse caso não há necessida. Como bom desenvolvedor, sempre de praxe eu dou uma
conferida no arquivo de log pra ver se há algum problema na aplicação.
No evento OnDestroy de nosso IWUserSession, basta executar o método DeleteFiles. Ao fim da sessão do usuário, nossos arquivos serão então, deletados.
Durante o decorrer de sua aplicação, vá usando UserSession.AddFileToDelete(NomeDoArquivo) a medida que sua aplicação gerá-los.
Beleza? Agora sim...