[Lazarus-es] Error External SIGSEGV al asignar valor depropiedad
Ismael L. Donis Garcia
slibre en natio.co.cu
Mie Mayo 24 21:51:02 CEST 2017
Si quiero que se quede como tu dices atascado hasta que termine el Showmodal
Y tu dices que no lo creo?
No se crea cuando digo:
TForm2.Create(nil)
Si no se crea como es que se muestra?
De algo si tienes razón Ivan y es algo que no entiendo. Si alguien me lo pudiera explicar más. Ya que yo nunca he trabajado con delphi y soy bastante nuevo en Lazarus
De la siguiente forma no da error:
Application.CreateForm(TForm2, Form2);
with Form2 do
try
Showmodal;
finally
Free;
end;
Y sin envargo de la siguiente forma si da error:
with TForm2.Create(nil) do
try
Showmodal;
finally
Free;
end;
Saludos Reiterados
========
| ISMAEL |
========
Devuan User : http://distrowatch.com/table.php?distribution=devuan
WebSite: http://sisconge.byethost15.com
----- Original Message -----
From: Maxi via Lazarus-es
To: Spanish version of Lazarus List
Cc: Maxi
Sent: Wednesday, May 24, 2017 3:20 PM
Subject: Re: [Lazarus-es] Error External SIGSEGV al asignar valor depropiedad
Pero para poder llamar al form 2 debes crear primero, pero se quedaria atascado haste que termine el showmodal.
Y al salir ya el objeto no existe. si quieres ese comportamiento deben estar creados antes de intentar acceder a alguna propiedad.
El 24 de mayo de 2017, 15:51, Ismael L. Donis Garcia via Lazarus-es <lazarus-es en lists.lazarus-ide.org> escribió:
Si existe el problema ocurre cuando desde un formlario llamo a otro con Showmodal y ese otro llama a otro con Showmodal también
Cuando desde el último llamado quiero coger un valor del anterior me da el error.
Osea
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
Desde TForm1
Form2.Showmodal;
y desde Form2
Form3.Showmodal;
Ahora si en Form3 pregunto por ejemplo:
if form2.edit1.text = 'xx' then // aqui suena el error
Prueba creando un proyecto con 3 formularios:
Pon en el primero:
--------
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
uses
Unit2;
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
with TForm2.Create(nil) do
try
Showmodal;
finally
Free;
end;
end;
end.
--------
Pon en el segundo:
--------
unit Unit2;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TForm2 }
TForm2 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form2: TForm2;
implementation
uses
Unit3;
{$R *.lfm}
{ TForm2 }
procedure TForm2.Button1Click(Sender: TObject);
begin
with TForm3.Create(nil) do
try
Showmodal;
finally
Free;
end;
end;
end.
--------
Pon en el tercero:
--------
unit Unit3;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TForm3 }
TForm3 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ private declarations }
bvalida: boolean;
public
{ public declarations }
end;
var
Form3: TForm3;
implementation
uses
Unit2;
{$R *.lfm}
{ TForm3 }
procedure TForm3.Button1Click(Sender: TObject);
begin
if Form2.Edit1.Text='xx' then
bvalida:=true;
end;
end.
--------
Saludos Cordiales
========
| ISMAEL |
========
Devuan User : http://distrowatch.com/table.php?distribution=devuan
WebSite: http://sisconge.byethost15.com
----- Original Message -----
From: Maxi via Lazarus-es
To: Spanish version of Lazarus List
Cc: Maxi
Sent: Wednesday, May 24, 2017 1:29 PM
Subject: Re: [Lazarus-es] Error External SIGSEGV al asignar valor depropiedad
El objeto ya no existe le hiciste free.
Despues del showmodal
El 23 de mayo de 2017, 13:23, Ismael L. Donis Garcia via Lazarus-es <lazarus-es en lists.lazarus-ide.org> escribió:
Tengo un formulario que tiene una propiedad pública:
public
{ public declarations }
property salvar: boolean write setsalvar;
procedure Tfrecep.setsalvar(AValue: boolean);
begin
bvalida:=AValue;
end;
El cual llama otro formulario de la siguiente forma:
with Tfimprec.Create(nil) do
try
asignarnum:=strtoint(snorec);
entidad:=sentidad;
Showmodal;
finally
Free;
end;
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.
procedure Tfimprec.cmdcerrarClick(Sender: TObject);
begin
frecep.salvar:=true;
Self.Close;
end;
Al alguien de ustedes le ha pasado esto? En caso afirmativo como lo han solucionado?
Desde ya Gracias
_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus-ide.org
http://lists.lazarus-ide.org/listinfo/lazarus-es
--
El que pregunta aprende, y el que contesta aprende a responder.
No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml
Linux User #495070
http://domonetic.com/blog
--------------------------------------------------------------------------
_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus-ide.org
http://lists.lazarus-ide.org/listinfo/lazarus-es
_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus-ide.org
http://lists.lazarus-ide.org/listinfo/lazarus-es
--
El que pregunta aprende, y el que contesta aprende a responder.
No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml
Linux User #495070
http://domonetic.com/blog
------------------------------------------------------------------------------
_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus-ide.org
http://lists.lazarus-ide.org/listinfo/lazarus-es
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20170524/ab4d51ea/attachment-0001.html>
Más información sobre la lista de distribución Lazarus-es