Recent

Author Topic: newbie sigsegv question about objects and units  (Read 3509 times)

dieselnutjob

  • Full Member
  • ***
  • Posts: 224
newbie sigsegv question about objects and units
« on: July 29, 2010, 03:45:36 pm »
I'm sure that this is a really newbie question, and it's driving me nuts that after writing multiple complex multithreaded apps etc I can't get something really simple to work.  Anyway here goes.

In unit dosomething:-

type
 Tsomething = class(TObject)
 private
   fnumber: integer;
 public
   constructor start;
   function getnumber: integer;
 end;

implementation

 constructor Tsomething.start;
 begin
   fnumber:=42;
 end;

 function Tsomething.getnumber: integer;
 begin
   result:=fnumber;
 end;

in unit1:-

uses normalstuff, dosomething;

var
  Form1: TForm1;
  something: tsomething;

implementation

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
begin
  something.start;
  showmessage(inttostr(something.getnumber));
end;

why does it sigsegv when I click button1 ?

thanks

BlueIcaro

  • Hero Member
  • *****
  • Posts: 818
    • Blog personal
Re: newbie sigsegv question about objects and units
« Reply #1 on: July 29, 2010, 03:50:30 pm »
You wrote
Quote
procedure TForm1.Button1Click(Sender: TObject);
begin
  something.start;
  showmessage(inttostr(something.getnumber));
end;
And I think it must be like this:
Quote
procedure TForm1.Button1Click(Sender: TObject);
begin
  something := tsomething.create; //Create the new object before use.
  something.start;
  showmessage(inttostr(something.getnumber));
end;


/BlueIcaro

dieselnutjob

  • Full Member
  • ***
  • Posts: 224
Re: newbie sigsegv question about objects and units
« Reply #2 on: July 29, 2010, 04:36:52 pm »
oh yes

now I feel like an idiot

thanks

 

TinyPortal © 2005-2018