Bueno no sabia que poner de titulo, asi que si algún moderador encuentra uno mejor que explique mi pregunta que lo modifique por favor.
Bueno mi pregunta es que yo tengo un programa que tiene un clase(objeto) que contiene metodos para cifrar texto plano ejemplo : xor, rotn,reverse, rc4 etc.
mi pregunta viene a que si que cuando llamo al objeto TCifrado y quiero utilizar sus metodos es necesario que al momento de llamar que cree el objeto y en ese mismo instante despues de utilizarlo libere el objeto o la otra opcion que se me viene a la cabeza es que cree el objeto en el formcreate y libere el objeto al cerrar el form
La verdad es algo sin mucho sentido pero imagínense que tenga 20 métodos diferentes y aveces puedo ocupar uno u otro
espero sus respuestas saludos...
Aqui la clase
Código Delphi
[-]interface
type
TCifrado=class(TObject)
public
function C_xor(cadena:string):string;
function Rotn(cadena:string; N:integer):string;
function Reverse(cadena:string):String;
end;
implementation
function TCifrado.C_xor(cadena: string): string;
var i:integer;
sfinal:string;
begin
sfinal:='';
for i :=1 to length(cadena) do
begin
sfinal:=sfinal+chr(ord(cadena[i]) xor length(cadena));
end;
SetLength(result, length(cadena));
result:=sfinal;
end;
function TCifrado.Reverse(cadena: string): String;
var
sfinal:String;
i:integer;
begin
sfinal:='';
for i:=length(cadena) downto 1 do
begin
sfinal:=sfinal+cadena[i];
end;
SetLength(result, length(cadena));
result:=sfinal;
end;
function TCifrado.Rotn(cadena: string; N: integer): string;
var
i:integer;
sfinal:string;
begin
for i :=1 to length(cadena) do
begin
sfinal:=sfinal+chr((ord(cadena[i])+N) mod 255 );
end;
SetLength(result, length(cadena));
result:=sfinal;
end;
end.
esta es la primera forma como explico
Código Delphi
[-]procedure TForm1.Button2Click(Sender: TObject);
begin
Cifrado:=TCifrado.Create;
try
if RadioButton1.Checked then
Memo2.Text:=Cifrado.Reverse(Memo1.Text)
else if RadioButton2.Checked then
Memo2.Text:=Cifrado.C_xor(Memo1.Text)
else if RadioButton3.Checked then
Memo2.Text:=Cifrado.Rotn(Memo1.Text,13);
finally
FreeAndNil(Cifrado);
end;
end;
esta es la segunda
Código Delphi
[-]procedure TForm1.Button2Click(Sender: TObject);
begin
if RadioButton1.Checked then
Memo2.Text:=Cifrado.Reverse(Memo1.Text)
else if RadioButton2.Checked then
Memo2.Text:=Cifrado.C_xor(Memo1.Text)
else if RadioButton3.Checked then
Memo2.Text:=Cifrado.Rotn(Memo1.Text,13);
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Cifrado.Free;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Cifrado:=TCifrado.Create;
end;