只要一运行程序到这里,程序就自动关闭了,不知是出了什么问题
clientsocket1.Socket.SendText(recinfo);         //将发送出去的信息显示到界面表格中
    titem:=listview1.Items.Add;
    titem.Caption:='';
    if clientsocket1.Active=true then  //从这里开始有问题
    begin
     titem.ImageIndex:=0;
     end else
     begin
     titem.ImageIndex:=1;
     end;
    titem.SubItems.Add(recinfo);
    titem.SubItems.Add(timetostr(time()));
    titem.SubItems.Add(datetostr(date()));
我是想在这里作一个判断,如果没有发送出去,就在listview1的第一行打个‘X’。如果发送出去就打个勾,结果程序一运行到这一段就自动关闭了
如果只是
if clientsocket1.Active=true then  //从这里开始有问题
    begin
     titem.ImageIndex:=0;
     end;不要else没有问题不关闭程序,一加上else就关闭程序,即便是把titem.ImageIndex:=0;换成showmessage('0')也一样,程序自动关闭,不过的我的TCP/IP是没有连接的,不知是不是这个原因,急啊

解决方案 »

  1.   

      
     if clientsocket1.Active=true then  //  始终为false 将执行else中的代码
        begin 
        titem.ImageIndex:=0;   //检测此句  
        end 
        else 
        begin 
        titem.ImageIndex:=1;     //检测此句  
        end; 
      

  2.   

    如果你将else去掉 那个上面我回复的那段代码的任何语句都不会执行  所以就不退出了
      

  3.   

    现在我测试了一下,问题就出在clientsocket1.Active=false这个判断上,如果一判断是false,程序就退出,难道当clientsocket1为false时就会触发退出或关闭程序的命令,那用什么来判断clientsocket1是否连接上来代替用active判断才不会出现这样的问题
      

  4.   

    加分了有知道的还不解答啊,MWY654321在那里
      

  5.   

    一加上else就关闭程序因为程序就执行else所属的语句而clientsocket1.active=false的情况下执行clientsocket1.Socket.SendText
    似乎不合情理
    clientsocket1.Socket.SendText(recinfo);   if not clientsocket1.Active=true then exit;
        titem:=listview1.Items.Add;
        titem.Caption:='';
        titem.ImageIndex:=0;
        titem.SubItems.Add(recinfo);
        titem.SubItems.Add(timetostr(time()));
        titem.SubItems.Add(datetostr(date())); 
    ...
      

  6.   


    打错了,应该是
    if not clientsocket1.Active then exit;