Hola Neru.
Cita:
Empezado por Neeruu
Probando un poco el tema de las múltiples instancias de una clase descubrí algo nuevo para mi y que no entiendo porque sucede, y lo detallo a continuación...
Abrir un proyecto nuevo, agregar 2 formularios al proyecto(Form1, Form2)
Al Form1 Agregar este codigo en el create (puede ser en el evento onclick de un buton)
Código Delphi [-]
var Formulario:TForm2;
begin
if Not Assigned(Formulario) then Formulario := TForm2.Create(Self);
Formulario.Caption := 'Texto';
Formulario.Show;
end;
Si ejecutan eso veran que el Formulario (TForm2) nunca se muestra....
Alguna idea de lo que sucede?
|
Si claro, estás declarando una variable local
(Formulario) de tipo
TForm2 y la evaluas sin haberla instanciado previamente:
Código Delphi
[-]
var
Formulario: TForm2;
begin
if not Assigned(Formulario) then
...
Guardando las distancias, sería similar a hacer esto:
Código Delphi
[-]
var
v: Integer;
begin
if v > 1500 then Caption := IntToStr(v);
También vale aclarar, que para justificar el uso de la función
Assigned o la comparación con
nil, en algún punto la variable evaluada debería ser capaz de obtener dicho valor.
Saludos