Yes, Mattias is right, I copied-pasted-removed some stuff from one of my
programs and leaved out the FreeMem part.
This is a modified version:
procedure GetClassProperties(AClass: TClass);
(* get published properties into a list *)
var
PropList: ppropList;
ClassTypeInfo: PTypeInfo;
I: Integer;
lProps: Integer;
begin
(* Get properties and a pointer to class *)
lProps := GetTypeData(AClass.ClassInfo)^.PropCount;
if lProps <> 0 then
begin
(* Properties list to be analyzed *)
GetPropList(AClass.ClassInfo, PropList);
for I := 0 to lProps -1 do
writeln(PropList[I]^.name);
(* Free memory allocated for PropList *)
FreeMem(PropList);
end;
end;
Leonardo M. Ramé
http://leonardorame.blogspot.com
----- Original Message ----
From: Mattias Gärtner <[email protected]>
To: [email protected]
Sent: Tuesday, June 23, 2009 10:20:10 AM
Subject: Re: [fpc-pascal] GetPropValue and Unknown property
Zitat von "Leonardo M. Ramé" <[email protected]>:
>
>
>
> How are you filling the ASortProps array? if it is by hand, you have to take
> care of Case Sensitivity of property names.
>
> You can use this function to know the published properties of any class. Try
> it inside your DoCompareProps, passing TFTPListRec(AItem1).ClassType as
> param, if AItem1 is an instance it should list all its properties:
>
> procedure GetClassProperties(AClass: TClass);
> (* get published properties into a list *)
> var
> PropList: ppropList;
> ClassTypeInfo: PTypeInfo;
> I: Integer;
> lProps: Integer;
> begin
> (* Get properties and a pointer to class *)
> lProps := GetTypeData(AClass.ClassInfo)^.PropCount;
> if lProps <> 0 then
> begin
> (* Properties list to be analyzed *)
> for I := 0 to GetPropList(AClass.ClassInfo, PropList) -1 do
> writeln(PropList[I]^.name);
> end;
> end;
This will create a mem leak. Call GetPropList only once and FreeMem the
PropList at the end.
Mattias
--
Powered by NetMail
_______________________________________________
fpc-pascal maillist - [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
_______________________________________________
fpc-pascal maillist - [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal