请问:小弟我的这个小程序为什么不弹出小弟我要的字符串呢?多谢

请教:我的这个小程序为什么不弹出我要的字符串呢?谢谢!
请教:
unit   Unit1;

interface

uses
    Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,
    Dialogs,   StdCtrls;

type
    TForm1   =   class(TForm)
        Button1:   TButton;
        procedure   Button1Click(Sender:   TObject);
    private
        {   Private   declarations   }
    public
        {   Public   declarations   }
    end;

    procedure   my(ss:array   of   string   ;i:integer);
var
    Form1:   TForm1;

implementation

{$R   *.dfm}

procedure   my(ss:array   of   string   ;   i:integer);
var
        str:array   of   string;
        j:integer;
begin
        setlength(str,i);
        for   j:=0   to   i-1   do
                begin
                            showmessage(str[i]);
                end;
end;

procedure   TForm1.Button1Click(Sender:   TObject);
var
        ss:array   of   string;
begin
        setlength(ss,3);
        ss[0]:= '1232 ';
        ss[1]:= 'sdd ';
        ss[2]:= 'dsfddf ';
        my(ss,3);
end;

end.


请教:
当我单击   Button1   ,为什么不弹出   '1232 '   'sdd '   'dsfddf '   呢?
谢谢!

------解决方案--------------------
procedure my(ss: array of string; i: integer);
var
j : integer;
begin
for j:=0 to i-1 do
begin
showmessage(ss[j]);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
ss:array of string;
begin
setlength(ss,3);
ss[0]:= '1232 ';
ss[1]:= 'sdd ';
ss[2]:= 'dsfddf ';
my(ss,3);
end;
哥们估计你形参实参并不是很清楚
------解决方案--------------------
array of string
不能直接:=
------解决方案--------------------
必须要把array of string声明成一种类型,例如说

type
TDynStrArry = array of string;

var
a, b: TDynStrArry;

这样a,b之间才能直接赋值。
------解决方案--------------------
补充一下,其实我的意思是想说,函数的形参和实参要声明成一种类型,这样才能传递。直接用array of string是不行的。