tw15610.pp 948 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. { %norun }
  2. program a;
  3. {$ifdef FPC}
  4. {$mode delphi}
  5. {$endif}
  6. type
  7. TBase=class
  8. private
  9. fData:string;
  10. procedure Setdata(ndx:integer;const s:string);
  11. function GetData(ndx:integer):string;
  12. function OldIsStored(ndx:integer):boolean;
  13. public
  14. property Data:string index 0 read GetData write SetData stored OldIsStored;
  15. end;
  16. TDerived=class(TBase)
  17. private
  18. function IsDataStored(ndx:integer):boolean;
  19. published
  20. property Data stored IsDataStored;
  21. end;
  22. procedure TBase.Setdata(ndx:integer;const s:string);
  23. begin
  24. if ndx=0 then fData:=s;
  25. end;
  26. function TBase.GetData(ndx:integer):string;
  27. begin
  28. if ndx=0 then
  29. Result:=fData
  30. else
  31. Result:='';
  32. end;
  33. function TBase.OldIsStored(ndx:integer):boolean;
  34. begin
  35. Result:=ndx>1;
  36. end;
  37. function TDerived.IsDataStored(ndx:integer):boolean;
  38. begin
  39. Result:=ndx=0;
  40. end;
  41. begin
  42. end.