Mega Code Archive

 
Categories / Delphi / OOP
 

Clone the Controls Properties

Title: Clone the Controls Properties? uses TypInfo; function CloneProperty(SourceComp, TargetComp: TObject; Properties: array of string): Boolean; var i: Integer; begin Result := True; try for i := Low(Properties) to High(Properties) do begin if not IsPublishedProp(SourceComp, Properties[I]) then Continue; if not IsPublishedProp(TargetComp, Properties[I]) then Continue; if PropType(SourceComp, Properties[I]) PropType(TargetComp, Properties[I]) then Continue; case PropType(SourceComp, Properties[i]) of tkClass: SetObjectProp(TargetComp, Properties[i], GetObjectProp(SourceComp, Properties[i])); tkMethod: SetMethodProp(TargetComp, Properties[I], GetMethodProp(SourceComp, Properties[I])); else SetPropValue(TargetComp, Properties[i], GetPropValue(SourceComp, Properties[i])); end; end; except Result := False; end; end; procedure TForm1.Button1Click(Sender: TObject); begin if CloneProperty(Button1, Button2, ['Left', 'Font', 'PopupMenu', 'OnClick']) then ShowMessage('OK'); end;