Hola amig@s,
Me gustaría saber vuestra opinión sobre la forma correcta de asignar un objeto y su liberación; Creo que es una pregunta seguramente muy simple, pero bueno...
En el método 1, al ser una variable local de un procedimiento ¿Se liberarían los recursos si hubiese alguna excepción después de la asignación?, ¿o debemos forzar con el segundo método siempre?
Tenemos la siguiente función que delimita una cadena de texto:
Código Delphi
[-]Function TForm1.DelimitarString(Cadena: String; Delimitador: Char): TStringList;
begin
Result := TStringList.Create;
Result.Delimiter := Delimitador;
Result.StrictDelimiter := True;
Result.DelimitedText := Cadena;
end;
Procedure TForm1.TratarCadena1;
Var
St: TStringList;
begin
St := DelimitarString('Uno;Dos;Tres', ';');
Showmessage(St[0] + #13 + St[1] + #13 + St[2]);
end;
Procedure TForm1.TratarCadena2;
Var
St: TStringList;
begin
St := TStringList.Create;
Try
St := DelimitarString('Uno;Dos;Tres', ';');
Showmessage(St[0] + #13 + St[1] + #13 + St[2]);
Finally
St.Free;
end;
end;