So ganz genau kann ich Dein Problem nicht nachvollziehen. Wenn Du nicht direkt eine hilfreiche Antwort erhältst, könntest Du vielleicht mal noch abstrakter fragen (ohne zu viele Details zu der Anwendung selbst).
Grundsätzlich finde ich mit "if ... then ... Exit(X);" zu arbeiten nicht verkehrt.
Also etwa:
Delphi-Quellcode:
function Check(const Value: Integer): Integer;
begin
Result := -1;
if InRange(Value, 0, 9) then
Exit(1);
if InRange(Value, 10, 19) then
Exit(2);
end;
Das ist variabler als mit case und auch nicht unübersichtlicher.