Hola josep.
La verdad mi conocimiento en VB es nulo, pero basándome en estos enlaces:
VB String-Handling Functions
VB Date-Handling Functions
Val
Right
Mid
Date$
Creo que podría traducirse como:
Código Delphi
[-]
...
cursa.competicion := 'C';
case codi of
1 : cursa.categoria := 'E-UCI';
2 : cursa.categoria := 'ELITE';
3 : cursa.categoria := 'SUB23';
4 : begin
min := StrToInt(RightStr(DateToStr(Date), 4)) - 17;
max := StrToInt(RightStr(DateToStr(Date), 4)) - 18;
if StrToInt(Copy(cursa.codiUCI,4,4)) = min then
cursa.categoria := 'JUN-1'
else if StrToInt(Copy(cursa.codiUCI,4,4)) = max then
cursa.categoria := 'JUN-2';
end;
80 : cursa.categoria := 'SUB23';
end;
...
Revisa si obtenes los resultados esperados.
Saludos
Pd: Sé benévolo en la sentencia, acordate que es mi primera vez en VB
(y espero la última
)