[Lazarus-es] ventanas no modales

Maxi maximiliano.duarte en gmail.com
Lun Ago 1 19:36:56 CEST 2011


El servidor me eliminó el mensaje
para hacer lo que queres es mas facil, si esta creada la reflotas, sino la
creas.
el findcomponent dependiendo desde donde haces la busqueda es donde lo va a
encontrar, si el parent de tu creacion es Aplication lo buscas desde ahi si
es pareriente al formnulario de que lo crea osea self solo haces
findcomponent

var
   f:tcomponent;
begin
   f:= Application.FindComponent('Form4') ;
     If f <> nil then
     Begin
       TForm(f).Show;
     end
     else
     Begin
          with Tform4.Create(Application) do
               Show;
     end;

El 29 de julio de 2011 17:07, José Mejuto <joshyfun en gmail.com> escribió:

> Hello Paola,
>
> Friday, July 29, 2011, 7:04:13 PM, you wrote:
>
> >> ahora las declaré en la sección Implementation del formulario principal.
> PB> de todas maneras, el closeAction:= caFree me deja "mugre" en la
> PB> variable, por tanto, no puedo usar el if Assigned(f5)...
> PB> debería poner f5:= nil... pero debería f5 ser global, porque sino "no
> PB> existe" obviamente.
>
> No, no las hagas globales, no es necesario y sólo te va a complicar la
> vida, hazla local al procedimiento que hace el Create nada más, si
> quieres una referencia a esa ventana desde otro punto del código has
> de usar el "ReciclaVentana" para que te devuelva un puntero a ese
> form. Ejemplo:
>
> procedure CreaElForm();
> var
>  F5: TF5;
> begin
>  TForm(F5):=ReciclaVentana('TF5');
>  if not Assigned(F5) then begin
>    F5:=TF5.Create(Self);
>  end;
>  F5.Show;
> end;
>
> procedure OtraFuncionQueNecesitaF5();
> var
>  LaMismaf5: TF5;
> begin
>  TForm(LaMismaf5):=ReciclaVentana('TF5');
>  if Assigned(LaMismaf5) then begin
>    LaMismaf5.ActualizaValores();
>  end else begin
>    DebugLn('La ventana F5 no está disponible, no creada o destruida');
>  end;
> end;
>
> PB> En qué lugar aconsejan Uds declarar todas las variables de los
> PB> formularios? en alguna unidad global?
>
> No, no... De esas ventanas sólo puede haber una instancia por lo que
> comentas (ya que antes eran modales) por lo tanto lo más fácil es usar
> el método del "reciclaventana" ya que otras implementaciones más
> "limpias" son mucho más complejas.
>
> La ventana no está referenciada por ninguna variable, digamos que
> simplemente existe, con el "reciclaventana" le pedimos que nos busque
> entre las creadas una de la clase que digamos, y que nos la entregue
> de vuelta.
>
> --
> Best regards,
>  José
>
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>



-- 
No a la obsolecencia programada:
http://dimensionargentina.blogspot.com/2011/01/todo-esta-disenado-para-romperse.html

Twitter: @nenunocomar
Identi.ca: @nenuno
Linux User #495070
Ubuntu User #28504
http://miexperiencialinux.blogspot.com/

El que pregunta aprende, y el que contesta aprende a responder.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20110801/05ab3020/attachment-0002.html>


More information about the Lazarus-es mailing list