[DUG] basic question
Neven MacEwan
neven at mwk.co.nz
Wed Jul 25 16:56:40 NZST 2007
Ani
What you are referring to is a "Class Method" and no Delphi does not
have them (though other OO languages do)
it also does not have class variables (hence there is not need for Class
Methods is the logic I presume)
The reason your code works is that the method you called makes no
reference to the instance of FormB only to the method
of class FormB (and ShowMessage is a non OO procedure), in compiled code
there always on instance of the code base (and data
for the Object instances) so i assume that you called "Execute" in the
class method table in the context of a nil instance
If you had done
procedure TFormB.Execute;
begin
ShowMessage(self.Caption); // AV Here
end;
I'm sure this is all wrong and Max or Paul will correct me
Cheers
Neven
> Hi,
>
> Is it possible to call a method of a class without creating a object
> of it, even if the method is not a class function in Delphi ? I wrote
> the below code just to test -
>
> 1. Created a simple form A and a button on it.
> 2. Created another simple form B, written a procedure in it as -
> FormB.Execute;
> begin
> ShowMessage("xyz");
> end;
> 3. Commented out auto creation of FormB in application.
> 4. On Button Click in FormA I called the Execute of FormB and it
> worked perfectly okay.
>
> What could be the reason for this? I had the idea that either I need
> to create an object before calling any method or I need to declare a
> class function.
>
> In the above steps when I am trying to call Show in Execute function
> of Form B I got Access violation which is perfectly fine according to
> the above statement.
>
> May be I am missing something simple here, but any pointers will be
> great. This was done in D2005 and it's win32 app.
>
> Thanks
> -Ani
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> NZ Borland Developers Group - Delphi mailing list
> Post: delphi at delphi.org.nz
> Admin: http://delphi.org.nz/mailman/listinfo/delphi
> Unsubscribe: send an email to delphi-request at delphi.org.nz with Subject: unsubscribe
More information about the Delphi
mailing list