我才接触delphi 2个星期,为什么我写的程序经常在运行时(按F9)时
弹一个窗体出来又不见了?一般情况会有个运行的窗体出现的
就是闪一下又回到原来的编代码的状态。(很菜的问题,希望大虾能帮帮我),还有,该如何解决呢?
谢谢

解决方案 »

  1.   

    你的程序没Form或被终止了,逻辑问题来的http://lysoft.7u7.net
      

  2.   

    不是close就是free了.    (1)   try
              form1:=Tform2.create(self);
              form1.show;
           finally
              form2.free;
             end;     如果写成(1)这样,就要改成:
            if not assigned(form1) then
               form1:=Tform1.create(self);
                try
                   form1.showmodal;
                 finally
                     freeandNil(form1);
                    end;
      

  3.   

    新建窗体不写代码难道还只闪下吗??
    检查一下事件代码.FORM1的事件.
      

  4.   

    把你的改动都贴出来see see啊
      

  5.   

    unit Unitchat1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls, ScktComp;type
      TForm1 = class(TForm)
        GroupBox1: TGroupBox;
        GroupBox2: TGroupBox;
        GroupBox3: TGroupBox;
        ListBox1: TListBox;
        ListBox2: TListBox;
        ListBox3: TListBox;
        ServerSocket1: TServerSocket;
        Timer1: TTimer;
        procedure ServerSocket1clientconnect(Sender: TObject;
          Socket: TCustomWinSocket);
        procedure RefreshClients(Sender: TObject);
        procedure ServerSocket1ClientDisconnect(Sender: TObject;
          Socket: TCustomWinSocket);
        procedure ServerSocket1ClientRead(Sender: TObject;
          Socket: TCustomWinSocket);
        procedure Timer1Timer(Sender: TObject);
        procedure ListBox2DblClick(Sender: TObject);
          
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation
     var connect_count:integer=0;
    {$R *.dfm}procedure TForm1.ServerSocket1clientconnect(Sender: TObject;
      Socket: TCustomWinSocket);
    begin
    listbox3.Items.Add('connect:'+socket.RemoteHost+'('+socket.RemoteAddress+')');
    inc(connect_count);end;
    procedure TForm1.RefreshClients(Sender: TObject);
    var
    l,j:Integer;
    begin
    listbox1.Clear;
    if connect_count<>0 then
    for l:=0 to  connect_count-1 do
            with serversocket1.Socket.Connections[l] do
            begin
            sendtext('^get refresh');
            sleep(50);
            listbox1.Items.Add(RemoteAdress+'(+RemoteHost)');
            for j:=0 to connect_count-1 do
            begin
            sendtext('$'+inttostr(j)+':'+serversocket1.Socket.connections[j].RemoteAddress+'('+serversocket1.Socket.Connections[j].RemoteHost+')');
            sleep(50);
            end;
     end;
    end;
    procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
      Socket: TCustomWinSocket);
    begin
    listbox3.Items.Add('Disconnected:'+socket.RemoteHost+'('+socket.RemoteAddress+')');
    dec(connect_count);
    refreshclients;
    end;procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
      var
      l:integer;
      rc_text:string;
      rc_name:string;
    begin
     rc_text:=Socket.ReceiveText;
      rc_name:=socket.RemoteHost;
      listbox2.Items.Add(rc_name+':'+rc_text) ;
      for l:=0 to serversocket1.Socket.ActiveConnections-1 do
      serversocket1.Socket.Connections[l].SendText(rc_name+': '+rc_text);
    end;procedure TForm1.Timer1Timer(Sender: TObject);
    begin
    refreshclients;
    end;procedure TForm1.ListBox2DblClick(Sender: TObject);
    begin
    showmessage(listbox1.Items[listbox1.Itemsindex]);
    end;end.
    大家帮我看看吧
    该怎么改呢?