То й що заважає звернутися до компонента, створеного дiнамiчно? Це глобальний об'єкт, звертайтесь. Ось якщо потрібно використовувати його події, то їх треба описати:
  public
    { Public declarations }
    procedure sma(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y, HitTest: Integer;
      var MouseActivate: TMouseActivate);
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
var spl_mas: array [0..1] of TShape;
procedure TForm1.sma(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y, HitTest: Integer;
  var MouseActivate: TMouseActivate);
begin
 with (sender as TShape) do begin
  case tag of
   0: ;
   1: ;
  end;
 end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
 spl_mas[0].Brush.Color:= rgb(255, 0, 0);
end;
procedure TForm1.FormCreate(Sender: TObject);
const xc = 200;
      yc = 200;
var i, tmp: integer;
begin
 for i:= low(spl_mas) to high(spl_mas) do begin
    spl_mas[i]:= TShape.Create(Form3);
    spl_mas[i].Left:= tmp-10;
    tmp:= spl_mas[i].Left;
    spl_mas[i].Top:=yc-50;
    spl_mas[i].Shape:=stCircle;
    spl_mas[i].Height:=25;
    spl_mas[i].Width:=25;
    spl_mas[i].Brush.Color:=clGreen;
    spl_mas[i].Tag:= i;
    spl_mas[i].OnMouseActivate:= sma;
    spl_mas.Parent:=Form3;
 end;
end;