第二次单击按牛后出错!郁闷ing!(MSN控件,附原码),错误信息:“access violation at address 004de5be in module '...exe',read of address 000000000!”procedure TFrmyxgl.N4Click(Sender: TObject);
var txt:string;
begin
     with ADOQuery2 do
    begin
      ADOQuery2.Close;
      ADOQuery2.SQL.Clear;
      sql.add(' SELECT help_text FROM help where m_id=1');
  try
    ADOQuery2.open;
    if not eof then
    begin
    txt:=ADOQuery2.Fields.Fields[0].AsString ;
    MSNPopUp1.Title:='院系管理-帮助';
     MSNPopUp1.Text:=txt;
     MSNPopUp1.ShowPopUp;
    end;
 except 
     end;
   ADOQuery2.Free;
   MSNPopUp1.Free
    end;
end;

解决方案 »

  1.   

    procedure TFrmyxgl.N4Click(Sender: TObject);
    var txt:string;
    begin
         with ADOQuery2 do
        begin
          ADOQuery2.Close;
          ADOQuery2.SQL.Clear;
          sql.add(' SELECT help_text FROM help where m_id=1');
      try
        ADOQuery2.open;
        if not eof then
        begin
        txt:=ADOQuery2.Fields.Fields[0].AsString ;
        MSNPopUp1.Title:='院系管理-帮助';
         MSNPopUp1.Text:=txt;
         MSNPopUp1.ShowPopUp;
        end;
     except 
         end;
       ADOQuery2.Free;
       MSNPopUp1.Free  //错在这里。去掉应该就可以了
        end;
    end;
      

  2.   

    ADOQuery2.Free;  //错在这部分。去掉应该就可以了。下面那行也是错的。
    MSNPopUp1.Free
      

  3.   

    ADOQuery2.Free;  //错在这部分。去掉应该就可以了。
    MSNPopUp1.Free;//着行不去,msn就不会二次显示!。