What's wrong with your code ??

----- Original Message ----- 
From: "John Barrat" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Wednesday, September 14, 2005 4:43 AM
Subject: Using Property Arrays of Record Type


> Can anyone advise me how to set up a Property which is an array of Record
> Types.
>
>
>
> Here is a skeleton of my class code - the compiler does not like my use of
> Records in a Property Array
>
>
>
>     TLibInfo = Record
>
>       lName:    String;  // Library Name
>
>       mCount:   Integer; // Number of Macros in library
>
>       sCount:   Integer; // Number of Shared Subroutines
>
>       sPublic:  Integer; // Number of Shared Public Variables
>
>       sPrivate: Integer; // Number of Bytes of shared local storage.
>
>       end;
>
>
>
>     TMacInfo = Record
>
>       mName:    String;  // Macro Name
>
>       mTarget:  Integer; // Target PIC Type
>
>       sCount:   Integer; // Number of Subroutines used
>
>       sPublic:  Integer; // Number of Public Variables
>
>       sPrivate: Integer; // Number of Bytes of local storage.
>
>       end;
>
>
>
>     TLibCmds = Class
>
>     Private
>
>       fSource:  TStrings;
>
>       fLibInfo: TLibInfo;
>
>       fMacInfo: Array of TMacInfo;
>
>       Procedure SetSource(Source: TStrings);
>
>       function  GetMacInfo(AIndex: Integer): TMacInfo;
>
>     Public
>
>       constructor Create(Owner: TObject);
>
>       destructor  Destroy; override;
>
>     Published
>
>       Property  pLibSource: TStrings Read fSource Write SetSource;
>
>       Property  pLibInfo:   TLibInfo Read fLibInfo;
>
>       Property  pMacInfo[Const AIndex: Integer]:TMacInfo Read GetMacInfo;
> default;
>
>     end;
>
>
>
> Implementation
>
>
>
> Constructor TLibCmds.Create;
>
>
>
> Begin
>
>   Inherited Create;
>
>   fSource := TStringList.Create;
>
>   end;
>
>
>
> Destructor TLibCmds.Destroy;
>
> Begin
>
>   fSource.Free;
>
>   Inherited Destroy;
>
>   end;
>
>
>
> Procedure TLibCmds.SetSource;
>
> begin
>
>   fSource.Assign(Source);
>
>   CleanCode(fSource);   // Clean up data - remove blanks and comments
>
>   end;
>
>
>
> function TLibCmds.GetMacInfo(AIndex: Integer): TMacInfo;
>
> begin
>
>   If (AIndex < 0) or (AIndex >= High(fMacInfo)) then
>
>     Raise Exception.Create('Invalid Index')
>
>   else
>
>     Result := fMacInfo[AIndex];
>
>   end;
>
>
>
> Can anyone advise a work around?
>
>
>
> JohnB
>
> _______________________________________________
> Delphi mailing list -> [email protected]
> http://www.elists.org/mailman/listinfo/delphi

_______________________________________________
Delphi mailing list -> [email protected]
http://www.elists.org/mailman/listinfo/delphi

Reply via email to