TGraphicClass is defined in Graphics.pas as :
  TGraphicClass = class of TGraphic;

Anothe bizarre problem is:

procedure TryId;
var gCls : TGraphicClass;
    nGra : TGraphic;
    myPic : TPicture;
begin
    gCls := TGraphicClass(TMetafile);
    nGra := gCls.Create;       
    myPic := TPicture.Create;  
    myPic.Graphic := nGra; 
end;

Press F7, trace into gCls.Create, TMetaFile constructor is not called.
While I trace into myPic.Graphic, it goes into:

TPicture.SetGraphic(Value: TGraphic);
...
NewGraphic := TGraphicClass(Value.ClassType).Create;

then TMetafile constructor is called correctly. 

So my environment setting is not wrong. 

But why gCls.Create won't call TMetafile constructor?




-----Original Message-----
From: Chris Reynolds [mailto:chrisr@;instantObjects.com]
Sent: Friday, 18 October 2002 9:27 a.m.
To: Multiple recipients of list delphi
Subject: Re: RE: [DUG]: polymorphism problem


Only just focussed on this thread after deleting several previous.
Maybe I missed that message but how is TGraphicClass?



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

#####################################################################################
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/

Reply via email to