今日は published についてのお勉強だ。
まず、 published は コンパイラ指令 {$TYPEINFO ON} か
TComponentのような{$TYPEINFO ON}からの継承でなければ 「単なる publicと同じ」だから注意する事。

例題:
{$TYPEINFO ON}
type TTray=class
private
  FHoge
 public
procedure SetParam(s: string);
 published
  property Hoge :Integer read FHoge write FHoge;
end;

procedure TBmpData.SetParam(s:string);
var name,data:string ;
var n:Integer;
begin
  n:=AnsiPos('=',s);
  if n<=0 then raise Exception.Create(s+'に"="がない');
  name := trim(copy(s,1,n-1));
  data := copy(s,n+1,High(Integer));
  SetPropValue(Self,name,data);
end;