anchor.diff:      OnClick(self);
   end;
   
  -function TfpgButton.GetCommand: ICommand;
  +function TfpgBaseButton.GetCommand: ICommand;
   begin
     Result := FCommand;
   end;
   
  -procedure TfpgButton.SetCommand(ACommand: ICommand);
  +procedure TfpgBaseButton.SetCommand(ACommand: ICommand);
   begin
     FCommand := ACommand;
   end;
   
  -procedure TfpgButton.SetImageMargin(const Value: integer);
  +procedure TfpgBaseButton.SetImageMargin(const Value: integer);
   begin
     FImageMargin := Value;
     Repaint;
   end;
   
  -procedure TfpgButton.SetImageSpacing(const Value: integer);
  +procedure TfpgBaseButton.SetImageSpacing(const Value: integer);
   begin
     FImageSpacing := Value;
     Repaint;
   end;
   
  -function TfpgButton.GetAllowDown: Boolean;
  +function TfpgBaseButton.GetAllowDown: Boolean;
   begin
     Result := GroupIndex > 0;
   end;
   
  -procedure TfpgButton.SetAllowDown(const Value: Boolean);
  +procedure TfpgBaseButton.SetAllowDown(const Value: Boolean);
   begin
     GroupIndex := 1;
   end;
   
  -procedure TfpgButton.SetAllowAllUp(const Value: boolean);
  +procedure TfpgBaseButton.SetAllowAllUp(const Value: boolean);
   begin
     FAllowAllUp := Value;
   end;
  
positive.code:   FAllowAllUp   := False;
  end;
  
  destructor TfpgButton.Destroy;
  begin
    FImage := nil;
    FText  := '';
  
negative.code:   RePaint;
  end;
  
  procedure TfpgBaseButton.SetEmbedded(const AValue: Boolean);
  begin
    if FEmbedded = AValue then
      Exit;
    FEmbedded := AValue;
  end;
  
  procedure TfpgBaseButton.SetFontDesc(const AValue: string);
  begin
    FFont.Free;
    FFont := fpgGetFont(AValue);
    RePaint;
  end;
  
  constructor TfpgBaseButton.Create(AOwner: TComponent);
  begin
    inherited Create(AOwner);
    FText         := 'Button';
  