你没有给指针分配空间(比如getmem()),能运行就怪了!!!

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
    hInternet:array[0..2] of Pointer;
    hconnect:array[0..2] of Pointer;
    IPSite:array[0..2] of Pointer;
    name:array[0..2] of Pointer;
    i:integer;
    IfOrNot:Boolean;
    begin
      IPSite[0]:=Pchar('10.04.2.3');
      IPSite[1]:=Pchar('10.04.2.4');
      name[0]:=Pchar('application1');
      name[1]:=Pchar('application2');  for i:=0 to 1 do
      begin
      hInternet[i]:=InternetOpen(PChar('name[i]'),
                                INTERNET_OPEN_TYPE_DIRECT,
                                nil,                            
                                nil,
                                INTERNET_FLAG_NO_CACHE_WRITE);
     hConnect[i]:=InternetConnect(hInternet[i],
                                    PChar(IPSite[i]),
                                    INTERNET_DEFAULT_FTP_PORT,
                                    nil,
                                    nil,
                                    INTERNET_SERVICE_FTP,
                                    INTERNET_FLAG_EXISTING_CONNECT OR                              INTERNET_FLAG_PASSIVE,
                                    $0); IfOrNot:=(hConnect[i]<>nil);
     if IfOrNot then
       TreeView1.Items.add(nil,strPas(IPSite[i]));end;//for
    end;
    end.end;
      

  2.   

    我看你还是老老实实,将那些pointer都换成pchar,然后一个个分配空间(getmem),或者声明为string;这样比较好!var
    hInternet:array[0..2] of string;
    hconnect:array[0..2] of string;
    IPSite:array[0..2] of string;
    name:array[0..2] of string;
    i:integer;
    IfOrNot:Boolean;
    begin
      IPSite[0]:='10.04.2.3';
      IPSite[1]:='10.04.2.4';
      name[0]:='application1';
      name[1]:='application2';
      

  3.   

    hInternet
    hconnect
    可是句柄啊!!!
      

  4.   

    IPSite:array[0..2] of string;
    name:array[0..2] of string;
    这两个应该这样!是我刚才Ctrl+V成pointer了
    (IPSite:array[0..2] of pointer;
    name:array[0..2] of pointer;)
      

  5.   

    你没有给指针分配空间,
    最好用Allocmem()或getmem().
    不用new.
    你用了pointer所以用new是不行的,很会出错的。