Hi, I have been trying to make a hierarchical library of routines using class procs/funcs. However Delphi 5 doesn't like me doing this. What I have tried to do is as follows (hope this makes sense.. only important bits included):
type Tmyclass1 = class class procedure DoIt; end; Tmyclass1class = class of Tmyclass1; Tmyclass2 = class class1:Tmyclass1class; end; procedure TForm1.Button1Click(Sender: TObject); begin Tmyclass1.doIt; // <- no probs with using a class proc // Tmyclass2.class1.doIt; // *** Delphi compiler doesn't like me doing this: accessing a class func through a ref to a class. end; class procedure Tmyclass1.DoIt; begin ShowMessage('Hello'); end; The error Delphi gives is: method identifier expected. I can understand this (yes, I've read the help on it) but why?? I have tried numerous ways of getting this to work but had to resort one option.... I can work around this by simply having a class proc in Tmyclass2 that returns a Tmyclass1 class. eg. Tmyclass2 = class class function class1:TmyClass1class; end; class function Tmyclass2.class1: TmyClass1class; begin Result := tmyclass1; end; Then I can happily use this syntax: 'Tmyclass2.class1.doIt;' This seems a not-too-nice way of doing what I want. Any suggestions? Or am I trying to make Delphi be another language? ;) The other thing is: Is Delphi's optimiser smart enough to convert my 'class1' function in Tmyclass2 into a static reference? ie. am I going to have a performance hit because of trying to do this hierarchical library thing? TIA, Chris --- Chris Milham Software Developer MedTech Software Ltd. Level M, 48 Market Place, Viaduct Basin, Auckland Ph. +649 3559666 Extn. 714, Fax +649 3774231 E-mail: [EMAIL PROTECTED] Web: http://www.medtech-software.com This e-mail and any attachments are intended only for the person to whom it is addressed and may contain privileged, proprietary, or other data protected from disclosure under applicable law. If you are not the addressee or the person responsible for delivering this to the addressee you are hereby notified that reading, copying or distributing this transmission is prohibited. If you have received this e-mail in error, please telephone us immediately and remove all copies of it from your system. Thank you for your co-operation. <<Chris Milham.vcf>>
BEGIN:VCARD VERSION:2.1 N:Milham;Chris FN:Chris Milham ORG:MedTech Software Ltd. TITLE:Software Developer NOTE;ENCODING=QUOTED-PRINTABLE:=0D=0A TEL;WORK;VOICE:+649 3559666 Extn. 714 TEL;WORK;FAX:+649 3774231 ADR;WORK;ENCODING=QUOTED-PRINTABLE:;;Level M=0D=0A48 Market Place=0D=0AViaduct Basin;Auckland;;;New Zealand LABEL;WORK;ENCODING=QUOTED-PRINTABLE:Level M=0D=0A48 Market Place=0D=0AViaduct Basin=0D=0AAuckland=0D=0ANew Zeala= nd URL;WORK:http://www.medtech-software.com EMAIL;PREF;INTERNET:[EMAIL PROTECTED] REV:20020619T032950Z END:VCARD