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
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?