I ran your slightly modified test (as shown).

  gCls := TGraphicClass(TMyGraphic);
  nGra := gCls.Create;
  Assert(nGra is TMyGraphic);
  nGra.Free;
  nGra := TMyGraphic.Create;
  Assert(nGra is TMyGraphic);
  nGra.Free;

As expected, in each instance (no pun intended), TMyGraphic.Create was
called (indicated by the dialog appearing twice) as well as passing each of
the asserts.


-Andreas

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:owner-delphi@;delphi.org.nz]On
Behalf Of Jianming Lin (ASL)
Sent: Friday, 18 October 2002 09:17
To: Multiple recipients of list delphi
Subject: RE: [DUG]: polymorphism problem


More Examples of my problem:

//------------------------------------------------------------------------
Type TMyGraphic = class(TGraphic)
        public
    constructor Create;  override;
  end;


constructor TMyGraphic.Create;
begin
  inherited;
   ShowMessage('kk');
end;

//------------------------------------------------------------------------

procedure TryIt;
var gCls : TGraphicClass;
    nGra : TGraphic;
begin
  gCls := TGraphicClass(TMyGraphic);
  nGra := gcls.Create;                     // TMyGraphic costructor won't be
called, Why?
  nGra := TMyGraphic.Create;               // called successfully
end;






-----Original Message-----
From: Dennis Chuah [mailto:dennis_cs_chuah@;hotmail.com]
Sent: Friday, 18 October 2002 7:14 a.m.
To: Multiple recipients of list delphi
Subject: Re: [DUG]: polymorphism problem



I stepped through your code and it *DEFINITELY* calls TMetadata.Create.
What you have done looks correct and this is certainly not a polymorphism
pproblem.  Few suggestions:

1.  Check that you do not have $(DELPHI)\Lib in your project path - it
should only be in the global library path.
2.  What if you replaced your code with:
  NGraphic := TMetadata.Create;

Step through the code - does it call TMetadata.Create?

3.  Check the class type of NGraphic and compare Pointer(NGraphic.ClassType)
against Pointer(TMetadata).  Are they the same pointer values?

What version of Delphi are you using?

Dennis.

----- Original Message -----
From: Jianming Lin (ASL)
To: Multiple recipients of list delphi
Sent: Thursday, October 17, 2002 4:35 PM
Subject: [DUG]: polymorphism problem




G'Day, guys,

procedure TryMetadata(ImgType : Integer);
var NGraphic: TGraphic;
    GraphicClass: TGraphicClass;
begin
  ImgType := 1;
  case ImgType of
    1 :  GraphicClass := TMetaFile;
    2 :  GraphicClass := TBitmap;
  end;
  NGraphic := GraphicClass.Create;
end;


Why constructor  of TMetafile.Create is not called instead only
TObject.Create is called?





[Jianming Lin (ASL)]





This e-mail message has been scanned for Viruses and Content and cleared by
MailMarshal - For more information please visit www.marshalsoftware.com
---------------------------------------------------------------------------
    New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
                  Website: http://www.delphi.org.nz
To UnSub, send email to: [EMAIL PROTECTED]
with body of "unsubscribe delphi"
Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/

############################################################################
#########
This e-mail message has been scanned for Viruses and Content and cleared
by MailMarshal
For more information please visit www.marshalsoftware.com
############################################################################
#########
---------------------------------------------------------------------------
    New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
                  Website: http://www.delphi.org.nz
To UnSub, send email to: [EMAIL PROTECTED]
with body of "unsubscribe delphi"
Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/

---------------------------------------------------------------------------
    New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
                  Website: http://www.delphi.org.nz
To UnSub, send email to: [EMAIL PROTECTED] 
with body of "unsubscribe delphi"
Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/

Reply via email to