当前位置:首页
开发技术指南» 文章正文
    引言:

 ·数组类如何防止越界访问    »显示摘要«
    摘要: 如果不使用迭代器的话。 还有迭代器除了遍历与防止越界外有什么优势呢? ......
    摘要: 现在的项目中需要一个类似于ftp的用户名和密码输入窗口,用户进入本系统index页面之前,首先有一个login页面,login页面上有一个悬浮的窗口,要求输入用户名和密码,用户名和密码输入正确,方可进入本系统 ......


谁知道怎么样取出MSHFLEXGRID控件里面单元格的数据我想要的来做条件的.

会的请发个例子出来参考一下好吗?

NO.1   作者: juanhyy

Dim   str   as   string  
  srt=GrdM.TextMatrix(.row,   .col)

NO.2   作者: xghim

cntl为网格控件名,sql为查询语句,ipagenum为要取第几页的数据,irecperpage为每页显示记录数。  
  这是用来显示查询结果到网格的。  
   
  Public   Sub   FillBrowseFGrid(cntl   As   Control,   sSQL   As   String,   iPageNum   As   Integer,   iRecPerPage   As   Integer)  
         
          Dim   i   As   Integer  
          Dim   j   As   Integer  
          Dim   sFieldName   As   String  
          Dim   pc   As   Integer  
          On   Error   GoTo   Err_FillFGrid  
          Dim   rs   As   New   ADODB.Recordset  
         
           
          cnn.CursorLocation   =   adUseClient  
           
          Set   rs   =   New   ADODB.Recordset  
          rs.CacheSize   =   iRecPerPage   *   iPageNum  
          rs.MaxRecords   =   iRecPerPage   *   iPageNum  
          rs.CursorLocation   =   adUseClient  
          rs.Open   sSQL,   cnn,   adOpenStatic,   adLockReadOnly  
           
          rs.PageSize   =   iRecPerPage  
          rs.AbsolutePage   =   iPageNum  
   
          Set   up   the   col   size   of   the   grid  
          With   cntl  
                  .Clear  
                  .Rows   =   2  
                  .Cols   =   rs.Fields.Count  
          End   With  
          Caption  
         
          For   i   =   0   To   rs.Fields.Count   -   1  
                cntl.TextMatrix(0,   i)   =   rs.Fields(i).Name  
                 
                Select   Case   rs(i).Type  
                          Case   adChar  
                          cntl.ColWidth(i)   =   rs(i).DefinedSize   *   120  
                          If   Len(rs.Fields(i).Name)   >   rs(i).DefinedSize   Then   cntl.ColWidth(i)   =   Len(rs.Fields(i).Name)   *   120  
                           
                          Case   adInteger  
                          cntl.ColWidth(i)   =   rs(i).DefinedSize   *   120  
                          If   Len(rs.Fields(i).Name)   >   rs(i).DefinedSize   Then   cntl.ColWidth(i)   =   Len(rs.Fields(i).Name)   *   120  
                           
                          Case   adDBTimeStamp  
                          cntl.ColWidth(i)   =   rs(i).DefinedSize   *   80  
                          If   Len(rs.Fields(i).Name)   >   rs(i).DefinedSize   Then   cntl.ColWidth(i)   =   Len(rs.Fields(i).Name)   *   120  
                           
                          Case   adVarChar  
                          cntl.ColWidth(i)   =   3000  
                           
                          Case   adLongVarChar  
                          cntl.ColWidth(i)   =   3000  
                           
                          Case   Else  
                          If   IsNumeric(rs.Fields(i))   Then  
                                  cntl.ColWidth(i)   =   Val(rs.Fields(i))   *   120  
                                  If   Len(rs.Fields(i).Name)   >   rs(i).DefinedSize   Then   cntl.ColWidth(i)   =   Len(rs.Fields(i).Name)   *   120  
                          Else  
                                  cntl.ColWidth(i)   =   1000  
                                  If   Len(rs.Fields(i).Name)   >   rs(i).DefinedSize   Then   cntl.ColWidth(i)   =   Len(rs.Fields(i).Name)   *   120  
                          End   If  
                           
                  End   Select  
          Next  
         
         
          j   =   1  
          For   pc   =   1   To   iRecPerPage  
                  cntl.Rows   =   j   +   1  
                  cntl.Row   =   j  
                  For   i   =   0   To   rs.Fields.Count   -   1  
                          With   cntl  
                                  .Col   =   i  
                                  If   Not   IsNull(rs(i))   Then  
                                   
                                  If   rs(i).Type   =   adChar   Or   rs(i).Type   =   adVarChar   Or   rs(i).Type   =   adLongVarChar   Then   .Text   =   "   "   &   Trim(rs(i))   Else   .Text   =   rs(i)  
                                  Else  
                                  .Text   =   ""  
                                  End   If  
                          End   With  
                  Next  
                  j   =   j   +   1  
                    Get   next   row  
                  rs.MoveNext  
                  If   rs.EOF   Then   Exit   For  
   
          Next   pc  
          rs.Close  
           
  Exit_FillFGrid:  
          Exit   Sub  
   
  Err_FillFGrid:  
         
          MsgBox   Err.Description,   "Fill   Browse   Grid   Error:   "  
         
          Resume   Exit_FillFGrid  
  End   Sub  
   
  取的每一格的值的方法就是  
  cntl.TextMatrix(0,   i)   =   rs.Fields(i).Name  
   
 


    摘要: 不知道数据结构上叫什么,自已想的,写了一个测试程序,似乎结果是正确的.哪位兄台指正一下. 新的算法是这样的: 1.随机产生由0x00和0xff结成的地图 2.建立一个空的"连通地图方格列表",然后用递归方法去搜索所有与(0,0)相同值且连通的方格,然后把坐格存入"连通地图方格列表"中,在递归时,如果碰到"连通地图方格列表"中已经存......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE