Ver Mensaje Individual
  #1  
Antiguo 13-02-2010
ioco ioco is offline
Miembro
 
Registrado: ene 2010
Posts: 42
Reputación: 0
ioco Va por buen camino
Error al asignar un valor

Animado por la respuesta de Al Gonzalez a mi post sobre mi primera Unit, estoy haciendo esa misma unit en Lazarus como ejemplo de aplicación de lo que voy aprendiendo leyendo el libro del ftp "La cara oculta de Delphi".

He probado el código con Showmessage en lugar de la asignación que me da el problema y todo funciona bien hasta que empiezo a trabajar con la clase que he definido.

La unit es la siguiente:

Código Delphi [-]
unit Unit2; 

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, Dialogs;

Type
  TUnidad = class
    Vida,Escudo,Disparos,Potencia,ConsumoElectrico,CosteMetal,CosteCristal,CosteDeuterio:integer;
    Procedure AsignarDatos;
  end;

Var
  Caza,Acorazado,Destroyer,Crucero,Pulsar,Bombardero:TUnidad;
  Sonda,RecicladorPeque,RecicladorGrande,TransportePeque,Cisterna:TUnidad;
  BateriaAntiaerea,RayoLaser,Gauss,ArtilleriaIntervalo,EmisorTaquiones:TUnidad;

implementation

Procedure TUnidad.AsignarDatos;
          Begin
               {Aquí está el problema, aunque si no he entendido mal el libro, 
               se  hace así o incluso se podría omitir el Self dejando solo Vida:=70}
               Self.Vida:=70;
          end;

end.


La llamo desde un botón en un formulario con:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);   
  begin
    Caza.AsignarDatos;
   end;




Entonces lo que sucede es que el programa se ejecuta bien, pero cuando presiono el botón me sale el mensaje: Project probando.exe raised exception class 'External: SIGSEGV'.

¿Se puede solucionar?

Última edición por ioco fecha: 13-02-2010 a las 17:11:48.
Responder Con Cita