Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Lazarus, FreePascal, Kylix, etc. (https://www.clubdelphi.com/foros/forumdisplay.php?f=14)
-   -   Se me abre una pestaña control.inc (https://www.clubdelphi.com/foros/showthread.php?t=66853)

ioco 16-03-2010 01:05:56

Se me abre una pestaña control.inc
 
Saludos de nuevo.

Tengo un botón con el siguiente código:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  z:=TComplejo.NuevoNumero;
  If z.CantidadRectangularValida(Edit1.text,Edit2.text) then
     showmessage('numero valido')
  else
      showmessage('numero no valido');
  z.free;
end;

donde TComplejo es una clase que definí en una unit a parte , NuevoNumero es un constructor y CantidadRectangularValida es una función que devuelve un booleano.

La cuestión es que cuando el booleano es falso muestra el diálogo conforme el número no es válido y sin problemas, pero si el booleano es verdadero muestra el diálogo normal pero al clickar después a ok me salta error "Project project2.exe raised exception class 'External: SIGSEGV" y se me abre una pestaña con código llamada control.inc marcando el final de

Código Delphi [-]
procedure TControl.Click;
begin
  //DebugLn(['TControl.Click ',DbgSName(Self)]);
  if (not (csDesigning in ComponentState)) and (ActionLink <> nil) and
     ((Action=nil) or (@FOnClick <> @Action.OnExecute) or Assigned(FOnClick)) then
    ActionLink.Execute(Self)
  else
  if Assigned(FOnClick) then
    FOnClick(Self);
end;

¿Álguien podría explicarme porqué puede suceder esto?

Muchísimas gracias de antemano por su atención y tiempo.

Ñuño Martínez 16-03-2010 10:40:12

Cita:

Empezado por ioco (Mensaje 357030)
¿Álguien podría explicarme porqué puede suceder esto?

Simplemente que el programa está intentando acceder a una parte de la memoria no disponible, bien porque no se ha asignado, bien porque se liberó antes de acceder a ella.

Lo que tienes que hacer es comprobar que creas todos los objetos necesarios y que no destruyes nada antes de tiempo


La franja horaria es GMT +2. Ahora son las 23:40:24.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi