从代码看好像没有错误。
不过可以做如下改动:
 HostName:='computername';
 HostPort:='12';
如果过去了,那么肯定是读取初始化文件出错(可能性较大)。

解决方案 »

  1.   

    你的程序没有问题吧!!!
    只要你把
    Finifile:=TInifile.Create('winpopup.ini');
    改为:
    Finifile:=TInifile.Create('.\winpopup.ini');
    就OK了
      

  2.   

    应该这样设定,试试吧
    var
      kk : THostInfo;
    begin
      kk :=THostInfo.Create();
      kk.HostName='sdfdf';
      kk.free; 
    end;
      

  3.   

    不是ini文件,而是inf文件吧??????????
      

  4.   

    改为如下:
    procedure THostInfo.GetHostInfo;
    var Finifile:TIniFile;
    begin
      Finifile:=TInifile.Create('winpopup.ini');
      try
        HostName:=Finifile.ReadString('SysInfo','HostName','. . .');
        HostPort:=Finifile.ReadString('SysInfo','HostPort','12');
     finally
        Finifile.Free;
      end;
    end;
      

  5.   

    findcsdn(findcsdn) :一樣的錯。
    phosphor(蜗牛) :我這樣做的目的,主要是把相關代碼寫在相關的對象上,這樣方便維護。按照你的照法,應該是可以的,我沒試
    laisxy(赖) :同樣的了。
    blazingfire(烈焰) :也是一樣的錯。Rainsea(飞龙在天):你的作法可以,沒有出錯,但是為什麼我的作法有錯呢?
      

  6.   

    //---with Finifile do
    //---begin
         HostName:=Finifile.ReadStrin('SysInfo','HostName','  .  .  .');
         HostPort:=Finifile.ReadString('SysInfo','HostPort','12');
    //---end;
    带符号“//---”的东西有必要吗?你写的等价于:
    Finifile.HostName:=Finifile.ReadStrin('SysInfo','HostName','  .  .  .');
    Finifile.HostPort:=Finifile.ReadString('SysInfo','HostPort','12');
      

  7.   

    Fzgta(蝈蝈) :我知道了,已改正,但不能解決問題。
      

  8.   

    type
      THostInfo=class
      public
        Hostname:string;
        Hostport:string;
        procedure GetHostInfo();
      end;procedure THostInfo.GetHostInfo;
    begin
         With TInifile.Create('winpopup.ini') Do
         Begin
              Try
                 HostName := ReadString('SysInfo','HostName','  .  .  .');
                 HostPort := ReadString('SysInfo','HostPort','12');
              Finally
                     Free;
              End;
         End;
    End;这样写,我这里没有错误!!!
      

  9.   

    Delphi_Li(Delphi Li):  不會吧, 為什麼這樣呢?