Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-02-2010
ioco ioco is offline
Miembro
 
Registrado: ene 2010
Posts: 42
Poder: 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
  #2  
Antiguo 14-02-2010
Avatar de DriverOp
DriverOp DriverOp is offline
Miembro
 
Registrado: ago 2007
Posts: 93
Poder: 17
DriverOp Va por buen camino
Caza es un objeto. ¿Lo has creado llamando al constructor Create?
Responder Con Cita
  #3  
Antiguo 14-02-2010
ioco ioco is offline
Miembro
 
Registrado: ene 2010
Posts: 42
Poder: 0
ioco Va por buen camino
Ups, gracias. No sé porqué al leerlo en el libro no lo relacioné... supongo que no acabo de entender algunos conceptos

Siento haber preguntado demasiado, la próxima vez que tenga una duda me esforzaré más.
Responder Con Cita
  #4  
Antiguo 14-02-2010
Avatar de DriverOp
DriverOp DriverOp is offline
Miembro
 
Registrado: ago 2007
Posts: 93
Poder: 17
DriverOp Va por buen camino
No olvides destruirlo cuando termines de usarlo.

Preguntar hace bien, preguntar bien hace milagros
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Asignar valor nulo a un entero Shikanda SQL 3 27-08-2007 14:26:23
Asignar valor a un DBLOOKUPCOMBOBOX lucasarts_18 OOP 3 30-10-2005 23:35:21
Asignar el valor de DayOfTheWeek a una variable gluglu Varios 7 23-01-2005 19:47:47
Asignar valor ComboBox a una variable gluglu Varios 6 11-10-2004 17:54:44
como asignar un valor a una variable juan Varios 6 18-06-2003 01:26:19


La franja horaria es GMT +2. Ahora son las 09:15:10.


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