<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Tienes que crear los formularios con la fórmula
Application.CreateForm (TForm2, form2).<br>
Tal como los creas (With TForm2.Create(...)) no podrás acceder a sus
datos desde fuera de with, ya que la variable Form2 no se inicializa
en ningún sitio.<br>
Para trabajar con datos entre formularios, yo te recomiendo en uso
de propiedades públicas:<br>
En el form3:<br>
public <br>
Property datodeotroform :String.....<br>
<br>
Cuando creas el form, antes del show:<br>
desde el form2:<br>
with Tfrom3.create(self)) ...<br>
datodeotroform := self.datoform2.Text;<br>
showmodal;<br>
self.datoform2.text := datodeotroform; //esto sería un ejemplo
para recuperar un dato modificado en form3<br>
free;<br>
...<br>
<br>
etc.<br>
<br>
Esta es la mejor forma, aunque pueda parecer que necesitas más
código, pero te permitirá usar el dato incluso si el form2 se
destruyera antes que el form3 (en tu caso como es showmodal no
ocurrirá pero en otras ocasiones producirá quebraderos de cabeza).<br>
<br>
Es sólo una recomendación, yo desde que lo hago así, tengo cero
problemas con objetos que no existen y trato de acceder a ellos.<br>
<br>
Abrazos,<br>
Iván Mesa.<br>
<br>
<br>
<br>
<div class="moz-cite-prefix">El 24/05/2017 a las 21:20, Maxi via
Lazarus-es escribió:<br>
</div>
<blockquote
cite="mid:CAOL=nAoQtNf4kSaMzpevyAL5x=gPa6BeoZQDX+2jGv8HCszQxA@mail.gmail.com"
type="cite">
<div dir="ltr">
<div>Pero para poder llamar al form 2 debes crear primero, pero
se quedaria atascado haste que termine el showmodal.<br>
</div>
Y al salir ya el objeto no existe. si quieres ese comportamiento
deben estar creados antes de intentar acceder a alguna
propiedad.<br>
<br>
<br>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">El 24 de mayo de 2017, 15:51, Ismael L.
Donis Garcia via Lazarus-es <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:lazarus-es@lists.lazarus-ide.org"
target="_blank">lazarus-es@lists.lazarus-ide.org</a>></span>
escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#ffffff">
<div><font face="Arial" size="2">Si existe el problema
ocurre cuando desde un formlario llamo a otro con
Showmodal y ese otro llama a otro con Showmodal
también</font></div>
<div> </div>
<div><font face="Arial" size="2">Cuando desde el último
llamado quiero coger un valor del anterior me da el
error.</font></div>
<div> </div>
<div><font face="Arial" size="2">Osea</font></div>
<div> </div>
<div><font face="Arial" size="2"> Application.Initialize;<br>
Application.CreateForm(TForm1, Form1);<br>
Application.Run;<br>
</font></div>
<div><font face="Arial" size="2">Desde TForm1</font></div>
<div> </div>
<div><font face="Arial" size="2">Form2.Showmodal;</font></div>
<div> </div>
<div><font face="Arial" size="2">y desde Form2</font></div>
<div> </div>
<div><font face="Arial" size="2">
<div><font face="Arial" size="2">Form3.Showmodal;</font></div>
<div> </div>
<div>Ahora si en <font face="Arial" size="2">Form3
pregunto por ejemplo:</font></div>
<div> </div>
<div>if form2.edit1.text = 'xx' then // aqui suena el
error</div>
</font></div>
<div> </div>
<div> </div>
<div><font face="Arial" size="2">Prueba creando un
proyecto con 3 formularios:</font></div>
<div><font face="Arial" size="2">Pon en el primero:</font></div>
<div><font face="Arial" size="2">--------</font></div>
<div><font face="Arial" size="2">unit Unit1;</font></div>
<div> </div>
<div><font face="Arial" size="2">{$mode objfpc}{$H+}</font></div>
<div> </div>
<div><font face="Arial" size="2">interface</font></div>
<div> </div>
<div><font face="Arial" size="2">uses<br>
Classes, SysUtils, FileUtil, Forms, Controls,
Graphics, Dialogs, StdCtrls;</font></div>
<div> </div>
<div><font face="Arial" size="2">type</font></div>
<div> </div>
<div><font face="Arial" size="2"> { TForm1 }</font></div>
<div> </div>
<div><font face="Arial" size="2"> TForm1 = class(TForm)<br>
Button1: TButton;<br>
procedure Button1Click(Sender: TObject);<br>
private<br>
{ private declarations }<br>
public<br>
{ public declarations }<br>
end;</font></div>
<div> </div>
<div><font face="Arial" size="2">var<br>
Form1: TForm1;</font></div>
<div> </div>
<div><font face="Arial" size="2">implementation<br>
uses<br>
Unit2;</font></div>
<div> </div>
<div><font face="Arial" size="2">{$R *.lfm}</font></div>
<div> </div>
<div><font face="Arial" size="2">{ TForm1 }</font></div>
<div> </div>
<div><font face="Arial" size="2">procedure
TForm1.Button1Click(Sender: TObject);<br>
begin<br>
with TForm2.Create(nil) do<br>
try<br>
Showmodal;<br>
finally<br>
Free;<br>
end;<br>
end;</font></div>
<div> </div>
<div><font face="Arial" size="2">end. </font></div>
<div><font face="Arial" size="2">
<div><font face="Arial" size="2">--------</font></div>
</font></div>
<div> </div>
<div><font face="Arial" size="2">
<div><font face="Arial" size="2">Pon en el segundo:</font></div>
<div><font face="Arial" size="2">--------</font></div>
<div><font face="Arial" size="2">unit Unit2;</font></div>
<div> </div>
<div><font face="Arial" size="2">{$mode objfpc}{$H+}</font></div>
<div> </div>
<div><font face="Arial" size="2">interface</font></div>
<div> </div>
<div><font face="Arial" size="2">uses<br>
Classes, SysUtils, FileUtil, Forms, Controls,
Graphics, Dialogs, StdCtrls;</font></div>
<div> </div>
<div><font face="Arial" size="2">type</font></div>
<div> </div>
<div><font face="Arial" size="2"> { TForm2 }</font></div>
<div> </div>
<div><font face="Arial" size="2"> TForm2 =
class(TForm)<br>
Button1: TButton;<br>
Edit1: TEdit;<br>
procedure Button1Click(Sender: TObject);<br>
private<br>
{ private declarations }<br>
public<br>
{ public declarations }<br>
end;</font></div>
<div> </div>
<div><font face="Arial" size="2">var<br>
Form2: TForm2;</font></div>
<div> </div>
<div><font face="Arial" size="2">implementation<br>
uses<br>
Unit3;</font></div>
<div> </div>
<div><font face="Arial" size="2">{$R *.lfm}</font></div>
<div> </div>
<div><font face="Arial" size="2">{ TForm2 }</font></div>
<div> </div>
<div><font face="Arial" size="2">procedure
TForm2.Button1Click(Sender: TObject);<br>
begin<br>
with TForm3.Create(nil) do<br>
try<br>
Showmodal;<br>
finally<br>
Free;<br>
end;<br>
end;</font></div>
<div> </div>
<div><font face="Arial" size="2">end.<br>
</font><font face="Arial" size="2"><font
face="Arial" size="2">--------</font></font></div>
</font></div>
<div><font face="Arial" size="2">
<div> </div>
<div><font face="Arial" size="2">Pon en el tercero:</font></div>
<div><font face="Arial" size="2">--------</font></div>
<div><font face="Arial" size="2">unit Unit3;</font></div>
<div> </div>
<div><font face="Arial" size="2">{$mode objfpc}{$H+}</font></div>
<div> </div>
<div><font face="Arial" size="2">interface</font></div>
<div> </div>
<div><font face="Arial" size="2">uses<br>
Classes, SysUtils, FileUtil, Forms, Controls,
Graphics, Dialogs, StdCtrls;</font></div>
<div> </div>
<div><font face="Arial" size="2">type</font></div>
<div> </div>
<div><font face="Arial" size="2"> { TForm3 }</font></div>
<div> </div>
<div><font face="Arial" size="2"> TForm3 =
class(TForm)<br>
Button1: TButton;<br>
procedure Button1Click(Sender: TObject);<br>
private<br>
{ private declarations }<br>
bvalida: boolean;<br>
public<br>
{ public declarations }<br>
end;</font></div>
<div> </div>
<div><font face="Arial" size="2">var<br>
Form3: TForm3;</font></div>
<div> </div>
<div><font face="Arial" size="2">implementation<br>
uses<br>
Unit2;</font></div>
<div> </div>
<div><font face="Arial" size="2">{$R *.lfm}</font></div>
<div> </div>
<div><font face="Arial" size="2">{ TForm3 }</font></div>
<div> </div>
<div><font face="Arial" size="2">procedure
TForm3.Button1Click(Sender: TObject);<br>
begin<br>
if Form2.Edit1.Text='xx' then<br>
bvalida:=true;</font></div>
<div> </div>
<div><font face="Arial" size="2">end;</font></div>
<div> </div>
<div><font face="Arial" size="2">end. </font></div>
<div><font face="Arial" size="2">
<div><font face="Arial" size="2">--------</font></div>
<div> </div>
</font></div>
</font></div>
<div>
<div>Saludos Cordiales</div>
<span class="">
<div>========<br>
| ISMAEL |<br>
========<br>
<font face="Arial" size="2">Devuan User : <a
moz-do-not-send="true"
href="http://distrowatch.com/table.php?distribution=devuan"
target="_blank">http://distrowatch.com/table.p<wbr>hp?distribution=devuan</a></font></div>
<div>WebSite: <font face="Arial" size="2"><a
moz-do-not-send="true"
href="http://sisconge.byethost15.com"
target="_blank">http://</a></font><a
moz-do-not-send="true"
href="http://sisconge.byethost15.com"
target="_blank">sisconge.byethost15.com</a></div>
</span></div>
<blockquote
style="PADDING-RIGHT:0px;PADDING-LEFT:5px;MARGIN-LEFT:5px;BORDER-LEFT:#000000
2px solid;MARGIN-RIGHT:0px">
<div>
<div class="h5">
<div style="FONT:10pt arial">----- Original Message
----- </div>
<div style="BACKGROUND:#e4e4e4;FONT:10pt arial"><b>From:</b>
<a moz-do-not-send="true"
title="lazarus-es@lists.lazarus-ide.org"
href="mailto:lazarus-es@lists.lazarus-ide.org"
target="_blank">Maxi via Lazarus-es</a> </div>
<div style="FONT:10pt arial"><b>To:</b> <a
moz-do-not-send="true"
title="lazarus-es@lists.lazarus-ide.org"
href="mailto:lazarus-es@lists.lazarus-ide.org"
target="_blank">Spanish version of Lazarus List</a>
</div>
<div style="FONT:10pt arial"><b>Cc:</b> <a
moz-do-not-send="true"
title="maximiliano.duarte@gmail.com"
href="mailto:maximiliano.duarte@gmail.com"
target="_blank">Maxi</a> </div>
<div style="FONT:10pt arial"><b>Sent:</b> Wednesday,
May 24, 2017 1:29 PM</div>
<div style="FONT:10pt arial"><b>Subject:</b> Re:
[Lazarus-es] Error External SIGSEGV al asignar
valor depropiedad</div>
<div><br>
</div>
<div dir="ltr">
<div>El objeto ya no existe le hiciste free.<br>
</div>
Despues del showmodal<br>
</div>
</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">
<div>
<div class="h5">El 23 de mayo de 2017, 13:23,
Ismael L. Donis Garcia via Lazarus-es <span
dir="ltr"><<a moz-do-not-send="true"
href="mailto:lazarus-es@lists.lazarus-ide.org"
target="_blank">lazarus-es@lists.lazarus-ide.<wbr>org</a>></span>
escribió:<br>
</div>
</div>
<blockquote class="gmail_quote"
style="PADDING-LEFT:1ex;MARGIN:0px 0px 0px
0.8ex;BORDER-LEFT:#ccc 1px solid">
<div bgcolor="#ffffff">
<div>
<div class="h5">
<div><font face="Arial" size="2">Tengo un
formulario que tiene una propiedad
pública:</font></div>
<div> </div>
<div><font face="Arial" size="2">public<br>
{ public declarations }<br>
property salvar: boolean write
setsalvar;<br>
</font></div>
<div> </div>
<div><font face="Arial" size="2">procedure
Tfrecep.setsalvar(AValue: boolean);<br>
begin<br>
bvalida:=AValue;<br>
end;</font></div>
<div> </div>
<div><font face="Arial" size="2">El cual
llama otro formulario de la siguiente
forma:</font></div>
<div> </div>
<div><font face="Arial" size="2"> with
Tfimprec.Create(nil) do<br>
try<br>
asignarnum:=strtoint(snorec);<br>
entidad:=sentidad;<br>
Showmodal;<br>
finally<br>
Free;<br>
end;<br>
</font></div>
<div><font face="Arial" size="2">Cuando
desde el formalario Tfimprec trato de
asignarle un valor a la propiedad salvar
me da dicho error el cual no encuentro
la posible causa.</font></div>
<div> </div>
<div><font face="Arial" size="2">procedure
Tfimprec.cmdcerrarClick(Sender<wbr>:
TObject);<br>
begin<br>
frecep.salvar:=true;<br>
Self.Close;<br>
end; </font></div>
<div> </div>
<div><font face="Arial" size="2">Al alguien
de ustedes le ha pasado esto? En caso
afirmativo como lo han solucionado?</font></div>
<div> </div>
<div> </div>
<div><font face="Arial" size="2">Desde ya
Gracias</font></div>
</div>
</div>
<div> <br>
<span class="">______________________________<wbr>_________________<br>
Lazarus-es mailing list<br>
<a moz-do-not-send="true"
href="mailto:Lazarus-es@lists.lazarus-ide.org"
target="_blank">Lazarus-es@lists.lazarus-ide.o<wbr>rg</a><br>
<a moz-do-not-send="true"
href="http://lists.lazarus-ide.org/listinfo/lazarus-es"
rel="noreferrer" target="_blank">http://lists.lazarus-ide.org/l<wbr>istinfo/lazarus-es</a><br>
<br>
</span></div>
</div>
</blockquote>
</div>
<span class=""><br>
<br clear="all">
<br>
-- <br>
<div class="m_7584266261379033311gmail_signature"
data-smartmail="gmail_signature">El que pregunta
aprende, y el que contesta aprende a responder.<br>
<br>
No a la obsolecencia programada: <a
moz-do-not-send="true"
href="http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml"
target="_blank">http://www.rtve.es/noticias/<wbr>20110104/productos-consumo-<wbr>duran-cada-vez-menos/392498.<wbr>shtml</a><br>
<br>
Linux User #495070<br>
<a moz-do-not-send="true"
href="http://domonetic.com/blog" target="_blank">http://domonetic.com/blog</a></div>
</span></div>
<p> </p>
<hr><span class=""> ______________________________<wbr>_________________<br>
Lazarus-es mailing list<br>
<a moz-do-not-send="true"
href="mailto:Lazarus-es@lists.lazarus-ide.org"
target="_blank">Lazarus-es@lists.lazarus-ide.<wbr>org</a><br>
<a moz-do-not-send="true"
href="http://lists.lazarus-ide.org/listinfo/lazarus-es"
target="_blank">http://lists.lazarus-ide.org/<wbr>listinfo/lazarus-es</a><br>
</span></blockquote>
</div>
<br>
______________________________<wbr>_________________<br>
Lazarus-es mailing list<br>
<a moz-do-not-send="true"
href="mailto:Lazarus-es@lists.lazarus-ide.org">Lazarus-es@lists.lazarus-ide.<wbr>org</a><br>
<a moz-do-not-send="true"
href="http://lists.lazarus-ide.org/listinfo/lazarus-es"
rel="noreferrer" target="_blank">http://lists.lazarus-ide.org/<wbr>listinfo/lazarus-es</a><br>
<br>
</blockquote>
</div>
<br>
<br clear="all">
<br>
-- <br>
<div class="gmail_signature" data-smartmail="gmail_signature">El
que pregunta aprende, y el que contesta aprende a responder.<br>
<br>
No a la obsolecencia programada: <a moz-do-not-send="true"
href="http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml"
target="_blank">http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml</a><br>
<br>
Linux User #495070<br>
<a moz-do-not-send="true" href="http://domonetic.com/blog"
target="_blank">http://domonetic.com/blog</a></div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
Lazarus-es mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Lazarus-es@lists.lazarus-ide.org">Lazarus-es@lists.lazarus-ide.org</a>
<a class="moz-txt-link-freetext" href="http://lists.lazarus-ide.org/listinfo/lazarus-es">http://lists.lazarus-ide.org/listinfo/lazarus-es</a>
</pre>
</blockquote>
<br>
</body>
</html>