El servidor me eliminó el mensaje<br>para hacer lo que queres es mas facil, si esta creada la reflotas, sino la creas.<br>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<br>
<br>var<br> f:tcomponent;<br>begin<br> f:= Application.FindComponent('Form4') ;<br> If f <> nil then<br> Begin<br> TForm(f).Show;<br> end<br>
else<br> Begin<br> with Tform4.Create(Application) do<br> Show;<br> end; <br><br><div class="gmail_quote">El 29 de julio de 2011 17:07, José Mejuto <span dir="ltr"><<a href="mailto:joshyfun@gmail.com" target="_blank">joshyfun@gmail.com</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello Paola,<br>
<div><br>
Friday, July 29, 2011, 7:04:13 PM, you wrote:<br>
<br>
>> ahora las declaré en la sección Implementation del formulario principal.<br>
</div>PB> de todas maneras, el closeAction:= caFree me deja "mugre" en la<br>
PB> variable, por tanto, no puedo usar el if Assigned(f5)...<br>
PB> debería poner f5:= nil... pero debería f5 ser global, porque sino "no<br>
PB> existe" obviamente.<br>
<br>
No, no las hagas globales, no es necesario y sólo te va a complicar la<br>
vida, hazla local al procedimiento que hace el Create nada más, si<br>
quieres una referencia a esa ventana desde otro punto del código has<br>
de usar el "ReciclaVentana" para que te devuelva un puntero a ese<br>
form. Ejemplo:<br>
<br>
procedure CreaElForm();<br>
var<br>
F5: TF5;<br>
begin<br>
TForm(F5):=ReciclaVentana('TF5');<br>
if not Assigned(F5) then begin<br>
F5:=TF5.Create(Self);<br>
end;<br>
F5.Show;<br>
end;<br>
<br>
procedure OtraFuncionQueNecesitaF5();<br>
var<br>
LaMismaf5: TF5;<br>
begin<br>
TForm(LaMismaf5):=ReciclaVentana('TF5');<br>
if Assigned(LaMismaf5) then begin<br>
LaMismaf5.ActualizaValores();<br>
end else begin<br>
DebugLn('La ventana F5 no está disponible, no creada o destruida');<br>
end;<br>
end;<br>
<br>
PB> En qué lugar aconsejan Uds declarar todas las variables de los<br>
PB> formularios? en alguna unidad global?<br>
<br>
No, no... De esas ventanas sólo puede haber una instancia por lo que<br>
comentas (ya que antes eran modales) por lo tanto lo más fácil es usar<br>
el método del "reciclaventana" ya que otras implementaciones más<br>
"limpias" son mucho más complejas.<br>
<br>
La ventana no está referenciada por ninguna variable, digamos que<br>
simplemente existe, con el "reciclaventana" le pedimos que nos busque<br>
entre las creadas una de la clase que digamos, y que nos la entregue<br>
de vuelta.<br>
<br>
--<br>
Best regards,<br>
<font color="#888888"> José<br>
</font><div><div></div><div><br>
<br>
_______________________________________________<br>
Lazarus-es mailing list<br>
<a href="mailto:Lazarus-es@lists.lazarus.freepascal.org" target="_blank">Lazarus-es@lists.lazarus.freepascal.org</a><br>
<a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>No a la obsolecencia programada: <a href="http://dimensionargentina.blogspot.com/2011/01/todo-esta-disenado-para-romperse.html" target="_blank">http://dimensionargentina.blogspot.com/2011/01/todo-esta-disenado-para-romperse.html</a><br>
<br>Twitter: @nenunocomar<br>Identi.ca: @nenuno<br>Linux User #495070<br>Ubuntu User #28504<br><a href="http://miexperiencialinux.blogspot.com/" target="_blank">http://miexperiencialinux.blogspot.com/</a><br><br>El que pregunta aprende, y el que contesta aprende a responder.<br>